ソースを参照

git-svn-id: https://192.168.57.71/svn/hbghj@15 201dd7a2-ec1b-f84b-8b06-88221118ff88

yuanxd 9 年 前
コミット
5b396aadce
100 ファイル変更4395 行追加0 行削除
  1. 11 0
      gkaq/gis-java/trunk/README.md
  2. 252 0
      gkaq/gis-java/trunk/pom.xml
  3. 50 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/bean/CbyjArea.java
  4. 110 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/bean/GpsRealtimeBean.java
  5. 50 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/common/BusinessContext.java
  6. 18 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/common/Consts.java
  7. 63 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/common/DataServerGlobal.java
  8. 21 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/common/GlobalData.java
  9. 32 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/common/GlobalFlexData.java
  10. 53 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/common/RecordStatus.java
  11. 353 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/ctl/AisCtl.java
  12. 83 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/ctl/BaseCtl.java
  13. 83 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/ctl/GpsCtl.java
  14. 30 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/ctl/MainCtl.java
  15. 109 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/ctl/WebJsonResult.java
  16. 47 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/exception/BizException.java
  17. 41 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/mapconfig/ctl/MapConfigCtl.java
  18. 18 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/mapconfig/mappers/MapConfigMapper.java
  19. 85 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/mapconfig/model/MapConfig.java
  20. 8 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/mapconfig/package-info.java
  21. 20 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/mapconfig/svc/MapConfigService.java
  22. 26 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/mapconfig/svcimpl/MapConfigServiceImpl.java
  23. 8 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/mapconfig/ws/package-info.java
  24. 57 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/mappers/BaseMapper.java
  25. 16 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/service/SystemService.java
  26. 63 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/service/impl/BaseMapperService.java
  27. 45 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/service/impl/SystemServiceImpl.java
  28. 44 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/system/AuthResult.java
  29. 164 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/system/DataSourceFactory.java
  30. 20 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/system/FlexExceptionTranslator.java
  31. 20 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/system/FlexMessageInterceptor.java
  32. 54 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/system/InitServlet.java
  33. 118 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/system/LoginFilter.java
  34. 13 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/system/SystemInterceptor.java
  35. 17 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/system/mappers/SysParamMapper.java
  36. 80 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/system/model/SysParam.java
  37. 47 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/util/CustomGetMethod.java
  38. 200 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/util/HttpProxy.java
  39. 30 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/util/IdGenerator.java
  40. 39 0
      gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/util/UUIdGenerator.java
  41. 63 0
      gkaq/gis-java/trunk/src/main/resources/applicationContext-shiro.xml
  42. 51 0
      gkaq/gis-java/trunk/src/main/resources/com/xt/hb/gis/mappers/MapConfigMapper.xml
  43. 49 0
      gkaq/gis-java/trunk/src/main/resources/com/xt/hb/gis/mappers/SysParamMapper.xml
  44. 25 0
      gkaq/gis-java/trunk/src/main/resources/ehcache/ehcache.xml
  45. 421 0
      gkaq/gis-java/trunk/src/main/resources/ehcache/ehcache.xsd
  46. 29 0
      gkaq/gis-java/trunk/src/main/resources/generatorConfig.xml
  47. 166 0
      gkaq/gis-java/trunk/src/main/resources/log/log4j.dtd
  48. 138 0
      gkaq/gis-java/trunk/src/main/resources/log/log4j.xml
  49. 42 0
      gkaq/gis-java/trunk/src/main/resources/mvc.xml
  50. 4 0
      gkaq/gis-java/trunk/src/main/resources/spring/application.properties
  51. 26 0
      gkaq/gis-java/trunk/src/main/resources/spring/dataSource.properties
  52. 34 0
      gkaq/gis-java/trunk/src/main/resources/spring/spring-mvc.xml
  53. 48 0
      gkaq/gis-java/trunk/src/main/resources/spring/spring-mybatis.xml
  54. 88 0
      gkaq/gis-java/trunk/src/main/resources/spring/spring-rest.xml
  55. 68 0
      gkaq/gis-java/trunk/src/main/resources/spring/spring.xml
  56. 17 0
      gkaq/gis-java/trunk/src/main/resources/sql/oracle/table_create.sql
  57. 3 0
      gkaq/gis-java/trunk/src/main/webapp/.gitignore
  58. 13 0
      gkaq/gis-java/trunk/src/main/webapp/WEB-INF/flex/remoting-config.xml
  59. 67 0
      gkaq/gis-java/trunk/src/main/webapp/WEB-INF/flex/services-config.xml
  60. 87 0
      gkaq/gis-java/trunk/src/main/webapp/WEB-INF/web.xml
  61. 108 0
      gkaq/gis-java/trunk/src/main/webapp/flexs/Main.html
  62. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/Main.swf
  63. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/advancedgrids_4.6.0.23201.swf
  64. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/advancedgrids_4.6.0.23201.swz
  65. 229 0
      gkaq/gis-java/trunk/src/main/webapp/flexs/com/xt/hb/cfg/MapConfig.xml
  66. 21 0
      gkaq/gis-java/trunk/src/main/webapp/flexs/com/xt/hb/cfg/MenuConfig.xml
  67. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/arrowLeft1.png
  68. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/arrowRight.png
  69. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/aqtc.png
  70. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/clear1.png
  71. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/cxtj.png
  72. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/expert.png
  73. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/map.png
  74. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/s_71.png
  75. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/satellite.png
  76. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/sxt.png
  77. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/tckz.png
  78. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/translation.png
  79. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/viewEntire.png
  80. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/yjcz.png
  81. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/zoomin.png
  82. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/zoomout.png
  83. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/menu.jpg
  84. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_ais.png
  85. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_bf.png
  86. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_bw.png
  87. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_cbyj.png
  88. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_ga.png
  89. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_gq.png
  90. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_hb.png
  91. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_jj.png
  92. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_jyr.png
  93. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_mt.png
  94. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_qsk.png
  95. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_searchMini.png
  96. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_sjzx.png
  97. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_sxt.png
  98. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_whpccss.png
  99. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_wxhwqy.png
  100. BIN
      gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_xf.png

+ 11 - 0
gkaq/gis-java/trunk/README.md

@@ -0,0 +1,11 @@
+统一认证系统核心
+=========================
+
+项目情况
+----------------------------
+作者:袁晓冬
+项目开始时间:2015年9月5日
+
+maven常用命令
+----------------------------
+1、生成实体和dao:mvn mybatis-generator:generate 

+ 252 - 0
gkaq/gis-java/trunk/pom.xml

@@ -0,0 +1,252 @@
+<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.jtgh.hb</groupId>
+	<artifactId>gisServer</artifactId>
+	<version>0.0.1-SNAPSHOT</version>
+	<packaging>war</packaging>
+	<dependencies>
+		<!-- spring -->
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-context</artifactId>
+			<version>${spring.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-webmvc</artifactId>
+			<version>${spring.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-jdbc</artifactId>
+			<version>${spring.version}</version>
+		</dependency>
+		<!-- mybatis -->
+		<dependency>
+			<groupId>org.mybatis</groupId>
+			<artifactId>mybatis-spring</artifactId>
+			<version>1.2.3</version>
+		</dependency>
+		<dependency>
+			<groupId>org.mybatis</groupId>
+			<artifactId>mybatis</artifactId>
+			<version>3.3.0</version>
+		</dependency>
+		<!-- j2ee web spec -->
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>servlet-api</artifactId>
+			<scope>provided</scope>
+			<version>2.5</version>
+		</dependency>
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>jstl</artifactId>
+			<version>1.2</version>
+			<scope>provided</scope>
+		</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>
+		<!-- 加入druid数据源依赖包 -->
+		<dependency>
+			<groupId>com.alibaba</groupId>
+			<artifactId>druid</artifactId>
+			<version>1.0.16</version>
+		</dependency>
+		<!-- 加入mysql驱动依赖包 -->
+		<!-- test -->
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>${junit.version}</version>
+			<scope>test</scope>
+		</dependency>
+		<!-- log -->
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-api</artifactId>
+			<version>${slf4j.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-log4j12</artifactId>
+			<version>${slf4j.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.aspectj</groupId>
+			<artifactId>aspectjrt</artifactId>
+			<version>1.8.7</version>
+		</dependency>
+		<dependency>
+			<groupId>org.aspectj</groupId>
+			<artifactId>aspectjweaver</artifactId>
+			<version>1.8.7</version>
+		</dependency>
+		<dependency>
+			<groupId>com.yuanxd.tools</groupId>
+			<artifactId>x-tools-io</artifactId>
+			<version>1.0-SNAPSHOT</version>
+		</dependency>
+		<!-- mybatis分页插件 -->
+		<dependency>
+			<groupId>com.yuanxd.tools</groupId>
+			<artifactId>x-tools-pagehelper</artifactId>
+			<version>0.0.1-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>com.yuanxd.tools</groupId>
+			<artifactId>x-tools-hscbdt</artifactId>
+			<version>1.0-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>com.yuanxd.tools</groupId>
+			<artifactId>x-tools-utils</artifactId>
+			<version>1.0-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.ehcache</groupId>
+			<artifactId>ehcache-core</artifactId>
+			<version>2.6.11</version>
+		</dependency>
+		<dependency>
+			<groupId>org.aspectj</groupId>
+			<artifactId>aspectjrt</artifactId>
+			<version>1.8.7</version>
+		</dependency>
+		<dependency>
+			<groupId>org.aspectj</groupId>
+			<artifactId>aspectjweaver</artifactId>
+			<version>1.8.7</version>
+		</dependency>
+		<dependency>
+			<groupId>cglib</groupId>
+			<artifactId>cglib</artifactId>
+			<version>2.2</version>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.flex</groupId>
+			<artifactId>spring-flex-core</artifactId>
+			<version>1.5.2.RELEASE</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.json-lib</groupId>
+			<artifactId>json-lib</artifactId>
+			<classifier>jdk15</classifier>
+			<version>2.4</version>
+		</dependency>
+		<!-- database -->
+		<dependency>
+			<groupId>com.oracle</groupId>
+			<artifactId>ojdbc6</artifactId>
+			<version>11.2.0</version>
+		</dependency>
+		<!-- json lib -->
+		<dependency>
+			<groupId>com.fasterxml.jackson.core</groupId>
+			<artifactId>jackson-core</artifactId>
+			<version>2.6.0</version>
+		</dependency>
+		<dependency>
+			<groupId>com.fasterxml.jackson.core</groupId>
+			<artifactId>jackson-databind</artifactId>
+			<version>2.6.0</version>
+		</dependency>
+		<dependency>
+			<groupId>com.fasterxml.jackson.dataformat</groupId>
+			<artifactId>jackson-dataformat-xml</artifactId>
+			<version>2.6.0</version>
+		</dependency>
+		<dependency>
+			<groupId>com.alibaba</groupId>
+			<artifactId>fastjson</artifactId>
+			<version>1.2.6</version>
+		</dependency>
+	</dependencies>
+	<build>
+		<plugins>
+			<plugin>
+				<artifactId>maven-war-plugin</artifactId>
+				<configuration>
+					<warName>${project.artifactId}</warName>
+				</configuration>
+			</plugin>
+			<!-- compiler插件, 设定JDK版本 -->
+			<plugin>
+				<groupId>org.mybatis.generator</groupId>
+				<artifactId>mybatis-generator-maven-plugin</artifactId>
+				<version>1.3.2</version>
+				<dependencies>
+					<!-- <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> 
+						<version>5.1.25</version> </dependency> -->
+					<dependency>
+						<groupId>com.oracle</groupId>
+						<artifactId>ojdbc6</artifactId>
+						<version>11.2.0</version>
+					</dependency>
+				</dependencies>
+				<configuration>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-surefire-plugin</artifactId>
+				<configuration>
+					<skipTests>true</skipTests>
+				</configuration>
+			</plugin>
+			<!-- compiler插件, 设定JDK版本 -->
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>3.0</version>
+				<configuration>
+					<source>1.7</source>
+					<target>1.7</target>
+					<showWarnings>true</showWarnings>
+				</configuration>
+			</plugin>
+			<!-- jetty插件, 设定端口与context path -->
+			<plugin>
+				<groupId>org.mortbay.jetty</groupId>
+				<artifactId>jetty-maven-plugin</artifactId>
+				<version>8.1.2.v20120308</version>
+				<configuration>
+					<reload>manual</reload>
+				</configuration>
+				<!-- <configuration> <webApp> <contextPath>/${project.artifactId}</contextPath> 
+					</webApp> <stopKey>webx</stopKey> <stopPort>9999</stopPort> <connectors> 
+					<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> 
+					<port>8081</port> <maxIdleTime>60000</maxIdleTime> </connector> </connectors> 
+					<requestLog implementation="org.eclipse.jetty.server.NCSARequestLog"> <filename>target/access.log</filename> 
+					<retainDays>90</retainDays> <append>false</append> <extended>false</extended> 
+					<logTimeZone>GMT+8:00</logTimeZone> </requestLog> <systemProperties> <systemProperty> 
+					<name>productionMode</name> <value>${productionMode}</value> </systemProperty> 
+					</systemProperties> </configuration> -->
+			</plugin>
+		</plugins>
+	</build>
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<!-- java 版本 -->
+		<jdk.version>1.7</jdk.version>
+		<!-- spring 版本 -->
+		<spring.version>4.2.4.RELEASE</spring.version>
+		<aspectj.version>1.8.2</aspectj.version>
+		<shiro.version>1.2.3</shiro.version>
+		<activiti.version>5.16</activiti.version>
+		<junit.version>4.11</junit.version>
+		<commons-io.version>2.4</commons-io.version>
+		<slf4j.version>1.7.12</slf4j.version>
+	</properties>
+</project>

+ 50 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/bean/CbyjArea.java

@@ -0,0 +1,50 @@
+package com.xt.hb.gis.bean;
+
+/**
+ * 船舶预警区域
+ * 
+ * @author 袁晓冬
+ *
+ */
+public class CbyjArea {
+	/** 唯一标识 */
+	private long id;
+	/** 区域名称 */
+	private String areaname;
+	/** 所在地 */
+	private String szd;
+	/** 备注 */
+	private String bz;
+
+	public String getAreaname() {
+		return areaname;
+	}
+
+	public String getBz() {
+		return bz;
+	}
+
+	public long getId() {
+		return id;
+	}
+
+	public String getSzd() {
+		return szd;
+	}
+
+	public void setAreaname(String areaname) {
+		this.areaname = areaname == null ? null : areaname.trim();
+	}
+
+	public void setBz(String bz) {
+		this.bz = bz;
+	}
+
+	public void setId(long id) {
+		this.id = id;
+	}
+
+	public void setSzd(String szd) {
+		this.szd = szd;
+	}
+}

+ 110 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/bean/GpsRealtimeBean.java

@@ -0,0 +1,110 @@
+package com.xt.hb.gis.bean;
+
+public class GpsRealtimeBean {
+	/** gpsid */
+    private String gpsid;
+	/** 接收日期 */
+    private String recvdate;
+	/** 接收时间 */
+    private String recvtime;
+	/** 经度 */
+    private String jd;
+	/** 纬度 */
+    private String wd;
+	/** 高度 */
+    private String gd;
+	/** 速度 */
+    private String sd;
+	/**  */
+    private String fx;
+	/** 时间 */
+    private String alarm;
+	/** 分段 */
+    private String segment;
+	/** 区域ID */
+    private String areaid;
+	/** 状态1 */
+    private String status1;
+	/** 状态2 */
+    private String status2;
+	public String getGpsid() {
+		return gpsid;
+	}
+	public void setGpsid(String gpsid) {
+		this.gpsid = gpsid;
+	}
+	public String getRecvdate() {
+		return recvdate;
+	}
+	public void setRecvdate(String recvdate) {
+		this.recvdate = recvdate;
+	}
+	public String getRecvtime() {
+		return recvtime;
+	}
+	public void setRecvtime(String recvtime) {
+		this.recvtime = recvtime;
+	}
+	public String getJd() {
+		return jd;
+	}
+	public void setJd(String jd) {
+		this.jd = jd;
+	}
+	public String getWd() {
+		return wd;
+	}
+	public void setWd(String wd) {
+		this.wd = wd;
+	}
+	public String getGd() {
+		return gd;
+	}
+	public void setGd(String gd) {
+		this.gd = gd;
+	}
+	public String getSd() {
+		return sd;
+	}
+	public void setSd(String sd) {
+		this.sd = sd;
+	}
+	public String getFx() {
+		return fx;
+	}
+	public void setFx(String fx) {
+		this.fx = fx;
+	}
+	public String getAlarm() {
+		return alarm;
+	}
+	public void setAlarm(String alarm) {
+		this.alarm = alarm;
+	}
+	public String getSegment() {
+		return segment;
+	}
+	public void setSegment(String segment) {
+		this.segment = segment;
+	}
+	public String getAreaid() {
+		return areaid;
+	}
+	public void setAreaid(String areaid) {
+		this.areaid = areaid;
+	}
+	public String getStatus1() {
+		return status1;
+	}
+	public void setStatus1(String status1) {
+		this.status1 = status1;
+	}
+	public String getStatus2() {
+		return status2;
+	}
+	public void setStatus2(String status2) {
+		this.status2 = status2;
+	}
+
+    
+}

+ 50 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/common/BusinessContext.java

@@ -0,0 +1,50 @@
+package com.xt.hb.gis.common;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 后台向前台传递的结果集<br>
+ * <p>
+ * 包含结果和消息两部分
+ * <p>
+ * 此对象仅用于controller层,其他层不要使用
+ * 
+ * @author masn
+ * 
+ */
+public class BusinessContext implements Serializable {
+
+	private static final long serialVersionUID = 6019646588968724189L;
+
+	// 默认结果
+	private Object result;
+
+	// 如果有多个结果,使用此属性
+	private Map<String, Object> bussAttribute = new HashMap<String, Object>();
+
+	public void setAttribute(String name, Object value) {
+		bussAttribute.put(name, value);
+	}
+
+	public Object getAttribute(String name) {
+		return bussAttribute.get(name);
+	}
+
+	public Map<String, Object> getBussAttribute() {
+		return bussAttribute;
+	}
+
+	public void setBussAttribute(Map<String, Object> bussAttribute) {
+		this.bussAttribute = bussAttribute;
+	}
+
+	public Object getResult() {
+		return result;
+	}
+
+	public void setResult(Object result) {
+		this.result = result;
+	}
+}

+ 18 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/common/Consts.java

@@ -0,0 +1,18 @@
+package com.xt.hb.gis.common;
+
+/**
+ * 系统常量
+ * 
+ * @author 袁晓冬
+ *
+ */
+public final class Consts {
+    /**
+     * 拦截器认证是否通过变量,设置在request中
+     */
+    public static final String VAR_AUTH_PASS = "_auth_passLogin";
+    /**
+     * session中存储用户对象参数
+     */
+    public static final String VAR_SESSION_USRE = "_user";
+}

+ 63 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/common/DataServerGlobal.java

@@ -0,0 +1,63 @@
+package com.xt.hb.gis.common;
+
+import org.slf4j.helpers.FormattingTuple;
+import org.slf4j.helpers.MessageFormatter;
+
+import com.alibaba.fastjson.JSONObject;
+
+/**
+ * 数据接口全局参数
+ * 
+ * @author 袁晓冬
+ *
+ */
+public class DataServerGlobal {
+	/** 服务IP */
+	public static String SERVER_URL = "";
+	private static final String MESSAGE_PATTERN = "http://%s%s";
+
+	public static void initServices(JSONObject serverInfo) {
+		GKGQQY_URL = String.format(MESSAGE_PATTERN, SERVER_URL, serverInfo.get("gkgqjryTree"));
+		SP_URL = String.format(MESSAGE_PATTERN, SERVER_URL, serverInfo.get("cameraTree"));
+		SINGlE_GQ_URL = String.format(MESSAGE_PATTERN, SERVER_URL, serverInfo.get("gq"));
+		SINGlE_MT_URL = String.format(MESSAGE_PATTERN, SERVER_URL, serverInfo.get("mt"));
+		SINGlE_BW_URL = String.format(MESSAGE_PATTERN, SERVER_URL, serverInfo.get("bw"));
+		SINGlE_JYR_URL = String.format(MESSAGE_PATTERN, SERVER_URL, serverInfo.get("jyr"));
+		SINGlE_QSK_URL = String.format(MESSAGE_PATTERN, SERVER_URL, serverInfo.get("qsk"));
+		SINGlE_CBYJ_URL = String.format(MESSAGE_PATTERN, SERVER_URL, serverInfo.get("cbyjArea"));
+		BW_PAGE_URL = String.format(MESSAGE_PATTERN, SERVER_URL, serverInfo.get("bwPage"));
+		SHIPNAME_URL = String.format(MESSAGE_PATTERN, SERVER_URL, serverInfo.get("shipName"));
+		System.out.println("港口港区企业树服务地址(GKGQQY_URL):" + GKGQQY_URL);
+		System.out.println("视频树服务地址(SP_URL):" + SP_URL);
+		System.out.println("港区服务地址(SINGlE_GQ_URL):" + SINGlE_GQ_URL);
+		System.out.println("码头服务地址(SINGlE_MT_URL):" + SINGlE_MT_URL);
+		System.out.println("泊位服务地址(SINGlE_BW_URL):" + SINGlE_BW_URL);
+		System.out.println("经营人服务地址(SINGlE_JYR_URL):" + SINGlE_JYR_URL);
+		System.out.println("取水口服务地址(SINGlE_QSK_URL):" + SINGlE_QSK_URL);
+		System.out.println("船舶预警区域服务地址(SINGlE_CBYJ_URL):" + SINGlE_CBYJ_URL);
+		System.out.println("泊位分页信息服务地址(BW_PAGE_URL):" + BW_PAGE_URL);
+		System.out.println("船名接口信息服务地址(SHIPNAME_URL):" + SHIPNAME_URL);
+	}
+
+	/** 港口港区企业树服务地址 */
+	public static String GKGQQY_URL;
+	/** 视频树服务地址 */
+	public static String SP_URL;
+	/** 港区服务地址 */
+	public static String SINGlE_GQ_URL;
+	/** 码头服务地址 */
+	public static String SINGlE_MT_URL;
+	/** 泊位服务地址 */
+	public static String SINGlE_BW_URL;
+	/** 经营人服务地址 */
+	public static String SINGlE_JYR_URL;
+	/** 取水口服务地址 */
+	public static String SINGlE_QSK_URL;
+	/** 船舶预警区域服务地址 */
+	public static String SINGlE_CBYJ_URL;
+
+	/** 泊位分页信息服务地址 */
+	public static String BW_PAGE_URL;
+	/** 获取船名接口 */
+	public static String SHIPNAME_URL;
+}

+ 21 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/common/GlobalData.java

@@ -0,0 +1,21 @@
+package com.xt.hb.gis.common;
+
+/**
+ * 全局参数
+ * 
+ * @author 袁晓冬
+ *
+ */
+public class GlobalData {
+	/** ============================== 系统参数 ============================ */
+	/** 系统名称 */
+	public final static String CONST_SYSTEM_NAME = "gisServer";
+	/** ============================== 系统参数 ============================ */
+	/** 是否开发模式 */
+	public static boolean isDevelop = false;
+	public static final String SESSION_TOKEN = "_session_token";
+	public static String SESSION_VALID_URL;
+	
+    /** GPS服务地址 */
+    public static String GPS_REALTIME_URL;
+}

+ 32 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/common/GlobalFlexData.java

@@ -0,0 +1,32 @@
+package com.xt.hb.gis.common;
+
+/**
+ * 全局参数
+ * 
+ * @author 袁晓冬
+ *
+ */
+public class GlobalFlexData {
+	/** ============================== FLEX系统参数 ============================ */
+    
+    /** 图层gis url 预警网络 */
+	public static String YJWL_LAYER_URL;
+	/** 图层gis url 视频 */
+	public static String SP_LAYER_URL;
+	/** 图层gis url 泊位 */
+	public static String BW_LAYER_URL;
+	/** 图层gis url 码头 */
+	public static String MT_LAYER_URL;
+	/** 图层gis url 船舶预警  */
+	public static String CBYJ_LAYER_URL;
+	/** 图层gis url 经营人 */
+	public static String JYR_LAYER_URL;
+	/** 图层gis url 港区 */
+	public static String GQ_LAYER_URL;
+	/** 图层gis url 港口 */
+	public static String GK_LAYER_URL;
+	/** 图层gis url 取水口 */
+	public static String QSK_LAYER_URL;
+	/** 视频监控 url */
+	public static String SPJK_URL;
+}

+ 53 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/common/RecordStatus.java

@@ -0,0 +1,53 @@
+package com.xt.hb.gis.common;
+
+/**
+ * 通用记录状态
+ * 
+ * @author 袁晓冬
+ *
+ */
+public enum RecordStatus {
+    /**
+     * 记录状态-正常
+     */
+    NORMAL("1"),
+    /**
+     * 记录状态-删除
+     */
+    DELETE("9");
+
+    private String value;
+
+    private RecordStatus(String value) {
+        this.value = value;
+    }
+
+    public String getValue() {
+        return this.value;
+    }
+
+    @Override
+    public String toString() {
+        return this.value;
+    }
+
+    /**
+     * 是否删除(DELETE)状态
+     * 
+     * @param status
+     * @return
+     */
+    public static boolean isDelete(String status) {
+        return DELETE.getValue().equals(status);
+    }
+
+    /**
+     * 判断记录状态是否为正常(NORMAL)状态
+     * 
+     * @param status
+     * @return
+     */
+    public static boolean isNormal(String status) {
+        return NORMAL.getValue().equals(status);
+    }
+}

+ 353 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/ctl/AisCtl.java

@@ -0,0 +1,353 @@
+package com.xt.hb.gis.ctl;
+
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.Map;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.flex.remoting.RemotingDestination;
+import org.springframework.stereotype.Controller;
+
+import com.xt.hb.gis.common.DataServerGlobal;
+import com.xt.hb.gis.common.GlobalFlexData;
+import com.xt.hb.gis.util.HttpProxy;
+import com.yuanxd.tools.hscbdt.HscbdtService;
+import com.yuanxd.tools.hscbdt.bean.SeqShips;
+import com.yuanxd.tools.hscbdt.bean.Ship;
+import com.yuanxd.tools.hscbdt.bean.ShipPosition;
+import com.yuanxd.tools.utils.string.StringUtils;
+
+/**
+ * 海事AIS相关Flex服务接口
+ * 
+ * @author 袁晓冬
+ *
+ */
+@Controller
+@RemotingDestination("aisCtl")
+public class AisCtl extends BaseCtl {
+	@Autowired
+	HscbdtService hscbdtService;
+
+
+	/**
+	 * 根据url,id获取单对象信息
+	 * 
+	 * @return
+	 */
+	public JSONObject initFlexData() throws Exception {
+		JSONObject jsonObject = new JSONObject();
+		GlobalFlexData global = new GlobalFlexData();
+	    Class<?> cls = global.getClass();////////////////////////通过类的名称反射类
+        Object obj=cls.newInstance();//////////////////////对象实例化
+		Field[] fieldArr = cls.getDeclaredFields(); // 获取实体类的所有属性,返回Field数组
+		for (int j = 0; j < fieldArr.length; j++) { // 遍历所有属性
+            String name = fieldArr[j].getName(); // 获取属性的名字
+            String value = (String) fieldArr[j].get(obj); // 获取属性的名字
+    		jsonObject.element(name, value);
+		}
+		return jsonObject;
+	}
+
+	/**
+	 * 区域检索ais船舶数据
+	 * 
+	 * @param extend
+	 * @return
+	 */
+	public Ship[] queryAis(String extend) {
+		Map<String, Object> ext = parseData(extend);
+		SeqShips ships = hscbdtService.searchObjectResultByArea(1,
+				String.valueOf(ext.get("xmin")) + "," + String.valueOf(ext.get("ymin")) + ",",
+				String.valueOf(ext.get("xmax")) + "," + String.valueOf(ext.get("ymax")));
+		if (ships != null && ships.getShips().length > 0) {
+			for (Ship ship : ships.getShips()) {
+				if ("0".equals(ship.getEta())) {
+					ship.setEta("");
+				}
+			}
+		}
+		return ships == null ? null : ships.getShips();
+	}
+
+	/**
+	 * 根据mmsi查询船舶轨迹
+	 * 
+	 * @param mmsi
+	 * @param beginDate
+	 * @param endDate
+	 * @return
+	 */
+	public Collection<ShipPosition> queryAISCBsByMMSI(String mmsi, String beginDate, String endDate) {
+		ShipPosition[] poss = hscbdtService.findTrackObject(mmsi,
+				StringUtils.isEmpty(beginDate) ? new Date() : new Date(Long.parseLong(beginDate)),
+				StringUtils.isEmpty(endDate) ? new Date() : new Date(Long.parseLong(endDate)));
+		ArrayList<ShipPosition> posList = new ArrayList<ShipPosition>();
+		if (poss.length > 0) {
+			for (int i = (poss.length - 1); i > -1; i--) {
+				if(null!=poss[i]) {
+					posList.add(poss[i]);
+				}
+			}
+		}
+		return posList;
+	}
+
+	/**
+	 * 查询单船轨迹
+	 * 
+	 * @param mmsi
+	 * @param startTime
+	 * @param endTime
+	 * @return
+	 */
+	public ArrayList<ShipPosition> queryAISCBsByMMSI2(String mmsi, String startTime, String endTime) {
+		Date startDate = new Date(Long.parseLong(startTime));
+		Date endDate = new Date(Long.parseLong(endTime));
+		String trackStr = hscbdtService.findTrack(mmsi, startDate, endDate);
+		ArrayList<ShipPosition> posList = new ArrayList<ShipPosition>();
+		ShipPosition routeVo = null;
+		// 解析逗号分隔字符串
+		String[] routeArr = trackStr.split(",");
+		Date date = new Date();
+		for (int i = (routeArr.length - 1); i > -1; i--) {
+			// 解析 “|” 号分隔字符串
+			String str = routeArr[i];
+			String[] strArr = str.split("\\|");
+			if (strArr.length > 0) {
+				routeVo = new ShipPosition();
+				routeVo.setLon(strArr[1]);
+				routeVo.setLat(strArr[2]);
+				if (StringUtils.isNotEmpty(strArr[3])) {
+					date = new Date();
+					// 加毫秒数
+					date.setTime(Long.parseLong(strArr[3] + "000"));
+					routeVo.setTime(date);
+				}
+				routeVo.setAngle(strArr[4]);
+				posList.add(routeVo);
+			}
+		}
+		return posList;
+	}
+
+	/**
+	 * 获取港口港区企业树
+	 * 
+	 * @return
+	 */
+	public JSONArray queryGkgqqyTree(String flg) {
+		String url = DataServerGlobal.GKGQQY_URL + "?wh="+flg;
+		JSONArray jsonArray = null;
+		try {
+			String strJson = HttpProxy.http_get_json(url);
+			jsonArray = JSONArray.fromObject(strJson);
+			// com.alibaba.fastjson.JSONArray arr =
+			// com.alibaba.fastjson.JSONObject.parseArray(strJson);
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return jsonArray;
+	}
+
+	/**
+	 * 获取视频树
+	 * 
+	 * @return
+	 */
+	public JSONArray querySpTree() {
+		String url = DataServerGlobal.SP_URL;
+		JSONArray jsonArray = null;
+		try {
+			String strJson = HttpProxy.http_get_json(url);
+			strJson = strJson.replace("null", "[]");
+			jsonArray = JSONArray.fromObject(strJson);
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return jsonArray;
+	}
+
+	/**
+	 * 获取港区信息
+	 * 
+	 * @return
+	 */
+	public JSONObject querySingleGq(Integer id) {
+		return getSingleJsonObj(DataServerGlobal.SINGlE_GQ_URL, id);
+	}
+
+	/**
+	 * 获取码头信息
+	 * 
+	 * @return
+	 */
+	public JSONObject querySingleMt(Integer id) {
+		JSONObject obj = getSingleJsonObj(DataServerGlobal.SINGlE_MT_URL, id);
+		if(null != obj) {
+			// 固定数据组
+			String[] zyhlArr = {"煤炭及制品","石油、天然气及制品","金属矿石",
+					"钢铁","矿建材料","水泥",
+					"木材","非金属矿石","化肥及农药",
+					"盐","粮食","机械、设备、电器",
+					"化工原料及制品","有色金属","轻工、医药产品",
+					"农、林、牧、渔业产品","其它"};
+			String[] mtytArr = {"原油码头","液化天然气码头","液体散货码头",
+					"危险品码头","煤炭、矿石码头","件杂货码头",
+					"散粮码头","集装箱码头","滚装、客运码头",
+					"多用途码头","通用码头"};
+			if(null != obj.get("ZYHL")) {
+				String zyhl = obj.get("ZYHL").toString();
+				String zyhlShow = "";
+				// 判断主要货类
+				if(zyhl.length() == zyhlArr.length) {
+					for(int i = 0; i < zyhl.length(); i++) {
+						if("Y".equals(zyhl.charAt(i)) || i==7) {
+							zyhlShow += zyhlArr[i] + ",";
+						}
+					}
+				}
+				if(zyhlShow.length() > 0) {
+					zyhlShow = zyhlShow.substring(0, zyhlShow.length() - 1);
+					obj.element("ZYHL", zyhlShow);
+				} else {
+					obj.element("ZYHL", "");
+				}
+			}
+			if(null != obj.get("MTYT")) {
+				String mtyt = obj.get("MTYT").toString();
+				String mtytShow = "";
+				// 判断码头用途
+				if(mtyt.length() == mtytArr.length) {
+					for(int i = 0; i < mtyt.length(); i++) {
+						if("Y".equals(mtyt.charAt(i))) {
+							mtytShow += mtytArr[i] + ",";
+						}
+					}
+				}
+				if(mtytShow.length() > 0) {
+					mtytShow = mtytShow.substring(0, mtytShow.length() - 1);
+					obj.element("MTYT", mtytShow);
+				} else {
+					obj.element("MTYT", "");
+				}
+			}
+			
+		}
+		return obj;
+	}
+
+	/**
+	 * 获取泊位信息
+	 * 
+	 * @return
+	 */
+	public JSONObject querySingleBw(Integer id) {
+		return getSingleJsonObj(DataServerGlobal.SINGlE_BW_URL, id);
+	}
+
+	/**
+	 * 获取经营人信息
+	 * 
+	 * @return
+	 */
+	public JSONObject querySingleJyr(Integer id) {
+		return getSingleJsonObj(DataServerGlobal.SINGlE_JYR_URL, id);
+	}
+
+	/**
+	 * 获取取水口信息
+	 * 
+	 * @return
+	 */
+	public JSONObject querySingleQsk(Integer id) {
+		return getSingleJsonObj(DataServerGlobal.SINGlE_QSK_URL, id);
+	}
+
+	/**
+	 * 获取船舶预警区域信息
+	 * 
+	 * @return
+	 */
+	public JSONObject querySingleCbyj(Integer id) {
+		return getSingleJsonObj(DataServerGlobal.SINGlE_CBYJ_URL, id);
+	}
+
+	/**
+	 * 获取泊位分页信息
+	 * 
+	 * @return
+	 */
+	public JSONObject queryBwPage(Integer id, Integer page, Integer size) {
+		String url = DataServerGlobal.BW_PAGE_URL+id+"&page="+page+"&size="+size;
+		JSONObject jsonObject = null;
+		try {
+			String strJson = HttpProxy.http_get_json(url);
+			if(null == strJson) {
+				strJson = "";
+			}
+			strJson = strJson.replace("null", "\"\"");
+			if(StringUtils.isNotEmpty(strJson)) {
+				jsonObject = JSONObject.fromObject(strJson);
+			} else {
+				jsonObject = new JSONObject();
+			}
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return jsonObject;
+	}
+
+	/**
+	 * 根据url,id获取单对象信息
+	 * 
+	 * @return
+	 */
+	public JSONObject getSingleJsonObj(String url, Integer id) {
+		String uid = String.valueOf(id);
+		JSONObject jsonObject = null;
+		try {
+			String strJson = HttpProxy.http_get_json(url+"/"+uid);
+			if(StringUtils.isNotEmpty(strJson)) {
+				jsonObject = JSONObject.fromObject(strJson);
+			} else {
+				jsonObject = new JSONObject();
+			}
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return jsonObject;
+	}
+
+	/**
+	 * 获取船名
+	 * 
+	 * @return
+	 */
+	public String getShipName(String name) {
+		String url = DataServerGlobal.SHIPNAME_URL;
+		String strJson = "";
+		if(StringUtils.isNotEmpty(name)) {
+			try {
+				name = name.replaceAll(" ", "%20");
+				url = url + "/"+name;
+				strJson = HttpProxy.http_get_json(url);
+				if(StringUtils.isNotEmpty(strJson)) {
+					strJson = strJson.replace("\"", "");
+				} else {
+					return "";
+				}
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+		}
+		return strJson;
+	}
+
+}

+ 83 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/ctl/BaseCtl.java

@@ -0,0 +1,83 @@
+package com.xt.hb.gis.ctl;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.propertyeditors.CustomDateEditor;
+import org.springframework.web.bind.WebDataBinder;
+import org.springframework.web.bind.annotation.InitBinder;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.google.gson.reflect.TypeToken;
+import com.xt.hb.gis.util.IdGenerator;
+import com.yuanxd.tools.io.http.JsonResult;
+
+/**
+ * 视图控制器基类
+ * 
+ * @author 袁晓冬
+ *
+ */
+public class BaseCtl {
+	@Autowired
+	protected IdGenerator idGenerator;
+	protected Gson gson;
+
+	/***
+	 * 构造函数
+	 */
+	public BaseCtl() {
+		gson = new GsonBuilder().create();
+	}
+
+	@InitBinder
+	protected void initBinder(WebDataBinder binder) {
+		binder.registerCustomEditor(Date.class,
+				new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"), true));
+	}
+
+	/**
+	 * 返回错误结果信息
+	 * 
+	 * @param message
+	 * @return
+	 */
+	protected JsonResult error(String message) {
+		return new JsonResult().setSuccess(false).setMessage(message);
+	}
+
+	/**
+	 * 返回操作成功
+	 * 
+	 * @return
+	 */
+	protected JsonResult succes() {
+		return new JsonResult().setSuccess(true);
+	}
+
+	/**
+	 * 返回操作成功
+	 * 
+	 * @param data
+	 * @return
+	 */
+	protected JsonResult succes(Object data) {
+		return new JsonResult().setSuccess(true).setData(data);
+	}
+
+	/**
+	 *
+	 * 函数名称: parseData 函数描述: 将json字符串转换为map
+	 * 
+	 * @param data
+	 * @return
+	 */
+	protected Map<String, Object> parseData(String data) {
+		Map<String, Object> map = gson.fromJson(data, new TypeToken<Map<String, Object>>() {
+		}.getType());
+		return map;
+	}
+}

+ 83 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/ctl/GpsCtl.java

@@ -0,0 +1,83 @@
+package com.xt.hb.gis.ctl;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+import org.springframework.flex.remoting.RemotingDestination;
+import org.springframework.stereotype.Controller;
+
+import com.google.gson.JsonObject;
+import com.xt.hb.gis.bean.GpsRealtimeBean;
+import com.xt.hb.gis.common.GlobalData;
+import com.xt.hb.gis.util.HttpProxy;
+
+/**
+ * 海事AIS相关Flex服务接口
+ * 
+ * @author 袁晓冬
+ *
+ */
+@Controller
+@RemotingDestination("gpsCtl")
+public class GpsCtl extends BaseCtl {
+
+	/**
+	 * 获取港口港区企业树
+	 * 
+	 * @return
+	 */
+	public ArrayList<GpsRealtimeBean> queryGpsRealtime() {
+		ArrayList<GpsRealtimeBean> beanList = new ArrayList<GpsRealtimeBean>();
+		String url = GlobalData.GPS_REALTIME_URL;
+		JSONArray jsonArray = null;
+		try {
+			String strJson = HttpProxy.http_get_json(url);
+			jsonArray = JSONArray.fromObject(strJson);
+			if(null != jsonArray && jsonArray.size() > 0) {
+				GpsRealtimeBean bean = null;
+				for (int i=0; i<jsonArray.size();i++) {
+					bean = new GpsRealtimeBean();
+					JSONObject obj = (JSONObject) jsonArray.get(i);
+					bean.setAlarm(obj.get("alarm").toString());
+					bean.setAreaid(obj.get("areaid").toString());
+					bean.setFx(obj.get("fx").toString());
+					bean.setGd(obj.get("gd").toString());
+					bean.setGpsid(obj.get("gpsid").toString());
+					String lon = obj.get("jd").toString();
+					if(lon.length() > 3) {
+						if(lon.startsWith("1")) {
+							lon = lon.substring(0, 3) + "." + lon.substring(4, lon.length());
+						} else {
+							lon = lon.substring(0, 2) + "." + lon.substring(3, lon.length());
+						}
+						bean.setJd(lon);
+					}
+					bean.setRecvdate(obj.get("recvdate").toString());
+					bean.setRecvtime(obj.get("recvtime").toString());
+					String sd = obj.get("sd").toString();
+					if(sd.length() > 0 && !"0".equals(sd)) {
+						sd = String.valueOf(Integer.parseInt(sd)/1000);
+					}
+					bean.setSd(sd);
+					bean.setSegment(obj.get("segment").toString());
+					bean.setStatus1(obj.get("status1").toString());
+					bean.setStatus2(obj.get("status2").toString());
+					String lat = obj.get("wd").toString();
+					if(lat.length() > 3) {
+						lat = lat.substring(0, 2) + "." + lat.substring(3, lat.length());
+						bean.setWd(lat);
+					}
+					beanList.add(bean);
+				}
+			}
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return beanList;
+	}
+	
+}

+ 30 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/ctl/MainCtl.java

@@ -0,0 +1,30 @@
+package com.xt.hb.gis.ctl;
+
+import org.springframework.flex.remoting.RemotingDestination;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import com.xt.hb.gis.common.BusinessContext;
+
+@Controller
+@RemotingDestination("mainCtl")
+public class MainCtl extends BaseCtl {
+
+	@RequestMapping("main")
+	public String main() {
+		return "Main";
+	}
+
+	/**
+	 * 用户登录处理
+	 * 
+	 * @param usercode
+	 * @param password
+	 * @return
+	 */
+	public BusinessContext doLogin(String usercode, String password) {
+		BusinessContext bc = new BusinessContext();
+		bc.setAttribute("success", true);
+		return bc;
+	}
+}

+ 109 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/ctl/WebJsonResult.java

@@ -0,0 +1,109 @@
+package com.xt.hb.gis.ctl;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 后台向前台传递的结果集<br>
+ * <p>
+ * 包含结果和消息两部分
+ * <p>
+ * 此对象仅用于controller层,其他层不要使用
+ * 
+ * @author 袁晓冬
+ * 
+ */
+public class WebJsonResult implements Serializable {
+
+    /** serialVersionUID */
+    private static final long serialVersionUID = -4396170415938706672L;
+
+    // 操作是否成功
+    private boolean success = true;
+    // 异常信息
+    private String message;
+
+    // 如果有多个结果,使用此属性
+    private Map<String, Object> attrs = new HashMap<String, Object>();
+
+    /**
+     * 根据属性名称查询属性值
+     * 
+     * @param name
+     *            属性名称
+     * @return Object 属性值
+     */
+    public Object getAttr(String name) {
+        return attrs.get(name);
+    }
+
+    /**
+     * 获取返回结果属性
+     * 
+     * @return Map<String, Object>
+     */
+    public Map<String, Object> getAttrs() {
+        return attrs;
+    }
+
+    /**
+     * 获取执行结果返回消息
+     * 
+     * @return String
+     */
+    public String getMessage() {
+        return message;
+    }
+
+    /**
+     * 执行是否成功
+     * 
+     * @return
+     */
+    public boolean isSuccess() {
+        return success;
+    }
+
+    /**
+     * 设置返回结果属性
+     * 
+     * @param name
+     *            属性名称
+     * @param value
+     *            属性值
+     */
+    public void setAttr(String name, Object value) {
+        attrs.put(name, value);
+    }
+
+    /**
+     * 设置返回结果属性,覆盖原有所有属性
+     * 
+     * @param attrs
+     *            Map<String, Object>
+     */
+    public void setAttrs(Map<String, Object> attrs) {
+        this.attrs = attrs;
+    }
+
+    /**
+     * 设置执行结果返回消息
+     * 
+     * @param message
+     *            String
+     */
+    public void setMessage(String message) {
+        this.message = message;
+    }
+
+    /**
+     * 设置执行是否成功
+     * 
+     * @param success
+     *            boolean 执行结果
+     */
+    public void setSuccess(boolean success) {
+        this.success = success;
+    }
+}

+ 47 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/exception/BizException.java

@@ -0,0 +1,47 @@
+package com.xt.hb.gis.exception;
+
+/**
+ * business exception's base class
+ * 
+ * 
+ */
+public class BizException extends RuntimeException {
+    private static final long serialVersionUID = 3358078457294620782L;
+
+    /**
+     * Constructs a new exception with the specified detail message. The cause
+     * is not initialized, and may subsequently be initialized by a call to
+     * {@link #initCause}.
+     * 
+     * @param message
+     *            the detail message. The detail message is saved for later
+     *            retrieval by the {@link #getMessage()} method.
+     */
+    public BizException(String message) {
+        super(message);
+    }
+
+    /**
+     * Constructs a new exception with the specified detail message and cause.
+     * <p>
+     * Note that the detail message associated with <code>cause</code> is
+     * <i>not</i> automatically incorporated in this exception's detail message.
+     * 
+     * @param message
+     *            the detail message (which is saved for later retrieval by the
+     *            {@link #getMessage()} method).
+     * @param cause
+     *            the cause (which is saved for later retrieval by the
+     *            {@link #getCause()} method). (A <tt>null</tt> value is
+     *            permitted, and indicates that the cause is nonexistent or
+     *            unknown.)
+     * @since 1.4
+     */
+    public BizException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public BizException(Throwable cause) {
+        super(cause);
+    }
+}

+ 41 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/mapconfig/ctl/MapConfigCtl.java

@@ -0,0 +1,41 @@
+package com.xt.hb.gis.mapconfig.ctl;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.flex.remoting.RemotingDestination;
+import org.springframework.stereotype.Controller;
+
+import com.xt.hb.gis.ctl.BaseCtl;
+import com.xt.hb.gis.mapconfig.model.MapConfig;
+import com.xt.hb.gis.mapconfig.svc.MapConfigService;
+
+/**
+ * 海事AIS相关Flex服务接口
+ * 
+ * @author 袁晓冬
+ *
+ */
+@Controller
+@RemotingDestination("mapConfigCtl")
+public class MapConfigCtl extends BaseCtl {
+	@Autowired
+	MapConfigService mapConfigService;
+
+	/**
+	 * 根据mmsi查询船舶轨迹
+	 * 
+	 * @return
+	 */
+	public List<MapConfig> queryMapList() {
+	    MapConfig entity = new MapConfig();
+	    entity.setStatus("1");
+	    List<MapConfig> list = mapConfigService.findMapConfigAll(entity);
+	    for(int i = 0; i<list.size(); i++) {
+	        if(null == list.get(i).getCdtb()) {
+	            list.get(i).setCdtb("");
+	        };
+	    }
+		return list;
+	}
+}

+ 18 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/mapconfig/mappers/MapConfigMapper.java

@@ -0,0 +1,18 @@
+package com.xt.hb.gis.mapconfig.mappers;
+
+import java.util.List;
+
+import com.xt.hb.gis.mapconfig.model.MapConfig;
+import com.xt.hb.gis.mappers.BaseMapper;
+
+public interface MapConfigMapper extends BaseMapper<MapConfig> {
+    /**
+     * 根据主键更新记录
+     * 
+     * @param record
+     *            T
+     * @return
+     */
+    List<MapConfig> selectAllByCondition(MapConfig entity);
+    
+}

+ 85 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/mapconfig/model/MapConfig.java

@@ -0,0 +1,85 @@
+package com.xt.hb.gis.mapconfig.model;
+
+import java.math.BigDecimal;
+
+public class MapConfig {
+    private String id;
+
+    private String cdmc;
+
+    private String cdtb;
+
+    private String checkState;
+
+    private String cdid;
+
+    private String status;
+
+    private BigDecimal sortno;
+
+    private String fid;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id == null ? null : id.trim();
+    }
+
+    public String getCdmc() {
+        return cdmc;
+    }
+
+    public void setCdmc(String cdmc) {
+        this.cdmc = cdmc == null ? null : cdmc.trim();
+    }
+
+    public String getCdtb() {
+        return cdtb;
+    }
+
+    public void setCdtb(String cdtb) {
+        this.cdtb = cdtb == null ? null : cdtb.trim();
+    }
+
+    public String getCheckState() {
+        return checkState;
+    }
+
+    public void setCheckState(String checkState) {
+        this.checkState = checkState == null ? null : checkState.trim();
+    }
+
+    public String getCdid() {
+        return cdid;
+    }
+
+    public void setCdid(String cdid) {
+        this.cdid = cdid == null ? null : cdid.trim();
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status == null ? null : status.trim();
+    }
+
+    public BigDecimal getSortno() {
+        return sortno;
+    }
+
+    public void setSortno(BigDecimal sortno) {
+        this.sortno = sortno;
+    }
+
+    public String getFid() {
+        return fid;
+    }
+
+    public void setFid(String fid) {
+        this.fid = fid == null ? null : fid.trim();
+    }
+}

+ 8 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/mapconfig/package-info.java

@@ -0,0 +1,8 @@
+/**
+ * 地图配置
+ */
+/**
+ * @author 袁晓冬
+ *
+ */
+package com.xt.hb.gis.mapconfig;

+ 20 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/mapconfig/svc/MapConfigService.java

@@ -0,0 +1,20 @@
+package com.xt.hb.gis.mapconfig.svc;
+
+import java.util.List;
+
+import com.xt.hb.gis.mapconfig.model.MapConfig;
+import com.xt.hb.gis.mappers.BaseMapper;
+
+/**
+ * Created by Administrator on 2015/8/8.
+ */
+public interface MapConfigService extends BaseMapper<MapConfig> {
+
+    /**
+     * 查询
+     * 
+     * @return
+     */
+    List<MapConfig> findMapConfigAll(MapConfig entity);
+
+}

+ 26 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/mapconfig/svcimpl/MapConfigServiceImpl.java

@@ -0,0 +1,26 @@
+package com.xt.hb.gis.mapconfig.svcimpl;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.xt.hb.gis.mapconfig.mappers.MapConfigMapper;
+import com.xt.hb.gis.mapconfig.model.MapConfig;
+import com.xt.hb.gis.mapconfig.svc.MapConfigService;
+import com.xt.hb.gis.mappers.BaseMapper;
+import com.xt.hb.gis.service.impl.BaseMapperService;
+
+@Service
+public class MapConfigServiceImpl extends BaseMapperService<MapConfig> implements MapConfigService {
+    @Autowired
+    MapConfigMapper mapper;
+    
+    public List<MapConfig> findMapConfigAll(MapConfig entity) {
+        return mapper.selectAllByCondition(entity);
+    }
+    @Override
+    protected BaseMapper<MapConfig> getMapper() {
+        return mapper;
+    }
+}

+ 8 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/mapconfig/ws/package-info.java

@@ -0,0 +1,8 @@
+/**
+ * webservice
+ */
+/**
+ * @author 袁晓冬
+ *
+ */
+package com.xt.hb.gis.mapconfig.ws;

+ 57 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/mappers/BaseMapper.java

@@ -0,0 +1,57 @@
+package com.xt.hb.gis.mappers;
+
+import java.util.List;
+
+/**
+ * Mapper基类
+ * 
+ * @author 袁晓冬
+ *
+ * @param <T>
+ */
+public interface BaseMapper<T> {
+
+    /**
+     * 根据主键物理删除记录
+     * 
+     * @param id
+     *            String
+     * @return int
+     */
+    int deleteByPrimaryKey(String id);
+
+    /**
+     * 新增记录
+     * 
+     * @param record
+     *            T
+     * @return int
+     */
+    int insert(T record);
+
+    /**
+     * 根据主键查找记录
+     * 
+     * @param id
+     *            String
+     * @return T
+     */
+    T selectByPrimaryKey(String id);
+
+    /**
+     * 检索所有记录,包括记录状态为删除的记录
+     * 
+     * @return List<T>
+     */
+    List<T> selectAll();
+
+    /**
+     * 根据主键更新记录
+     * 
+     * @param record
+     *            T
+     * @return
+     */
+    int updateByPrimaryKey(T record);
+
+}

+ 16 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/service/SystemService.java

@@ -0,0 +1,16 @@
+package com.xt.hb.gis.service;
+
+/**
+ * 系统服务接口
+ * 
+ * @author 袁晓冬
+ *
+ */
+public interface SystemService {
+	/**
+	 * 加载系统全局参数
+	 * 
+	 * @return
+	 */
+	public String reloadParam();
+}

+ 63 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/service/impl/BaseMapperService.java

@@ -0,0 +1,63 @@
+package com.xt.hb.gis.service.impl;
+
+import java.util.List;
+
+import org.springframework.transaction.annotation.Transactional;
+
+import com.xt.hb.gis.exception.BizException;
+import com.xt.hb.gis.mappers.BaseMapper;
+
+/**
+ * 服务层共通基类
+ * 
+ * @author 袁晓冬
+ *
+ * @param <T>
+ */
+public abstract class BaseMapperService<T> implements BaseMapper<T> {
+    /**
+     * 获取数据库操作接口
+     * 
+     * @return
+     */
+    protected abstract BaseMapper<T> getMapper();
+
+    /**
+     * 获取检查过的Mapper对象
+     * 
+     * @return
+     */
+    private BaseMapper<T> getCheckedMapper() {
+        BaseMapper<T> mapper = getMapper();
+        if (null == mapper) { throw new BizException("mapper 不能为空!"); }
+        return mapper;
+    }
+
+    @Transactional
+    @Override
+    public int deleteByPrimaryKey(String id) {
+        return getCheckedMapper().deleteByPrimaryKey(id);
+    }
+
+    @Transactional
+    @Override
+    public int insert(T record) {
+        return getCheckedMapper().insert(record);
+    }
+
+    @Override
+    public T selectByPrimaryKey(String id) {
+        return getCheckedMapper().selectByPrimaryKey(id);
+    }
+
+    @Override
+    public List<T> selectAll() {
+        return getCheckedMapper().selectAll();
+    }
+
+    @Transactional
+    @Override
+    public int updateByPrimaryKey(T record) {
+        return getCheckedMapper().updateByPrimaryKey(record);
+    }
+}

+ 45 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/service/impl/SystemServiceImpl.java

@@ -0,0 +1,45 @@
+package com.xt.hb.gis.service.impl;
+
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.xt.hb.gis.common.GlobalData;
+import com.xt.hb.gis.service.SystemService;
+import com.xt.hb.gis.system.mappers.SysParamMapper;
+import com.xt.hb.gis.system.model.SysParam;
+import com.yuanxd.tools.utils.Reflections;
+import com.yuanxd.tools.utils.string.StringUtils;
+
+@Service
+public class SystemServiceImpl implements SystemService {
+	private final Logger log = LoggerFactory.getLogger(SystemService.class);
+	@Autowired
+	private SysParamMapper paramMapper;
+
+	@Override
+	public String reloadParam() {
+		List<SysParam> params = paramMapper.selectBySystemOrNull(GlobalData.CONST_SYSTEM_NAME);
+		if (null == params || params.size() == 0) {
+			return "没有获取到属性";
+		}
+		for (SysParam sp : params) {
+			Class<?> clazz;
+			try {
+				if (StringUtils.hasText(sp.getClazz())) {
+					clazz = Class.forName(sp.getClazz());
+				} else {
+					clazz = GlobalData.class;
+				}
+				Reflections.setFieldValueSilence(clazz, sp.getKey(), sp.getValue());
+			} catch (ClassNotFoundException e) {
+				log.error("系统参数加载失败(ID:{},key:{})", sp.getId(), sp.getKey());
+			}
+		}
+		return "系统参数加载成功";
+	}
+
+}

+ 44 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/system/AuthResult.java

@@ -0,0 +1,44 @@
+package com.xt.hb.gis.system;
+
+/**
+ * 权限校验结果
+ * 
+ * @author 袁晓冬
+ *
+ */
+public enum AuthResult {
+    /** 校验通过 */
+    PASS(0, "校验成功"),
+    /** 需要登录 */
+    LOGIN(10, "请先登录系统"),
+    /** 没有功能权限 */
+    PERMISSION(20, "没有权限访问,请与管理员联系");
+    /** 结果值 */
+    private int value;
+    /** 消息 */
+    private String message;
+
+    private AuthResult(int value, String message) {
+        this.value = value;
+        this.message = message;
+    }
+
+    /**
+     * 消息
+     * 
+     * @return
+     */
+    public String getMessage() {
+        return message;
+    }
+
+    /**
+     * 验证结果值
+     * 
+     * @return
+     */
+    public int getValue() {
+        return this.value;
+    }
+
+}

+ 164 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/system/DataSourceFactory.java

@@ -0,0 +1,164 @@
+package com.xt.hb.gis.system;
+
+import java.io.IOException;
+import java.sql.SQLException;
+import java.util.Properties;
+
+import javax.sql.DataSource;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.FactoryBean;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.core.io.Resource;
+import org.springframework.core.io.support.EncodedResource;
+import org.springframework.core.io.support.PropertiesLoaderUtils;
+
+import com.alibaba.druid.pool.DruidDataSource;
+
+public class DataSourceFactory implements FactoryBean<DataSource>, InitializingBean {
+    Logger logger = LoggerFactory.getLogger(DataSourceFactory.class);
+    private Resource[] properties;
+    private DataSource ds;
+    private String fileEncoding;
+    /** 连接池数据源类型 */
+    private String dsType = "com.alibaba.druid.pool.DruidDataSource";
+
+    public void close() {
+        if (ds instanceof DruidDataSource) {
+            ((DruidDataSource) ds).close();
+        }
+    }
+
+    public void init() {
+        if (ds instanceof DruidDataSource) {
+            try {
+                ((DruidDataSource) ds).init();
+            }
+            catch (SQLException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    @Override
+    public DataSource getObject() throws Exception {
+        return ds;
+    }
+
+    @Override
+    public Class<?> getObjectType() {
+        return DataSource.class;
+    }
+
+    @Override
+    public boolean isSingleton() {
+        return true;
+    }
+
+    private void loadProperties(Properties props) {
+        for (Resource location : this.properties) {
+            if (logger.isInfoEnabled()) {
+                logger.info("Loading properties file from " + location);
+            }
+            try {
+                PropertiesLoaderUtils.fillProperties(props, new EncodedResource(location, this.fileEncoding));
+            }
+            catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+
+    }
+
+    @Override
+    public void afterPropertiesSet() throws Exception {
+        Properties properties = new Properties();
+        loadProperties(properties);
+        if (dsType.equals("com.alibaba.druid.pool.DruidDataSource")) {
+            DruidDataSource druidDataSource = new DruidDataSource();
+            druidDataSource.configFromPropety(properties);
+            {
+                String property = properties.getProperty("druid.url");
+                if (property != null && property.length() > 0) {
+                    druidDataSource.setUrl(property);
+                }
+            }
+            {
+                String property = properties.getProperty("druid.username");
+                if (property != null && property.length() > 0) {
+                    druidDataSource.setUsername(property);
+                }
+            }
+            {
+                String property = properties.getProperty("druid.password");
+                if (property != null && property.length() > 0) {
+                    druidDataSource.setPassword(property);
+                }
+            }
+            {
+                String property = properties.getProperty("druid.initialSize");
+                if (property != null && property.length() > 0) {
+                    druidDataSource.setInitialSize(Integer.parseInt(property));
+                }
+            }
+            {
+                String property = properties.getProperty("druid.minIdle");
+                if (property != null && property.length() > 0) {
+                    druidDataSource.setMinIdle(Integer.parseInt(property));
+                }
+            }
+            {
+                String property = properties.getProperty("druid.maxActive");
+                if (property != null && property.length() > 0) {
+                    druidDataSource.setMaxActive(Integer.parseInt(property));
+                }
+            }
+            {
+                String property = properties.getProperty("druid.timeBetweenEvictionRunsMillis");
+                if (property != null && property.length() > 0) {
+                    druidDataSource.setTimeBetweenEvictionRunsMillis(Long.parseLong(property));
+                }
+            }
+            {
+                String property = properties.getProperty("druid.minEvictableIdleTimeMillis");
+                if (property != null && property.length() > 0) {
+                    druidDataSource.setMinEvictableIdleTimeMillis(Integer.parseInt(property));
+                }
+            }
+            {
+                String property = properties.getProperty("druid.testOnReturn");
+                if ("true".equals(property)) {
+                    druidDataSource.setTestOnReturn(true);
+                }
+                else if ("false".equals(property)) {
+                    druidDataSource.setTestOnReturn(false);
+                }
+            }
+            {
+                String property = properties.getProperty("druid.poolPreparedStatements");
+                if ("true".equals(property)) {
+                    druidDataSource.setPoolPreparedStatements(true);
+                }
+                else if ("false".equals(property)) {
+                    druidDataSource.setPoolPreparedStatements(false);
+                }
+            }
+            {
+                String property = properties.getProperty("druid.maxPoolPreparedStatementPerConnectionSize");
+                if (property != null && property.length() > 0) {
+                    druidDataSource.setMaxPoolPreparedStatementPerConnectionSize(Integer.parseInt(property));
+                }
+            }
+            ds = druidDataSource;
+        }
+    }
+
+    public void setDsType(String dsType) {
+        this.dsType = dsType;
+    }
+
+    public void setProperties(Resource[] properties) {
+        this.properties = properties;
+    }
+}

+ 20 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/system/FlexExceptionTranslator.java

@@ -0,0 +1,20 @@
+package com.xt.hb.gis.system;
+
+import org.springframework.flex.core.ExceptionTranslator;
+
+import flex.messaging.MessageException;
+
+public class FlexExceptionTranslator implements ExceptionTranslator {
+
+	public boolean handles(Class<?> clazz) {
+		// System.out.println("CustomExceptionTranslator - handles - " +
+		// clazz.getName());
+		return true;
+	}
+
+	public MessageException translate(Throwable t) {
+		// System.out.println("CustomExceptionTranslator - translate - " +
+		// t.getMessage());
+		return new MessageException(t);
+	}
+}

+ 20 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/system/FlexMessageInterceptor.java

@@ -0,0 +1,20 @@
+package com.xt.hb.gis.system;
+
+import org.springframework.flex.core.MessageInterceptor;
+import org.springframework.flex.core.MessageProcessingContext;
+
+import flex.messaging.messages.Message;
+
+public class FlexMessageInterceptor implements MessageInterceptor {
+
+	public Message postProcess(MessageProcessingContext context, Message inputMessage, Message outputMessage) {
+		// System.out.println("CustomMessageInterceptor - postProcess");
+		return outputMessage;
+	}
+
+	public Message preProcess(MessageProcessingContext context, Message inputMessage) {
+		// System.out.println("CustomMessageInterceptor - preProcess");
+		return inputMessage;
+	}
+
+}

+ 54 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/system/InitServlet.java

@@ -0,0 +1,54 @@
+package com.xt.hb.gis.system;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.web.context.support.WebApplicationContextUtils;
+
+import com.alibaba.fastjson.JSONObject;
+import com.xt.hb.gis.common.DataServerGlobal;
+import com.xt.hb.gis.service.SystemService;
+
+/**
+ * 系统初始化
+ * 
+ * @author 袁晓冬
+ *
+ */
+public class InitServlet extends HttpServlet {
+	private final Logger log = LoggerFactory.getLogger(InitServlet.class);
+
+	/** serialVersionUID */
+	private static final long serialVersionUID = 3137976979537814808L;
+	private AutowireCapableBeanFactory beanFactory;
+	private RestTemplate restTemplate;
+
+	@Override
+	public void init(ServletConfig servletConfig) throws ServletException {
+		System.err.println("system init start......");
+		try {
+			beanFactory = WebApplicationContextUtils.getWebApplicationContext(servletConfig.getServletContext())
+					.getAutowireCapableBeanFactory();
+			SystemService systemService = beanFactory.getBean(SystemService.class);
+			restTemplate = beanFactory.getBean(RestTemplate.class);
+			System.err.println(systemService.reloadParam());
+			StringBuilder url = new StringBuilder();
+			if (!DataServerGlobal.SERVER_URL.startsWith("http")) {
+				url.append("http://");
+			}
+			url.append(DataServerGlobal.SERVER_URL).append("/services");
+			JSONObject info = restTemplate.getForObject(url.toString(), JSONObject.class);
+			DataServerGlobal.initServices(info);
+			log.info("system init success!!");
+			System.err.println("system init success!!");
+		} catch (Throwable t) {
+			t.printStackTrace();
+			throw t;
+		}
+	}
+}

+ 118 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/system/LoginFilter.java

@@ -0,0 +1,118 @@
+package com.xt.hb.gis.system;
+
+import java.io.IOException;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+import org.apache.log4j.Logger;
+
+import com.xt.hb.gis.common.GlobalData;
+import com.yuanxd.tools.io.http.HttpResultType;
+import com.yuanxd.tools.io.http.HttpUtil;
+import com.yuanxd.tools.io.http.RequestBean;
+import com.yuanxd.tools.io.http.ResponseBean;
+import com.yuanxd.tools.utils.string.StringUtils;
+
+/**
+ * 安全认证过滤器
+ */
+public class LoginFilter implements Filter {
+	private final static Logger LOGGER = Logger.getLogger(LoginFilter.class);
+
+	private String[] pass_url_filters = { "/yjpt/upload.*" };
+
+	/**
+	 * 初始化
+	 */
+	public void init(FilterConfig filterConfig) throws ServletException {
+	}
+
+	/**
+	 * 执行过滤
+	 */
+	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
+			throws IOException, ServletException {
+		long startTime = System.currentTimeMillis();
+		String request_uri = null;
+		if ((request instanceof HttpServletRequest)) {
+			HttpServletRequest httpReq = (HttpServletRequest) request;
+			HttpServletResponse httpResp = (HttpServletResponse) response;
+			request_uri = httpReq.getRequestURI();
+			boolean pass = false;
+			for (String pass_url : pass_url_filters) {
+				if (request_uri.matches(pass_url)) {
+					pass = true;
+					break;
+				}
+			}
+			if (!pass) {
+				if (!this.checkSession(httpReq, httpResp)) {
+					return;
+				}
+			}
+
+		}
+		try {
+			chain.doFilter(request, response);
+		} catch (Exception e) {
+			LOGGER.error("error occured,url:" + request_uri);
+			throw new RuntimeException(e);
+		}
+		long cost = System.currentTimeMillis() - startTime;
+		// 耗时监控
+		if (cost > 5000) {
+			LOGGER.info("cost " + cost / 1000.0 + ":" + request_uri);
+		}
+	}
+
+	/**
+	 * 检查是否已登陆
+	 * 
+	 * @param httpReq
+	 * @param httpResp
+	 * @return
+	 * @throws ServletException
+	 * @throws IOException
+	 */
+	private boolean checkSession(HttpServletRequest httpReq, HttpServletResponse httpResp)
+			throws ServletException, IOException {
+		// session过期
+		if (httpReq.getSession(false) == null) {
+			return checkToken(httpReq);
+		}
+		// 检查是否登录
+		HttpSession session = httpReq.getSession();
+		String st = (String) session.getAttribute(GlobalData.SESSION_TOKEN);
+		if (null == st) {
+			return checkToken(httpReq);
+		}
+		return true;
+	}
+
+	private boolean checkToken(HttpServletRequest httpReq) {
+		HttpSession session = httpReq.getSession();
+		String token = httpReq.getParameter("token");
+		if (StringUtils.hasText(token)||true) {
+			RequestBean req = new RequestBean(HttpResultType.STRING);
+			req.setUrl(GlobalData.SESSION_VALID_URL + token);
+			ResponseBean resp = HttpUtil.getInstance().execute(req);
+			if ("true".equals(resp.getStringResult()) || GlobalData.isDevelop) {
+				session.setAttribute(GlobalData.SESSION_TOKEN, token);
+				return true;
+			}
+		}
+		return true;
+	}
+
+	public void destroy() {
+	}
+
+}

+ 13 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/system/SystemInterceptor.java

@@ -0,0 +1,13 @@
+package com.xt.hb.gis.system;
+
+import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
+
+/**
+ * 系统拦截器<br>
+ * 1、登陆验证
+ * 
+ * @author 袁晓冬
+ *
+ */
+public class SystemInterceptor extends HandlerInterceptorAdapter {
+}

+ 17 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/system/mappers/SysParamMapper.java

@@ -0,0 +1,17 @@
+package com.xt.hb.gis.system.mappers;
+
+import java.util.List;
+
+import com.xt.hb.gis.mappers.BaseMapper;
+import com.xt.hb.gis.system.model.SysParam;
+
+public interface SysParamMapper extends BaseMapper<SysParam> {
+	/**
+	 * 根据子系统编码查询系统参数<br>
+	 * 包括编码为空的参数
+	 * 
+	 * @param system
+	 * @return
+	 */
+	List<SysParam> selectBySystemOrNull(String system);
+}

+ 80 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/system/model/SysParam.java

@@ -0,0 +1,80 @@
+package com.xt.hb.gis.system.model;
+
+/**
+ * 系统参数对象
+ * 
+ * @author 袁晓冬
+ *
+ */
+public class SysParam {
+	/** 参数ID */
+	private String id;
+	/** 属性名 */
+	private String key;
+	/** 属性值 */
+	private String value;
+	/** 映射类 */
+	private String clazz;
+	/** 备注 */
+	private String disp;
+	/** 是否有效 */
+	private String valid;
+	/** 所属子系统 */
+	private String system;
+
+	public String getId() {
+		return id;
+	}
+
+	public void setId(String id) {
+		this.id = id == null ? null : id.trim();
+	}
+
+	public String getKey() {
+		return key;
+	}
+
+	public void setKey(String key) {
+		this.key = key == null ? null : key.trim();
+	}
+
+	public String getValue() {
+		return value;
+	}
+
+	public void setValue(String value) {
+		this.value = value == null ? null : value.trim();
+	}
+
+	public String getClazz() {
+		return clazz;
+	}
+
+	public void setClazz(String clazz) {
+		this.clazz = clazz == null ? null : clazz.trim();
+	}
+
+	public String getDisp() {
+		return disp;
+	}
+
+	public void setDisp(String disp) {
+		this.disp = disp == null ? null : disp.trim();
+	}
+
+	public String getValid() {
+		return valid;
+	}
+
+	public void setValid(String valid) {
+		this.valid = valid == null ? null : valid.trim();
+	}
+
+	public String getSystem() {
+		return system;
+	}
+
+	public void setSystem(String system) {
+		this.system = system == null ? null : system.trim();
+	}
+}

+ 47 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/util/CustomGetMethod.java

@@ -0,0 +1,47 @@
+package com.xt.hb.gis.util;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.zip.GZIPInputStream;
+
+import org.apache.http.Header;
+import org.apache.http.HttpResponse;
+import org.apache.http.util.EntityUtils;
+
+public class CustomGetMethod {
+    public static String getGzip(HttpResponse response) throws IOException {
+
+        // For GZip response
+        if (isGzip(response)) {
+            InputStream is = response.getEntity().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(response.getEntity(), "utf-8");
+        }
+
+    }
+
+    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;
+    }
+
+}

+ 200 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/util/HttpProxy.java

@@ -0,0 +1,200 @@
+package com.xt.hb.gis.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.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;
+
+@SuppressWarnings("deprecation")
+public class HttpProxy {
+    private final static int TIMEOUT_CONNECTION = 5000;
+    private final static int TIMEOUT_SOCKET = 5000;
+
+    public 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
+     */
+    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
+     */
+    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) throws IOException {
+        //logger.info(path);
+        // 新建HttpGet对象
+        HttpGet httpGet = new HttpGet(path);
+        return invoke(httpGet);
+    }
+
+    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) throws IOException {
+        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) {
+        try {
+            //            logger.info(path);
+            // 新建HttpPost对象
+            HttpPost httpPost = new HttpPost(path);
+            HttpEntity entity = new UrlEncodedFormEntity(params, HTTP.UTF_8);
+            // 设置参数实体
+            httpPost.setEntity(entity);
+
+            return invoke(httpPost);
+        }
+        catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+    protected static String http_post_json(String path, Map<String, Object> params) {
+        return http_post_json(path, postParams(params));
+    }
+
+    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) throws IOException {
+        // 获取HttpClient对象
+        DefaultHttpClient httpclient = getHttpClient();
+        HttpResponse response = httpclient.execute(httpget);
+        return responseParams(response);
+
+    }
+
+    private static String responseParams(HttpResponse response) throws IOException {
+        // 判断是够请求成功
+        if (response.getStatusLine().getStatusCode() == 200) {
+            // 获取返回的数据
+            //				System.out.println("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) {
+        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;
+        }
+    }
+
+}

+ 30 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/util/IdGenerator.java

@@ -0,0 +1,30 @@
+package com.xt.hb.gis.util;
+
+/**
+ * 生成标识符接口.
+ * 
+ * @author 袁晓冬
+ */
+public interface IdGenerator {
+
+    /**
+     * 创建String型的唯一标识
+     * 
+     * @return
+     */
+    String generateStringId();
+
+    /**
+     * 创建long型的唯一标识
+     * 
+     * @return
+     */
+    long generateLongId();
+
+    /**
+     * 创建int型的唯一标识
+     * 
+     * @return
+     */
+    int generateIntId();
+}

+ 39 - 0
gkaq/gis-java/trunk/src/main/java/com/xt/hb/gis/util/UUIdGenerator.java

@@ -0,0 +1,39 @@
+package com.xt.hb.gis.util;
+
+import java.util.UUID;
+
+/**
+ * 框架默认的ID生成器
+ * 
+ * @author 袁晓冬
+ *
+ */
+public class UUIdGenerator implements IdGenerator {
+
+    /**
+     * 返回UUID
+     */
+    @Override
+    public String generateStringId() {
+        String id = UUID.randomUUID().toString();
+        id = id.replace("-", "");
+        return id;
+    }
+
+    /**
+     * 不提供支持
+     */
+    @Override
+    public long generateLongId() {
+        throw new IllegalArgumentException("不支持此方法!");
+    }
+
+    /**
+     * 不提供支持
+     */
+    @Override
+    public int generateIntId() {
+        throw new IllegalArgumentException("不支持此方法!");
+    }
+
+}

+ 63 - 0
gkaq/gis-java/trunk/src/main/resources/applicationContext-shiro.xml

@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
+    xmlns:context="http://www.springframework.org/schema/context" xmlns:jpa="http://www.springframework.org/schema/data/jpa"
+    xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:util="http://www.springframework.org/schema/util"
+    xsi:schemaLocation="
+        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
+        http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd
+        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
+        http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd
+        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd
+        http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd"
+    default-lazy-init="true">
+
+    <description>Security Configuration</description>
+
+    <!-- Shiro's main business-tier object for web-enabled applications -->
+    <bean id="securityManager" class="org.apache.shiro.mgt.DefaultSecurityManager" >
+        <property name="realm" ref="securityRealm" />
+        <property name="cacheManager" ref="shiroCacheManager" />
+        <property name="sessionManager"  ref="sessionManager"></property>
+    </bean>
+    <bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager"/>
+
+    <!-- 项目自定义的Realm -->
+    <bean id="securityRealm" factory-bean="securityMgr" factory-method="getSecurityRealm">
+    </bean>
+
+    <!-- Shiro Filter -->
+    <bean id="formAuthenticationFilter" factory-bean="securityMgr" factory-method="getFormAuthenticationFilter" />
+
+    <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
+        <property name="securityManager" ref="securityManager" />
+        <property name="loginUrl" value="/login" />
+        <property name="successUrl" value="/index" />
+        <property name="filters">
+            <map>
+                <entry key="authc" value-ref="formAuthenticationFilter" />
+            </map>
+        </property>
+        <property name="filterChainDefinitions">
+            <value>
+                /index*.html = anon
+                /static/** = anon
+                /isLogin = anon
+                /** = authc
+            </value>
+        </property>
+    </bean>
+
+    <!-- 用户授权信息Cache -->
+	<bean id="shiroCacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager"  depends-on="cacheManagerFactory">
+		<property name="cacheManager" ref="cacheManagerFactory" />
+		<property name="cacheManagerConfigFile" value="classpath:ehcache/ehcache.xml"></property>
+	</bean>
+
+    <!-- 保证实现了Shiro内部lifecycle函数的bean执行 -->
+    <bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor" />
+    <bean class="com.xtframe.web.authz.AuthorizationAttributeSourceAdvisor">
+        <property name="securityManager" ref="securityManager" />
+    </bean>
+</beans>

+ 51 - 0
gkaq/gis-java/trunk/src/main/resources/com/xt/hb/gis/mappers/MapConfigMapper.xml

@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.xt.hb.gis.mapconfig.mappers.MapConfigMapper" >
+  <resultMap id="BaseResultMap" type="com.xt.hb.gis.mapconfig.model.MapConfig" >
+    <id column="ID" property="id" jdbcType="VARCHAR" />
+    <result column="CDMC" property="cdmc" jdbcType="VARCHAR" />
+    <result column="CDTB" property="cdtb" jdbcType="VARCHAR" />
+    <result column="CHECK_STATE" property="checkState" jdbcType="VARCHAR" />
+    <result column="CDID" property="cdid" jdbcType="VARCHAR" />
+    <result column="STATUS" property="status" jdbcType="CHAR" />
+    <result column="SORTNO" property="sortno" jdbcType="DECIMAL" />
+    <result column="FID" property="fid" jdbcType="VARCHAR" />
+  </resultMap>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
+    delete from T_MAP_SERVICE_CONFIG
+    where ID = #{id,jdbcType=VARCHAR}
+  </delete>
+  <insert id="insert" parameterType="com.xt.hb.gis.mapconfig.model.MapConfig" >
+    insert into T_MAP_SERVICE_CONFIG (ID, CDMC, CDTB, 
+      CHECK_STATE, CDID, STATUS, 
+      SORTNO, FID)
+    values (#{id,jdbcType=VARCHAR}, #{cdmc,jdbcType=VARCHAR}, #{cdtb,jdbcType=VARCHAR}, 
+      #{checkState,jdbcType=VARCHAR}, #{cdid,jdbcType=VARCHAR}, #{status,jdbcType=CHAR}, 
+      #{sortno,jdbcType=DECIMAL}, #{fid,jdbcType=VARCHAR})
+  </insert>
+  <update id="updateByPrimaryKey" parameterType="com.xt.hb.gis.mapconfig.model.MapConfig" >
+    update T_MAP_SERVICE_CONFIG
+    set CDMC = #{cdmc,jdbcType=VARCHAR},
+      CDTB = #{cdtb,jdbcType=VARCHAR},
+      CHECK_STATE = #{checkState,jdbcType=VARCHAR},
+      CDID = #{cdid,jdbcType=VARCHAR},
+      STATUS = #{status,jdbcType=CHAR},
+      SORTNO = #{sortno,jdbcType=DECIMAL},
+      FID = #{fid,jdbcType=VARCHAR}
+    where ID = #{id,jdbcType=VARCHAR}
+  </update>
+  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
+    select ID, CDMC, CDTB, CHECK_STATE, CDID, STATUS, SORTNO, FID
+    from T_MAP_SERVICE_CONFIG
+    where ID = #{id,jdbcType=VARCHAR}
+  </select>
+  <select id="selectAll" resultMap="BaseResultMap" >
+    select ID, CDMC, CDTB, CHECK_STATE, CDID, STATUS, SORTNO, FID
+    from T_MAP_SERVICE_CONFIG
+  </select>
+  <select id="selectAllByCondition" resultMap="BaseResultMap" parameterType="com.xt.hb.gis.mapconfig.model.MapConfig">
+    select ID, CDMC, CDTB, CHECK_STATE, CDID, STATUS, SORTNO, FID
+    from T_MAP_SERVICE_CONFIG WHERE STATUS = #{status,jdbcType=VARCHAR}
+    ORDER BY SORTNO
+  </select>
+</mapper>

+ 49 - 0
gkaq/gis-java/trunk/src/main/resources/com/xt/hb/gis/mappers/SysParamMapper.xml

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.xt.hb.gis.system.mappers.SysParamMapper" >
+  <resultMap id="BaseResultMap" type="com.xt.hb.gis.system.model.SysParam" >
+    <id column="ID" property="id" jdbcType="VARCHAR" />
+    <result column="KEY" property="key" jdbcType="VARCHAR" />
+    <result column="VALUE" property="value" jdbcType="VARCHAR" />
+    <result column="CLAZZ" property="clazz" jdbcType="VARCHAR" />
+    <result column="DISP" property="disp" jdbcType="VARCHAR" />
+    <result column="VALID" property="valid" jdbcType="CHAR" />
+    <result column="SYSTEM" property="system" jdbcType="VARCHAR" />
+  </resultMap>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
+    delete from T_SYS_PARAM
+    where ID = #{id,jdbcType=VARCHAR}
+  </delete>
+  <insert id="insert" parameterType="com.xt.hb.gis.system.model.SysParam" >
+    insert into T_SYS_PARAM (ID, KEY, VALUE, 
+      CLAZZ, DISP, VALID, SYSTEM
+      )
+    values (#{id,jdbcType=VARCHAR}, #{key,jdbcType=VARCHAR}, #{value,jdbcType=VARCHAR}, 
+      #{clazz,jdbcType=VARCHAR}, #{disp,jdbcType=VARCHAR}, #{valid,jdbcType=CHAR}, #{system,jdbcType=VARCHAR}
+      )
+  </insert>
+  <update id="updateByPrimaryKey" parameterType="com.xt.hb.gis.system.model.SysParam" >
+    update T_SYS_PARAM
+    set KEY = #{key,jdbcType=VARCHAR},
+      VALUE = #{value,jdbcType=VARCHAR},
+      CLAZZ = #{clazz,jdbcType=VARCHAR},
+      DISP = #{disp,jdbcType=VARCHAR},
+      VALID = #{valid,jdbcType=CHAR},
+      SYSTEM = #{system,jdbcType=VARCHAR}
+    where ID = #{id,jdbcType=VARCHAR}
+  </update>
+  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
+    select ID, KEY, VALUE, CLAZZ, DISP, VALID, SYSTEM
+    from T_SYS_PARAM
+    where ID = #{id,jdbcType=VARCHAR}
+  </select>
+  <select id="selectAll" resultMap="BaseResultMap" >
+    select ID, KEY, VALUE, CLAZZ, DISP, VALID, SYSTEM
+    from T_SYS_PARAM
+  </select>
+  <select id="selectBySystemOrNull" resultMap="BaseResultMap" parameterType="java.lang.String">
+    select ID, KEY, VALUE, CLAZZ, DISP, VALID, SYSTEM
+    from T_SYS_PARAM
+    where (SYSTEM=#{system,jdbcType=VARCHAR} OR SYSTEM IS NULL) AND VALID='1'
+  </select>
+</mapper>

+ 25 - 0
gkaq/gis-java/trunk/src/main/resources/ehcache/ehcache.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="false"
+	monitoring="autodetect" dynamicConfig="true">
+
+	<diskStore path="java.io.tmpdir" />
+	<!-- <diskStore path="E:/cachetmpdir" /> -->
+
+	<!-- name:Cache的唯一标识 maxElementsInMemory:内存中最大缓存对象数 maxElementsOnDisk:磁盘中最大缓存对象数,若是0表示无穷大 
+		eternal:Element是否永久有效,一但设置了,timeout将不起作用 overflowToDisk:配置此属性,当内存中Element数量达到maxElementsInMemory时,Ehcache将会Element写到磁盘中 
+		timeToIdleSeconds:设置Element在失效前的允许闲置时间。仅当element不是永久有效时使用,可选属性,默认值是0,也就是可闲置时间无穷大 
+		timeToLiveSeconds:设置Element在失效前允许存活时间。最大时间介于创建时间和失效时间之间。仅当element不是永久有效时使用,默认是0.,也就是element存活时间无穷大 
+		diskPersistent:是否缓存虚拟机重启期数据 diskExpiryThreadIntervalSeconds:磁盘失效线程运行时间间隔,默认是120秒 
+		diskSpoolBufferSizeMB:这个参数设置DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都应该有自己的一个缓冲区 
+		memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存。默认策略是LRU(最近最少使用)。你可以设置为FIFO(先进先出)或是LFU(较少使用) -->
+
+	<defaultCache maxElementsInMemory="10000" eternal="false"
+		timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true"
+		maxElementsOnDisk="10000000" diskPersistent="false"
+		diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU" />
+	<cache name="authCache" maxElementsInMemory="10000"
+		maxElementsOnDisk="10000" eternal="true" overflowToDisk="true"
+		diskSpoolBufferSizeMB="20" timeToIdleSeconds="3000" timeToLiveSeconds="3600"
+		memoryStoreEvictionPolicy="LRU" />
+</ehcache>

+ 421 - 0
gkaq/gis-java/trunk/src/main/resources/ehcache/ehcache.xsd

@@ -0,0 +1,421 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="1.7">
+
+    <xs:element name="ehcache">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element maxOccurs="1" minOccurs="0" ref="diskStore"/>
+                <xs:element maxOccurs="1" minOccurs="0" ref="sizeOfPolicy"/>
+                <xs:element maxOccurs="1" minOccurs="0" ref="transactionManagerLookup"/>
+                <xs:element maxOccurs="1" minOccurs="0" ref="cacheManagerEventListenerFactory"/>
+                <xs:element maxOccurs="1" minOccurs="0" ref="managementRESTService"/>
+                <xs:element maxOccurs="unbounded" minOccurs="0" ref="cacheManagerPeerProviderFactory"/>
+                <xs:element maxOccurs="unbounded" minOccurs="0" ref="cacheManagerPeerListenerFactory"/>
+                <xs:element maxOccurs="1" minOccurs="0" ref="terracottaConfig"/>
+                <xs:element maxOccurs= "1" minOccurs="0" ref="defaultCache"/>
+                <xs:element maxOccurs="unbounded" minOccurs="0" ref="cache"/>
+            </xs:sequence>
+            <xs:attribute name="name" use="optional"/>
+            <xs:attribute default="true" name="updateCheck" type="xs:boolean" use="optional"/>
+            <xs:attribute default="autodetect" name="monitoring" type="monitoringType" use="optional"/>
+            <xs:attribute default="true" name="dynamicConfig" type="xs:boolean" use="optional"/>
+            <xs:attribute default="15" name="defaultTransactionTimeoutInSeconds" type="xs:integer" use="optional"/>
+            <xs:attribute default="0" name="maxBytesLocalHeap" type="memoryUnitOrPercentage" use="optional"/>
+            <xs:attribute default="0" name="maxBytesLocalOffHeap" type="memoryUnit" use="optional"/>
+            <xs:attribute default="0" name="maxBytesLocalDisk" type="memoryUnit" use="optional"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="managementRESTService">
+        <xs:complexType>
+            <xs:attribute name="enabled" type="xs:boolean" use="optional"/>
+            <xs:attribute name="bind" use="optional"/>
+            <xs:attribute name="securityServiceLocation" use="optional"/>
+            <xs:attribute name="securityServiceTimeout" use="optional" type="xs:integer"/>
+            <xs:attribute name="sslEnabled" use="optional" type="xs:boolean"/>
+            <xs:attribute name="needClientAuth" use="optional" type="xs:boolean"/>
+            <xs:attribute name="sampleHistorySize" use="optional" type="xs:integer"/>
+            <xs:attribute name="sampleIntervalSeconds" use="optional" type="xs:integer"/>
+            <xs:attribute name="sampleSearchIntervalSeconds" use="optional" type="xs:integer"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="diskStore">
+        <xs:complexType>
+            <xs:attribute name="path" use="optional"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="transactionManagerLookup">
+        <xs:complexType>
+            <xs:attribute name="class" use="required"/>
+            <xs:attribute name="properties" use="optional"/>
+            <xs:attribute name="propertySeparator" use="optional"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="cacheManagerEventListenerFactory">
+        <xs:complexType>
+            <xs:attribute name="class" use="required"/>
+            <xs:attribute name="properties" use="optional"/>
+            <xs:attribute name="propertySeparator" use="optional"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="cacheManagerPeerProviderFactory">
+        <xs:complexType>
+            <xs:attribute name="class" use="required"/>
+            <xs:attribute name="properties" use="optional"/>
+            <xs:attribute name="propertySeparator" use="optional"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="cacheManagerPeerListenerFactory">
+        <xs:complexType>
+            <xs:attribute name="class" use="required"/>
+            <xs:attribute name="properties" use="optional"/>
+            <xs:attribute name="propertySeparator" use="optional"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="terracottaConfig">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element maxOccurs="1" minOccurs="0" name="tc-config">
+                    <xs:complexType>
+                        <xs:sequence>
+                            <xs:any maxOccurs="unbounded" minOccurs="0" processContents="skip"/>
+                        </xs:sequence>
+                    </xs:complexType>
+                </xs:element>
+            </xs:sequence>
+            <xs:attribute default="localhost:9510" name="url" use="optional"/>
+            <xs:attribute name="rejoin" type="xs:boolean" use="optional" default="false"/>
+            <xs:attribute name="wanEnabledTSA" type="xs:boolean" use="optional" default="false"/>
+        </xs:complexType>
+    </xs:element>
+    <!-- add clone support for addition of cacheExceptionHandler. Important! -->
+    <xs:element name="defaultCache">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element minOccurs="0" maxOccurs="unbounded" ref="cacheEventListenerFactory"/>
+                <xs:element minOccurs="0" maxOccurs="unbounded" ref="cacheExtensionFactory"/>
+                <xs:element minOccurs="0" maxOccurs="unbounded" ref="cacheLoaderFactory"/>
+                <xs:element minOccurs="0" maxOccurs="unbounded" ref="cacheDecoratorFactory"/>
+                <xs:element minOccurs="0" maxOccurs="1" ref="bootstrapCacheLoaderFactory"/>
+                <xs:element minOccurs="0" maxOccurs="1" ref="cacheExceptionHandlerFactory"/>
+                <xs:element minOccurs="0" maxOccurs="1" ref="pinning"/>
+                <xs:element minOccurs="0" maxOccurs="1" ref="terracotta"/>
+                <xs:element minOccurs="0" maxOccurs="1" ref="cacheWriter"/>
+                <xs:element minOccurs="0" maxOccurs="1" ref="copyStrategy"/>
+                <xs:element minOccurs="0" maxOccurs="1" ref="elementValueComparator"/>
+                <xs:element minOccurs="0" maxOccurs="1" ref="sizeOfPolicy"/>
+                <xs:element minOccurs="0" maxOccurs="1" ref="persistence"/>
+            </xs:sequence>
+            <xs:attribute name="diskExpiryThreadIntervalSeconds" type="xs:integer" use="optional"/>
+            <xs:attribute name="diskSpoolBufferSizeMB" type="xs:integer" use="optional"/>
+            <xs:attribute name="diskPersistent" type="xs:boolean" use="optional"/>
+            <xs:attribute name="diskAccessStripes" type="xs:integer" use="optional" default="1"/>
+            <xs:attribute name="eternal" type="xs:boolean" use="optional" default="false"/>
+            <xs:attribute name="maxElementsInMemory" type="xs:nonNegativeInteger" use="optional"/>
+            <xs:attribute name="maxEntriesLocalHeap" type="xs:nonNegativeInteger" use="optional"/>
+            <xs:attribute name="clearOnFlush" type="xs:boolean" use="optional"/>
+            <xs:attribute name="memoryStoreEvictionPolicy" type="xs:string" use="optional"/>
+            <xs:attribute name="overflowToDisk" type="xs:boolean" use="optional"/>
+            <xs:attribute name="timeToIdleSeconds" type="xs:nonNegativeInteger" use="optional"/>
+            <xs:attribute name="timeToLiveSeconds" type="xs:nonNegativeInteger" use="optional"/>
+            <xs:attribute name="maxElementsOnDisk" type="xs:nonNegativeInteger" use="optional"/>
+            <xs:attribute name="maxEntriesLocalDisk" type="xs:nonNegativeInteger" use="optional"/>
+            <xs:attribute name="transactionalMode" type="transactionalMode" use="optional" default="off"/>
+            <xs:attribute name="statistics" type="xs:boolean" use="optional" default="false"/>
+            <xs:attribute name="copyOnRead" type="xs:boolean" use="optional" default="false"/>
+            <xs:attribute name="copyOnWrite" type="xs:boolean" use="optional" default="false"/>
+            <xs:attribute name="cacheLoaderTimeoutMillis" type="xs:integer" use="optional" default="0"/>
+            <xs:attribute name="overflowToOffHeap" type="xs:boolean" use="optional" default="false"/>
+            <xs:attribute name="maxMemoryOffHeap" type="xs:string" use="optional"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="cache">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element minOccurs="0" maxOccurs="unbounded" ref="cacheEventListenerFactory"/>
+                <xs:element minOccurs="0" maxOccurs="unbounded" ref="cacheExtensionFactory"/>
+                <xs:element minOccurs="0" maxOccurs="unbounded" ref="cacheLoaderFactory"/>
+                <xs:element minOccurs="0" maxOccurs="unbounded" ref="cacheDecoratorFactory"/>
+                <xs:element minOccurs="0" maxOccurs="1" ref="bootstrapCacheLoaderFactory"/>
+                <xs:element minOccurs="0" maxOccurs="1" ref="cacheExceptionHandlerFactory"/>
+                <xs:element minOccurs="0" maxOccurs="1" ref="pinning"/>
+                <xs:element minOccurs="0" maxOccurs="1" ref="terracotta"/>
+                <xs:element minOccurs="0" maxOccurs="1" ref="cacheWriter"/>
+                <xs:element minOccurs="0" maxOccurs="1" ref="copyStrategy"/>
+                <xs:element minOccurs="0" maxOccurs="1" ref="searchable"/>
+                <xs:element minOccurs="0" maxOccurs="1" ref="elementValueComparator"/>
+                <xs:element minOccurs="0" maxOccurs="1" ref="sizeOfPolicy"/>
+                <xs:element minOccurs="0" maxOccurs="1" ref="persistence"/>
+            </xs:sequence>
+            <xs:attribute name="diskExpiryThreadIntervalSeconds" type="xs:integer" use="optional"/>
+            <xs:attribute name="diskSpoolBufferSizeMB" type="xs:integer" use="optional"/>
+            <xs:attribute name="diskPersistent" type="xs:boolean" use="optional"/>
+            <xs:attribute name="diskAccessStripes" type="xs:integer" use="optional" default="1"/>
+            <xs:attribute name="eternal" type="xs:boolean" use="optional" default="false"/>
+            <xs:attribute name="maxElementsInMemory" type="xs:nonNegativeInteger" use="optional"/>
+            <xs:attribute name="maxEntriesLocalHeap" type="xs:nonNegativeInteger" use="optional"/>
+            <xs:attribute name="memoryStoreEvictionPolicy" type="xs:string" use="optional"/>
+            <xs:attribute name="clearOnFlush" type="xs:boolean" use="optional"/>
+            <xs:attribute name="name" type="xs:string" use="required"/>
+            <xs:attribute name="overflowToDisk" type="xs:boolean" use="optional"/>
+            <xs:attribute name="timeToIdleSeconds" type="xs:nonNegativeInteger" use="optional"/>
+            <xs:attribute name="timeToLiveSeconds" type="xs:nonNegativeInteger" use="optional"/>
+            <xs:attribute name="maxElementsOnDisk" type="xs:nonNegativeInteger" use="optional"/>
+            <xs:attribute name="maxEntriesLocalDisk" type="xs:nonNegativeInteger" use="optional"/>
+            <xs:attribute name="maxEntriesInCache" type="xs:nonNegativeInteger" use="optional"/>
+            <xs:attribute name="transactionalMode" type="transactionalMode" use="optional" default="off" />
+            <xs:attribute name="statistics" type="xs:boolean" use="optional" default="false"/>
+            <xs:attribute name="copyOnRead" type="xs:boolean" use="optional" default="false"/>
+            <xs:attribute name="copyOnWrite" type="xs:boolean" use="optional" default="false"/>
+            <xs:attribute name="logging" type="xs:boolean" use="optional" default="false"/>
+            <xs:attribute name="cacheLoaderTimeoutMillis" type="xs:integer" use="optional" default="0"/>
+            <xs:attribute name="overflowToOffHeap" type="xs:boolean" use="optional" default="false"/>
+            <xs:attribute name="maxMemoryOffHeap" type="xs:string" use="optional"/>
+            <xs:attribute default="0" name="maxBytesLocalHeap" type="memoryUnitOrPercentage" use="optional"/>
+            <xs:attribute default="0" name="maxBytesLocalOffHeap" type="memoryUnitOrPercentage" use="optional"/>
+            <xs:attribute default="0" name="maxBytesLocalDisk" type="memoryUnitOrPercentage" use="optional"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="cacheEventListenerFactory">
+        <xs:complexType>
+            <xs:attribute name="class" use="required"/>
+            <xs:attribute name="properties" use="optional"/>
+            <xs:attribute name="propertySeparator" use="optional"/>
+            <xs:attribute name="listenFor" use="optional" type="notificationScope" default="all"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="bootstrapCacheLoaderFactory">
+        <xs:complexType>
+            <xs:attribute name="class" use="required"/>
+            <xs:attribute name="properties" use="optional"/>
+            <xs:attribute name="propertySeparator" use="optional"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="cacheExtensionFactory">
+        <xs:complexType>
+            <xs:attribute name="class" use="required"/>
+            <xs:attribute name="properties" use="optional"/>
+            <xs:attribute name="propertySeparator" use="optional"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="cacheExceptionHandlerFactory">
+        <xs:complexType>
+            <xs:attribute name="class" use="required"/>
+            <xs:attribute name="properties" use="optional"/>
+            <xs:attribute name="propertySeparator" use="optional"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="cacheLoaderFactory">
+        <xs:complexType>
+            <xs:attribute name="class" use="required"/>
+            <xs:attribute name="properties" use="optional"/>
+            <xs:attribute name="propertySeparator" use="optional"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="cacheDecoratorFactory">
+        <xs:complexType>
+            <xs:attribute name="class" use="required"/>
+            <xs:attribute name="properties" use="optional"/>
+            <xs:attribute name="propertySeparator" use="optional"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="searchAttribute">
+        <xs:complexType>
+        	<xs:attribute name="name" use="required" type="xs:string" />
+        	<xs:attribute name="expression" type="xs:string" />
+        	<xs:attribute name="class" type="xs:string" />
+        	<xs:attribute name="type" type="xs:string" use="optional"/>
+        	<xs:attribute name="properties" use="optional" />
+        	<xs:attribute name="propertySeparator" use="optional" />
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="searchable">
+      <xs:complexType>
+        <xs:sequence>
+          <xs:element minOccurs="0" maxOccurs="unbounded" ref="searchAttribute"/>
+        </xs:sequence>
+        <xs:attribute name="keys" use="optional" type="xs:boolean" default="true"/>
+        <xs:attribute name="values" use="optional" type="xs:boolean" default="true"/>
+      </xs:complexType>
+    </xs:element>
+
+    <xs:element name="pinning">
+        <xs:complexType>
+            <xs:attribute name="store" use="required" type="pinningStoreType"/>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="terracotta">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element minOccurs="0" maxOccurs="1" ref="nonstop"/>
+            </xs:sequence>
+            <xs:attribute name="clustered" use="optional" type="xs:boolean" default="true"/>
+            <xs:attribute name="coherentReads" use="optional" type="xs:boolean" default="true"/>
+            <xs:attribute name="localKeyCache" use="optional" type="xs:boolean" default="false"/>
+            <xs:attribute name="localKeyCacheSize" use="optional" type="xs:positiveInteger" default="300000"/>
+            <xs:attribute name="orphanEviction" use="optional" type="xs:boolean" default="true"/>
+            <xs:attribute name="orphanEvictionPeriod" use="optional" type="xs:positiveInteger" default="4"/>
+            <xs:attribute name="copyOnRead" use="optional" type="xs:boolean" default="false"/>
+            <xs:attribute name="coherent" use="optional" type="xs:boolean" default="false"/>
+            <xs:attribute name="consistency" use="optional" type="consistencyType" default="eventual"/>
+            <xs:attribute name="synchronousWrites" use="optional" type="xs:boolean" default="false"/>
+            <xs:attribute name="concurrency" use="optional" type="xs:nonNegativeInteger" default="0"/>
+            <xs:attribute name="localCacheEnabled" use="optional" type="xs:boolean" default="true"/>
+            <xs:attribute name="compressionEnabled" use="optional" type="xs:boolean" default="false"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:simpleType name="consistencyType">
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="strong" />
+            <xs:enumeration value="eventual" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:element name="nonstop">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element minOccurs="0" maxOccurs="1" ref="timeoutBehavior"/>
+            </xs:sequence>
+            <xs:attribute name="enabled" use="optional" type="xs:boolean" default="true"/>
+            <xs:attribute name="immediateTimeout" use="optional" type="xs:boolean" default="false"/>
+            <xs:attribute name="timeoutMillis" use="optional" type="xs:positiveInteger" default="30000"/>
+            <xs:attribute name="searchTimeoutMillis" use="optional" type="xs:positiveInteger" default="30000"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="timeoutBehavior">
+        <xs:complexType>
+            <xs:attribute name="type" use="optional" type="timeoutBehaviorType" default="exception"/>
+            <xs:attribute name="properties" use="optional" default=""/>
+            <xs:attribute name="propertySeparator" use="optional" default=","/>
+        </xs:complexType>
+    </xs:element>
+    <xs:simpleType name="timeoutBehaviorType">
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="noop" />
+            <xs:enumeration value="exception" />
+            <xs:enumeration value="localReads" />
+            <xs:enumeration value="localReadsAndExceptionOnWrite" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="monitoringType">
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="autodetect"/>
+            <xs:enumeration value="on"/>
+            <xs:enumeration value="off"/>
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="pinningStoreType">
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="localMemory" />
+            <xs:enumeration value="inCache" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="terracottaCacheValueType">
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="serialization" />
+            <xs:enumeration value="identity" />
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="transactionalMode">
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="off"/>
+            <xs:enumeration value="xa_strict"/>
+            <xs:enumeration value="xa"/>
+            <xs:enumeration value="local"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:element name="cacheWriter">
+        <xs:complexType>
+            <xs:sequence >
+                <xs:element minOccurs="0" maxOccurs="1" ref="cacheWriterFactory"/>
+            </xs:sequence>
+            <xs:attribute name="writeMode" use="optional" type="writeModeType" default="write-through"/>
+            <xs:attribute name="notifyListenersOnException" use="optional" type="xs:boolean" default="false"/>
+            <xs:attribute name="minWriteDelay" use="optional" type="xs:nonNegativeInteger" default="1"/>
+            <xs:attribute name="maxWriteDelay" use="optional" type="xs:nonNegativeInteger" default="1"/>
+            <xs:attribute name="rateLimitPerSecond" use="optional" type="xs:nonNegativeInteger" default="0"/>
+            <xs:attribute name="writeCoalescing" use="optional" type="xs:boolean" default="false"/>
+            <xs:attribute name="writeBatching" use="optional" type="xs:boolean" default="false"/>
+            <xs:attribute name="writeBatchSize" use="optional" type="xs:positiveInteger" default="1"/>
+            <xs:attribute name="retryAttempts" use="optional" type="xs:nonNegativeInteger" default="0"/>
+            <xs:attribute name="retryAttemptDelaySeconds" use="optional" type="xs:nonNegativeInteger" default="1"/>
+            <xs:attribute name="writeBehindConcurrency" use="optional" type="xs:nonNegativeInteger" default="1"/>
+            <xs:attribute name="writeBehindMaxQueueSize" use="optional" type="xs:nonNegativeInteger" default="0"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:simpleType name="writeModeType">
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="write-through" />
+            <xs:enumeration value="write-behind" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:element name="cacheWriterFactory">
+        <xs:complexType>
+            <xs:attribute name="class" use="required"/>
+            <xs:attribute name="properties" use="optional"/>
+            <xs:attribute name="propertySeparator" use="optional"/>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="copyStrategy">
+        <xs:complexType>
+            <xs:attribute name="class" use="required" type="xs:string" />
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="elementValueComparator">
+        <xs:complexType>
+            <xs:attribute name="class" use="required" type="xs:string" />
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="sizeOfPolicy">
+        <xs:complexType>
+            <xs:attribute name="maxDepth" use="required" type="xs:integer" />
+            <xs:attribute name="maxDepthExceededBehavior" use="optional" default="continue" type="maxDepthExceededBehavior" />
+        </xs:complexType>
+    </xs:element>
+
+	<xs:element name="persistence">
+	    <xs:complexType>
+            <xs:attribute name="strategy" use="required" type="persistenceStrategy"/>
+            <xs:attribute name="synchronousWrites" use="optional" default="false" type="xs:boolean"/>
+	    </xs:complexType>
+	</xs:element>
+	
+	<xs:simpleType name="persistenceStrategy">
+	    <xs:restriction base="xs:string">
+	        <xs:enumeration value="localTempSwap"/>
+	        <xs:enumeration value="localRestartable"/>
+	        <xs:enumeration value="none"/>
+	        <xs:enumeration value="distributed"/>
+	    </xs:restriction>
+	</xs:simpleType>
+	
+    <xs:simpleType name="maxDepthExceededBehavior">
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="continue"/>
+            <xs:enumeration value="abort"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="notificationScope">
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="local"/>
+            <xs:enumeration value="remote"/>
+            <xs:enumeration value="all"/>
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="memoryUnit">
+        <xs:restriction base="xs:token">
+            <xs:pattern value="[0-9]+[bBkKmMgG]?"/>
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="memoryUnitOrPercentage">
+        <xs:restriction base="xs:token">
+            <xs:pattern value="([0-9]+[bBkKmMgG]?|100%|[0-9]{1,2}%)"/>
+        </xs:restriction>
+    </xs:simpleType>
+</xs:schema>

+ 29 - 0
gkaq/gis-java/trunk/src/main/resources/generatorConfig.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
+<generatorConfiguration>
+    <context id="MysqlTables" targetRuntime="MyBatis3Simple">
+        <commentGenerator>
+            <property name="suppressAllComments" value="true" />
+        </commentGenerator>
+        <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@192.168.57.83:1521:orcl" userId="hbaq" password="hbaq">
+        </jdbcConnection>
+        <javaTypeResolver>
+            <property name="forceBigDecimals" value="false" />
+        </javaTypeResolver>
+        <javaModelGenerator targetPackage="com.xt.hb.gis.model" targetProject="src/main/java">
+            <property name="enableSubPackages" value="true" />
+            <property name="trimStrings" value="true" />
+        </javaModelGenerator>
+        <sqlMapGenerator targetPackage="com.xt.hb.gis.mappers" targetProject="src/main/resources">
+            <property name="enableSubPackages" value="true" />
+        </sqlMapGenerator>
+        <javaClientGenerator type="XMLMAPPER" targetPackage="com.xt.hb.gis.mappers" targetProject="src/main/java">
+            <property name="enableSubPackages" value="true" />
+            <!-- <property name="rootInterface" value="com.yuanxd.trust.server.mappers.BaseMapper"/> -->
+        </javaClientGenerator>
+        <!-- 
+        <table tableName="T_GIS_CBYJ" domainObjectName="Cbyj"></table>
+        <table tableName="T_MAP_SERVICE_CONFIG" domainObjectName="MapConfig"></table>
+         -->
+        <table tableName="T_SYS_PARAM" domainObjectName="SysParam"></table> 
+    </context>
+</generatorConfiguration>

+ 166 - 0
gkaq/gis-java/trunk/src/main/resources/log/log4j.dtd

@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!-- Authors: Chris Taylor, Ceki Gulcu. -->
+
+<!-- Version: 1.2 -->
+
+<!-- A configuration element consists of optional renderer
+elements,appender elements, categories and an optional root
+element. -->
+
+<!ELEMENT log4j:configuration (renderer*, appender*,(category|logger)*,root?,
+                               categoryFactory?)>
+
+<!-- The "threshold" attribute takes a level value such that all -->
+<!-- logging statements with a level equal or below this value are -->
+<!-- disabled. -->
+
+<!-- Setting the "debug" enable the printing of internal log4j logging   -->
+<!-- statements.                                                         -->
+
+<!-- By default, debug attribute is "null", meaning that we not do touch -->
+<!-- internal log4j logging settings. The "null" value for the threshold -->
+<!-- attribute can be misleading. The threshold field of a repository	 -->
+<!-- cannot be set to null. The "null" value for the threshold attribute -->
+<!-- simply means don't touch the threshold field, the threshold field   --> 
+<!-- keeps its old value.                                                -->
+     
+<!ATTLIST log4j:configuration
+  xmlns:log4j              CDATA #FIXED "http://jakarta.apache.org/log4j/" 
+  threshold                (all|debug|info|warn|error|fatal|off|null) "null"
+  debug                    (true|false|null)  "null"
+>
+
+<!-- renderer elements allow the user to customize the conversion of  -->
+<!-- message objects to String.                                       -->
+
+<!ELEMENT renderer EMPTY>
+<!ATTLIST renderer
+  renderedClass  CDATA #REQUIRED
+  renderingClass CDATA #REQUIRED
+>
+
+<!-- Appenders must have a name and a class. -->
+<!-- Appenders may contain an error handler, a layout, optional parameters -->
+<!-- and filters. They may also reference (or include) other appenders. -->
+<!ELEMENT appender (errorHandler?, param*, layout?, filter*, appender-ref*)>
+<!ATTLIST appender
+  name 		ID 	#REQUIRED
+  class 	CDATA	#REQUIRED
+>
+
+<!ELEMENT layout (param*)>
+<!ATTLIST layout
+  class		CDATA	#REQUIRED
+>
+
+<!ELEMENT filter (param*)>
+<!ATTLIST filter
+  class		CDATA	#REQUIRED
+>
+
+<!-- ErrorHandlers can be of any class. They can admit any number of -->
+<!-- parameters. -->
+
+<!ELEMENT errorHandler (param*, root-ref?, logger-ref*,  appender-ref?)> 
+<!ATTLIST errorHandler
+   class        CDATA   #REQUIRED 
+>
+
+<!ELEMENT root-ref EMPTY>
+
+<!ELEMENT logger-ref EMPTY>
+<!ATTLIST logger-ref
+  ref IDREF #REQUIRED
+>
+
+<!ELEMENT param EMPTY>
+<!ATTLIST param
+  name		CDATA   #REQUIRED
+  value		CDATA	#REQUIRED
+>
+
+
+<!-- The priority class is org.apache.log4j.Level by default -->
+<!ELEMENT priority (param*)>
+<!ATTLIST priority
+  class   CDATA	#IMPLIED
+  value	  CDATA #REQUIRED
+>
+
+<!-- The level class is org.apache.log4j.Level by default -->
+<!ELEMENT level (param*)>
+<!ATTLIST level
+  class   CDATA	#IMPLIED
+  value	  CDATA #REQUIRED
+>
+
+
+<!-- If no level element is specified, then the configurator MUST not -->
+<!-- touch the level of the named category. -->
+<!ELEMENT category (param*,(priority|level)?,appender-ref*)>
+<!ATTLIST category
+  class         CDATA   #IMPLIED
+  name		CDATA	#REQUIRED
+  additivity	(true|false) "true"  
+>
+
+<!-- If no level element is specified, then the configurator MUST not -->
+<!-- touch the level of the named logger. -->
+<!ELEMENT logger (level?,appender-ref*)>
+<!ATTLIST logger
+  name		ID	#REQUIRED
+  additivity	(true|false) "true"  
+>
+
+
+<!ELEMENT categoryFactory (param*)>
+<!ATTLIST categoryFactory 
+   class        CDATA #REQUIRED>
+
+<!ELEMENT appender-ref EMPTY>
+<!ATTLIST appender-ref
+  ref IDREF #REQUIRED
+>
+
+<!-- If no priority element is specified, then the configurator MUST not -->
+<!-- touch the priority of root. -->
+<!-- The root category always exists and cannot be subclassed. -->
+<!ELEMENT root (param*, (priority|level)?, appender-ref*)>
+
+
+<!-- ==================================================================== -->
+<!--                       A logging event                                -->
+<!-- ==================================================================== -->
+<!ELEMENT log4j:eventSet (log4j:event*)>
+<!ATTLIST log4j:eventSet
+  xmlns:log4j             CDATA #FIXED "http://jakarta.apache.org/log4j/" 
+  version                (1.1|1.2) "1.2" 
+  includesLocationInfo   (true|false) "true"
+>
+
+
+
+<!ELEMENT log4j:event (log4j:message, log4j:NDC?, log4j:throwable?, 
+                       log4j:locationInfo?) >
+
+<!-- The timestamp format is application dependent. -->
+<!ATTLIST log4j:event
+    logger     CDATA #REQUIRED
+    level      CDATA #REQUIRED
+    thread     CDATA #REQUIRED
+    timestamp  CDATA #REQUIRED
+>
+
+<!ELEMENT log4j:message (#PCDATA)>
+<!ELEMENT log4j:NDC (#PCDATA)>
+
+<!ELEMENT log4j:throwable (#PCDATA)>
+
+<!ELEMENT log4j:locationInfo EMPTY>
+<!ATTLIST log4j:locationInfo
+  class  CDATA	#REQUIRED
+  method CDATA	#REQUIRED
+  file   CDATA	#REQUIRED
+  line   CDATA	#REQUIRED
+>

+ 138 - 0
gkaq/gis-java/trunk/src/main/resources/log/log4j.xml

@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?> 
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
+
+	<!-- org.apache.log4j.ConsoleAppender (输出到控制台) -->
+	<!-- org.apache.log4j.FileAppender (输出到文件) -->
+	<!-- org.apache.log4j.DailyRollingFileAppender (每天输出产生一个日志文件) -->
+	<!-- org.apache.log4j.RollingFileAppender (文件大小到达指定尺寸的时候产生一个新的文件), 可通过 log4j.appender.R.MaxFileSize=100KB 
+		设置文件大小, 还可通过 log4j.appender.R.MaxBackupIndex=1设置为保存一个备份文件。 -->
+	<!-- org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方) -->
+
+	<!--输出通道"STDOUT",输出所有信息到控制台 (也就是System.out.println()) -->
+	<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
+		<!-- 输出自定义内容的LOG -->
+		<layout class="org.apache.log4j.PatternLayout">
+			<!-- 输出时Log内容的具体定义 -->
+			<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss,SSS}][%c] %-5p %m%n" />
+		</layout>
+	</appender>
+
+	<!--输出通道"DEBUG",输出方式是:只输出DEBUG级别的LOG,并文件大小到达指定大小时产 生新的Log文件 -->
+	<appender name="DEBUG" class="org.apache.log4j.RollingFileAppender">
+		<!-- 输出Log文件的路径和文件名 -->
+		<param name="File" value="${app.root}/logs/app_debug.log" />
+
+		<!-- TOMCAT等WEB服务器重新启动时,是否插入到原有的LOG文件里,true 插入false 新 建 -->
+		<param name="Append" value="true" />
+
+		<!-- 只输出定义的级别以上的LOG,因为在下面过滤LOG信息所以屏蔽 -->
+		<!-- param name="Threshold" value="info"/ -->
+
+		<!-- 因选择了RollingFileAppender了才有下面两个 MaxFileSize,MaxBackupIndex 选项 -->
+		<!-- MaxFileSize是一个LOG文件的最大的文件大小,当LOG文件超过这个值时,自动转成 *.log.1的LOG文件 -->
+		<param name="MaxFileSize" value="5000KB" />
+
+		<!-- MaxBackupIndex生成自动转成 *.log.1的LOG文件的个数,设置3时最多生成3个LOG 备份文件,它们是[*.log.1][*.log.2][*.log.3] -->
+		<param name="MaxBackupIndex" value="3" />
+
+		<!-- 输出时Log内容的具体定义 -->
+		<layout class="org.apache.log4j.PatternLayout">
+			<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss,SSS}][%-20c{1}] %-5p %m%n" />
+		</layout>
+
+		<!-- 过滤输出时Log内容,在这里,LevelMin,LevelMax都定义了DEBUG, 所以只输出DEBUG 级别LOG的数据 -->
+		<filter class="org.apache.log4j.varia.LevelRangeFilter">
+			<param name="LevelMin" value="DEBUG" />
+			<param name="LevelMax" value="DEBUG" />
+		</filter>
+	</appender>
+
+	<!-- 输出通道"INFO",输出方式是:只输出INFO级别的LOG,并文件大小到达指定大小时产生 新的Log文件 -->
+	<appender name="INFO" class="org.apache.log4j.RollingFileAppender">
+		<param name="File" value="${app.root}/logs/app_info.log" />
+		<param name="Append" value="true" />
+		<param name="MaxFileSize" value="5000KB" />
+		<param name="MaxBackupIndex" value="3" />
+		<layout class="org.apache.log4j.PatternLayout">
+			<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss,SSS}][%-20c{1}] %-5p %m%n" />
+		</layout>
+		<filter class="org.apache.log4j.varia.LevelRangeFilter">
+			<param name="LevelMin" value="INFO" />
+			<param name="LevelMax" value="INFO" />
+		</filter>
+	</appender>
+
+	<!-- 输出通道"WARN",输出方式是:只输出WARN级别的LOG,并文件大小到达指定大小时产 生新的Log文件 -->
+	<appender name="WARN" class="org.apache.log4j.RollingFileAppender">
+		<param name="File" value="${app.root}/logs/app_warn.log" />
+		<param name="Append" value="true" />
+		<param name="MaxFileSize" value="5000KB" />
+		<param name="MaxBackupIndex" value="3" />
+		<layout class="org.apache.log4j.PatternLayout">
+			<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss,SSS}][%-20c{1}] %-5p %m%n" />
+		</layout>
+		<filter class="org.apache.log4j.varia.LevelRangeFilter">
+			<param name="LevelMin" value="WARN" />
+			<param name="LevelMax" value="WARN" />
+		</filter>
+	</appender>
+
+	<!-- 输出通道"ERROR",输出方式是:只输出ERROR级别的LOG,并文件大小到达指定大小时 产生新的Log文件 -->
+	<appender name="ERROR" class="org.apache.log4j.RollingFileAppender">
+		<param name="File" value="${app.root}/logs/app_error.log" />
+		<param name="Append" value="true" />
+		<param name="MaxFileSize" value="5000KB" />
+		<param name="MaxBackupIndex" value="3" />
+		<layout class="org.apache.log4j.PatternLayout">
+			<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss,SSS}][%-20c{1}] %-5p %m%n" />
+		</layout>
+		<filter class="org.apache.log4j.varia.LevelRangeFilter">
+			<param name="LevelMin" value="ERROR" />
+			<param name="LevelMax" value="ERROR" />
+		</filter>
+	</appender>
+
+	<!-- 输出通道"FATAL",输出方式是:只输出INFO级别的LOG,并文件大小到达指定大小时产生 新的Log文件 -->
+	<appender name="FATAL" class="org.apache.log4j.RollingFileAppender">
+		<param name="File" value="${app.root}/logs/app_fatal.log" />
+		<param name="Append" value="true" />
+		<param name="MaxFileSize" value="5000KB" />
+		<param name="MaxBackupIndex" value="3" />
+		<layout class="org.apache.log4j.PatternLayout">
+			<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss,SSS}][%-20c{1}] %-5p %m%n" />
+		</layout>
+		<filter class="org.apache.log4j.varia.LevelRangeFilter">
+			<param name="LevelMin" value="FATAL" />
+			<param name="LevelMax" value="FATAL" />
+		</filter>
+	</appender>
+
+	<!-- 输出通道"EVERYDAY",输出方式是:输出所有级别的LOG,并每天一个日志文件 -->
+	<appender name="EVERYDAY" class="org.apache.log4j.DailyRollingFileAppender">
+		<param name="File" value="${app.root}/logs/app_everyday/everyday.log" />
+		<param name="Append" value="true" />
+		<!-- 以日为单位输出LOG文件,每日输出一个LOG文件 -->
+		<param name="DatePattern" value="'.'yyyy-MM-dd" />
+		<layout class="org.apache.log4j.PatternLayout">
+			<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss,SSS}][%-20c{1}] %-5p %m%n" />
+		</layout>
+		<!-- 过滤输出时Log内容,在这里,LevelMin是DEBUG,LevelMax都FATAL, 所以输出DEBUG 级别到FATAL级别的LOG数据 -->
+		<filter class="org.apache.log4j.varia.LevelRangeFilter">
+			<param name="LevelMin" value="ERROR" />
+			<param name="LevelMax" value="FATAL" />
+		</filter>
+	</appender>
+	<root>
+		<!-- 设置输出范围,默认只输出ERROR以上的,ERROR级别, FATAL级别的LOG -->
+		<priority value="INFO" />
+		<!-- 上边设置的输出通道,使用的在这里定义 -->
+		<appender-ref ref="STDOUT" />
+		<appender-ref ref="DEBUG" />
+		<appender-ref ref="INFO" />
+		<appender-ref ref="WARN" />
+		<appender-ref ref="ERROR" />
+		<appender-ref ref="FATAL" />
+		<appender-ref ref="EVERYDAY" />
+	</root>
+</log4j:configuration>

+ 42 - 0
gkaq/gis-java/trunk/src/main/resources/mvc.xml

@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
+	xmlns:mvc="http://www.springframework.org/schema/mvc"
+	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
+        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
+
+	<!-- 自动扫描且只扫描@Controller -->
+	<context:component-scan base-package="com.xt.hb.ctl"
+		use-default-filters="false">
+		<context:include-filter type="annotation"
+			expression="org.springframework.stereotype.Controller" />
+	</context:component-scan>
+
+	<mvc:annotation-driven>
+		<mvc:message-converters>
+			<!-- 避免IE执行AJAX时,返回JSON出现下载文件 -->
+			<bean id="mappingJacksonHttpMessageConverter"
+				class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
+				<property name="supportedMediaTypes">
+					<list>
+						<value>text/html;charset=UTF-8</value>
+					</list>
+				</property>
+			</bean>
+		</mvc:message-converters>
+	</mvc:annotation-driven>
+
+	<mvc:view-controller path="/" view-name="redirect:/main" />
+
+	<mvc:resources mapping="/favicon.ico" location="/favicon.ico" />
+	<mvc:resources mapping="/static/**" location="/static/" />
+
+	<mvc:default-servlet-handler />
+
+	<bean
+		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
+		<property name="prefix" value="" />
+		<property name="suffix" value=".html" />
+	</bean>
+</beans>

+ 4 - 0
gkaq/gis-java/trunk/src/main/resources/spring/application.properties

@@ -0,0 +1,4 @@
+jms.brokerURL=tcp://192.168.57.74:61616
+jms.userName=admin
+jms.password=admin
+jms.messageTopic=cbyjTopic

+ 26 - 0
gkaq/gis-java/trunk/src/main/resources/spring/dataSource.properties

@@ -0,0 +1,26 @@
+#################### mysql ##################
+#druid.url=jdbc:mysql://localhost:3306/trust?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
+#druid.username=root
+#druid.password=mysql
+#################### h2 ######################
+#druid.url=jdbc:h2:~/xtoa;AUTO_SERVER=TRUE
+#druid.username=sa
+#druid.password=
+#################### oracle ######################
+druid.url=jdbc:oracle:thin:@172.18.40.3:1521:orcl
+druid.username=hbaq
+druid.password=hbaq
+druid.#druid datasource
+druid.initialSize=10
+druid.minIdle=10
+druid.maxActive=50
+druid.maxWait=60000
+druid.timeBetweenEvictionRunsMillis=60000
+druid.minEvictableIdleTimeMillis=300000
+druid.validationQuery=SELECT 1 from dual
+druid.testWhileIdle=true
+druid.testOnBorrow=false
+druid.testOnReturn=false
+druid.poolPreparedStatements=true
+druid.maxPoolPreparedStatementPerConnectionSize=20
+druid.filters=wall,stat,config

+ 34 - 0
gkaq/gis-java/trunk/src/main/resources/spring/spring-mvc.xml

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
+	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop"
+	xmlns:flex="http://www.springframework.org/schema/flex"
+	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
+		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
+		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+		http://www.springframework.org/schema/flex http://www.springframework.org/schema/flex/spring-flex-1.5.xsd">
+	<!-- 消息拦截器 -->
+	<bean id="flexMessageInterceptor" class="com.xt.hb.gis.system.FlexMessageInterceptor" />
+	<!-- 异常转换器 -->
+	<bean id="flexExceptionTranslator" class="com.xt.hb.gis.system.FlexExceptionTranslator" />
+	<flex:message-broker>
+		<flex:message-interceptor ref="flexMessageInterceptor" />
+		<flex:exception-translator ref="flexExceptionTranslator" />
+	</flex:message-broker>
+	<!-- 自动扫描且只扫描@Controller -->
+	<context:component-scan base-package="com.xt.hb"
+		use-default-filters="false">
+		<context:include-filter type="annotation"
+			expression="org.springframework.stereotype.Controller" />
+	</context:component-scan>
+	<mvc:annotation-driven />
+	<mvc:resources mapping="/flexs/**" location="/flexs/" />
+	<mvc:resources mapping="/flexResources/**" location="/flexs/flexResources/" />
+	<mvc:resources mapping="/favicon.ico" location="/favicon.ico" />
+	<mvc:resources mapping="/static/**" location="/static/" />
+	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
+		<property name="prefix" value="flexs/" />
+		<property name="suffix" value=".html" />
+	</bean>
+</beans>

+ 48 - 0
gkaq/gis-java/trunk/src/main/resources/spring/spring-mybatis.xml

@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jee="http://www.springframework.org/schema/jee"
+	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
+	xmlns:jpa="http://www.springframework.org/schema/data/jpa" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
+	xmlns:util="http://www.springframework.org/schema/util"
+	xmlns:repository="http://www.springframework.org/schema/data/repository"
+	xmlns:mvc="http://www.springframework.org/schema/mvc"
+	xsi:schemaLocation="
+        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
+        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
+        http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd
+        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
+        http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd
+        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd
+        http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
+        http://www.springframework.org/schema/data/repository http://www.springframework.org/schema/data/repository/spring-repository.xsd"
+	default-lazy-init="true">
+
+	<description>mybatis配置 </description>
+	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
+		<property name="dataSource" ref="dataSource" />
+		<property name="mapperLocations"
+			value="classpath:com/xt/hb/gis/mappers/*.xml" />
+		<!-- 配置Mybatis的插件plugin -->
+		<property name="plugins">
+			<array>
+				<bean class="com.yuanxd.tools.pagehelper.PageHelper">
+					<property name="properties">
+						<value>
+							dialect=mysql
+						</value>
+					</property>
+				</bean>
+			</array>
+		</property>
+	</bean>
+	<!-- 配置扫描器 -->
+	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
+		<!-- 扫描me.gacl.dao这个包以及它的子包下的所有映射接口类 -->
+		<property name="basePackage" value="com.xt.hb.gis.*.mappers" />
+		<!-- <property name="annotationClass" value="com.yuanxd.trust.server.annotations.MybatisMapper" 
+			/> -->
+		<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
+	</bean>
+</beans>
+

+ 88 - 0
gkaq/gis-java/trunk/src/main/resources/spring/spring-rest.xml

@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jee="http://www.springframework.org/schema/jee"
+	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
+	xmlns:jpa="http://www.springframework.org/schema/data/jpa" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
+	xmlns:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p"
+	xmlns:repository="http://www.springframework.org/schema/data/repository"
+	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop"
+	xsi:schemaLocation="
+        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
+        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
+        http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd
+        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
+        http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd
+        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd
+        http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
+        http://www.springframework.org/schema/data/repository http://www.springframework.org/schema/data/repository/spring-repository.xsd
+        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"
+	default-lazy-init="true">
+
+	<description>Spring REST访问配置 </description>
+	<!--使用httpclient的实现,带连接池 -->
+	<bean id="ky.pollingConnectionManager" class="org.apache.http.impl.conn.PoolingHttpClientConnectionManager">
+		<!--整个连接池的并发 -->
+		<property name="maxTotal" value="1000" />
+		<!--每个主机的并发 -->
+		<property name="defaultMaxPerRoute" value="1000" />
+	</bean>
+	<bean id="ky.httpClientBuilder" class="org.apache.http.impl.client.HttpClientBuilder" factory-method="create">
+		<property name="connectionManager" ref="ky.pollingConnectionManager" />
+		<!--开启重试 -->
+		<property name="retryHandler">
+			<bean class="org.apache.http.impl.client.DefaultHttpRequestRetryHandler">
+				<constructor-arg value="2" />
+				<constructor-arg value="true" />
+			</bean>
+		</property>
+		<property name="defaultHeaders">
+			<list>
+				<bean class="org.apache.http.message.BasicHeader">
+					<constructor-arg value="User-Agent" />
+					<constructor-arg value="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.16 Safari/537.36" />
+				</bean>
+				<bean class="org.apache.http.message.BasicHeader">
+					<constructor-arg value="Accept-Encoding" />
+					<constructor-arg value="gzip,deflate" />
+				</bean>
+				<bean class="org.apache.http.message.BasicHeader">
+					<constructor-arg value="Accept-Language" />
+					<constructor-arg value="zh-CN" />
+				</bean>
+			</list>
+		</property>
+	</bean>
+
+	<bean id="ky.httpClient" factory-bean="ky.httpClientBuilder" factory-method="build" />
+
+	<bean id="ky.clientHttpRequestFactory" class="org.springframework.http.client.HttpComponentsClientHttpRequestFactory">
+		<constructor-arg ref="ky.httpClient" />
+		<!--连接超时时间,毫秒 -->
+		<property name="connectTimeout" value="5000" />
+		<!--读写超时时间,毫秒 -->
+		<property name="readTimeout" value="10000" />
+	</bean>
+
+	<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
+		<constructor-arg ref="ky.clientHttpRequestFactory" />
+		<property name="errorHandler">
+			<bean class="org.springframework.web.client.DefaultResponseErrorHandler" />
+		</property>
+		<property name="messageConverters">
+			<list>
+				<bean class="org.springframework.http.converter.FormHttpMessageConverter" />
+				<bean class="org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter" />
+				<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
+				<bean class="org.springframework.http.converter.StringHttpMessageConverter">
+					<property name="supportedMediaTypes">
+						<list>
+							<value>text/plain;charset=UTF-8</value>
+						</list>
+					</property>
+				</bean>
+			</list>
+		</property>
+	</bean>
+</beans>
+

+ 68 - 0
gkaq/gis-java/trunk/src/main/resources/spring/spring.xml

@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jee="http://www.springframework.org/schema/jee"
+	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
+	xmlns:jpa="http://www.springframework.org/schema/data/jpa" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
+	xmlns:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p"
+	xmlns:repository="http://www.springframework.org/schema/data/repository"
+	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop"
+	xsi:schemaLocation="
+        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
+        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
+        http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd
+        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
+        http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd
+        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd
+        http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
+        http://www.springframework.org/schema/data/repository http://www.springframework.org/schema/data/repository/spring-repository.xsd
+        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"
+	default-lazy-init="true">
+
+	<description>Spring公共配置 </description>
+	<context:property-placeholder
+		ignore-resource-not-found="true" location="classpath*:spring/application.properties" />
+	<!-- 使用annotation 自动注册bean, 并保证@Required、@Autowired的属性被注入. @Controller的Bean注入在spring-mvc.xml中自动注册 -->
+	<context:component-scan base-package="com.xt.hb">
+		<context:exclude-filter type="annotation"
+			expression="org.springframework.stereotype.Controller" />
+	</context:component-scan>
+	<bean id="dataSource" class="com.xt.hb.gis.system.DataSourceFactory"
+		init-method="init" destroy-method="close">
+		<property name="properties" value="classpath:/spring/dataSource.properties" />
+		<property name="dsType" value="com.alibaba.druid.pool.DruidDataSource"></property>
+	</bean>
+	<!-- ========================================事务配置========================================= -->
+	<!-- 配置Spring的事务管理器 -->
+	<bean id="transactionManager"
+		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
+		<property name="dataSource" ref="dataSource" />
+	</bean>
+	<aop:aspectj-autoproxy proxy-target-class="true" />
+	<!-- 注解方式配置事务 -->
+	<tx:annotation-driven transaction-manager="transactionManager"
+		mode="proxy" />
+	<!-- ========================================配置druid监控spring jdbc======================================== -->
+	<bean id="druid-stat-interceptor"
+		class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor">
+	</bean>
+	<bean id="druid-stat-pointcut" class="org.springframework.aop.support.JdkRegexpMethodPointcut"
+		scope="prototype">
+		<property name="patterns">
+			<list>
+				<value>com.xt.hb.*</value>
+			</list>
+		</property>
+	</bean>
+	<aop:config>
+		<aop:advisor advice-ref="druid-stat-interceptor"
+			pointcut-ref="druid-stat-pointcut" />
+	</aop:config>
+	<!-- ======================================== 框架配置 ======================================== -->
+	<!-- 框架ID标识生成器 -->
+	<bean id="idGenerator" class="com.xt.hb.gis.util.UUIdGenerator" />
+	<bean id="msaapiService" class="com.yuanxd.tools.hscbdt.HscbdtServiceFactory"
+		factory-method="create" />
+
+</beans>
+

+ 17 - 0
gkaq/gis-java/trunk/src/main/resources/sql/oracle/table_create.sql

@@ -0,0 +1,17 @@
+-- 地图服务配置表
+CREATE TABLE T_MAP_SERVICE_CONFIG(
+ID VARCHAR2(36) NOT NULL ,
+SERVICE_TYPE CHAR(1) NULL ,
+LABEL VARCHAR2(10) NULL ,
+MAP_ID VARCHAR2(20) NULL ,
+MAP_TYPE CHAR(2) NULL ,
+URL VARCHAR2(255) NULL ,
+PRIMARY KEY (ID)
+);
+COMMENT ON TABLE T_MAP_SERVICE_CONFIG IS '��ͼ��������';
+COMMENT ON COLUMN T_MAP_SERVICE_CONFIG.ID IS 'ID';
+COMMENT ON COLUMN T_MAP_SERVICE_CONFIG.SERVICE_TYPE IS '����';
+COMMENT ON COLUMN T_MAP_SERVICE_CONFIG.LABEL IS '��ǩ';
+COMMENT ON COLUMN T_MAP_SERVICE_CONFIG.MAP_ID IS '��ͼID';
+COMMENT ON COLUMN T_MAP_SERVICE_CONFIG.MAP_TYPE IS '\A\B\AB';
+COMMENT ON COLUMN T_MAP_SERVICE_CONFIG.URL IS 'URL';

+ 3 - 0
gkaq/gis-java/trunk/src/main/webapp/.gitignore

@@ -0,0 +1,3 @@
+/logs/
+/views/
+/flexs/

+ 13 - 0
gkaq/gis-java/trunk/src/main/webapp/WEB-INF/flex/remoting-config.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<service id="remoting-service" class="flex.messaging.services.RemotingService">
+
+	<adapters>
+		<adapter-definition id="java-object"
+			class="flex.messaging.services.remoting.adapters.JavaAdapter"
+			default="true" />
+	</adapters>
+
+	<default-channels>
+		<channel ref="my-amf" />
+	</default-channels>
+</service>

+ 67 - 0
gkaq/gis-java/trunk/src/main/webapp/WEB-INF/flex/services-config.xml

@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<services-config>
+	<services>
+		<service-include file-path="remoting-config.xml" />
+		<default-channels>
+			<channel ref="my-amf" />
+		</default-channels>
+	</services>
+	<security>
+		<login-command class="flex.messaging.security.TomcatLoginCommand"
+			server="Tomcat" />
+	</security>
+	<channels>
+		<channel-definition id="my-amf"
+			class="mx.messaging.channels.AMFChannel">
+			<endpoint
+				url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf"
+				class="flex.messaging.endpoints.AMFEndpoint" />
+			<properties>
+				<polling-enabled>false</polling-enabled>
+			</properties>
+		</channel-definition>
+		<channel-definition id="my-secure-amf"
+			class="mx.messaging.channels.SecureAMFChannel">
+			<endpoint
+				url="https://{server.name}:{server.port}/{context.root}/messagebroker/amfsecure"
+				class="flex.messaging.endpoints.SecureAMFEndpoint" />
+			<properties>
+				<add-no-cache-headers>false</add-no-cache-headers>
+			</properties>
+		</channel-definition>
+
+		<channel-definition id="my-polling-amf"
+			class="mx.messaging.channels.AMFChannel">
+			<endpoint
+				url="http://{server.name}:{server.port}/{context.root}/messagebroker/amfpolling"
+				class="flex.messaging.endpoints.AMFEndpoint" />
+			<properties>
+				<polling-enabled>true</polling-enabled>
+				<polling-interval-seconds>4</polling-interval-seconds>
+			</properties>
+		</channel-definition>
+	</channels>
+
+	<logging>
+		<target class="flex.messaging.log.ConsoleTarget" level="Error">
+			<properties>
+				<prefix>[BlazeDS] </prefix>
+				<includeDate>false</includeDate>
+				<includeTime>false</includeTime>
+				<includeLevel>false</includeLevel>
+				<includeCategory>false</includeCategory>
+			</properties>
+			<filters>
+				<pattern>Endpoint.*</pattern>
+				<pattern>Service.*</pattern>
+				<pattern>Configuration</pattern>
+			</filters>
+		</target>
+	</logging>
+
+	<system>
+		<redeploy>
+			<enabled>false</enabled>
+		</redeploy>
+	</system>
+</services-config>

+ 87 - 0
gkaq/gis-java/trunk/src/main/webapp/WEB-INF/web.xml

@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns="http://java.sun.com/xml/ns/javaee"
+	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
+	version="3.0">
+	<context-param>
+		<param-name>contextConfigLocation</param-name>
+		<param-value>
+            classpath*:/spring/spring.xml,
+            classpath*:/spring/spring-mybatis.xml,
+            classpath*:/spring/spring-mq.xml,
+            classpath*:/spring/spring-rest.xml
+        </param-value>
+	</context-param>
+	<context-param>
+		<param-name>log4jConfigLocation</param-name>
+		<param-value>classpath:/log/log4j.xml</param-value>
+	</context-param>
+	<context-param>
+		<param-name>webAppRootKey</param-name>
+		<param-value>app.root</param-value>
+	</context-param>
+	<context-param>
+		<param-name>log4jRefreshInterval</param-name>
+		<param-value>3000</param-value>
+	</context-param>
+	<listener>
+		<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
+	</listener>
+	<listener>
+		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
+	</listener>
+	<filter>
+		<filter-name>DruidWebStatFilter</filter-name>
+		<filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
+		<init-param>
+			<param-name>exclusions</param-name>
+			<param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,*.jsp,/druid/*,/download/*</param-value>
+		</init-param>
+		<init-param>
+			<param-name>sessionStatMaxCount</param-name>
+			<param-value>2000</param-value>
+		</init-param>
+		<init-param>
+			<param-name>sessionStatEnable</param-name>
+			<param-value>true</param-value>
+		</init-param>
+		<init-param>
+			<param-name>principalSessionName</param-name>
+			<param-value>session_user_key</param-value>
+		</init-param>
+		<init-param>
+			<param-name>profileEnable</param-name>
+			<param-value>true</param-value>
+		</init-param>
+	</filter>
+	<filter-mapping>
+		<filter-name>DruidWebStatFilter</filter-name>
+		<url-pattern>/*</url-pattern>
+	</filter-mapping>
+	<filter>
+		<filter-name>LoginFilter</filter-name>
+		<filter-class>com.xt.hb.gis.system.LoginFilter</filter-class>
+	</filter>
+	<filter-mapping>
+		<filter-name>LoginFilter</filter-name>
+		<url-pattern>/*</url-pattern>
+	</filter-mapping>
+	<servlet>
+		<servlet-name>General Servlet</servlet-name>
+		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
+		<init-param>
+			<param-name>contextConfigLocation</param-name>
+			<param-value>classpath*:/spring/spring-mvc.xml</param-value>
+		</init-param>
+		<load-on-startup>0</load-on-startup>
+	</servlet>
+	<servlet-mapping>
+		<servlet-name>General Servlet</servlet-name>
+		<url-pattern>/*</url-pattern>
+	</servlet-mapping>
+	<servlet>
+		<servlet-name>InitServlet</servlet-name>
+		<servlet-class>com.xt.hb.gis.system.InitServlet</servlet-class>
+		<load-on-startup>3</load-on-startup>
+	</servlet>
+</web-app>

+ 108 - 0
gkaq/gis-java/trunk/src/main/webapp/flexs/Main.html

@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!-- saved from url=(0014)about:internet -->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 
+    <!-- 
+    Smart developers always View Source. 
+    
+    This application was built using Adobe Flex, an open source framework
+    for building rich Internet applications that get delivered via the
+    Flash Player or to desktops via Adobe AIR. 
+    
+    Learn more about Flex at http://flex.org 
+    // -->
+    <head>
+        <title></title>
+        <meta name="google" value="notranslate" />         
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <!-- Include CSS to eliminate any default margins/padding and set the height of the html element and 
+             the body element to 100%, because Firefox, or any Gecko based browser, interprets percentage as 
+             the percentage of the height of its parent container, which has to be set explicitly.  Fix for
+             Firefox 3.6 focus border issues.  Initially, don't display flashContent div so it won't show 
+             if JavaScript disabled.
+        -->
+        <style type="text/css" media="screen"> 
+            html, body  { height:100%; }
+            body { margin:0; padding:0; overflow:auto; text-align:center; 
+                   background-color: #ffffff; }   
+            object:focus { outline:none; }
+            #flashContent { display:none; }
+        </style>
+        
+        <!-- Enable Browser History by replacing useBrowserHistory tokens with two hyphens -->
+        <!-- BEGIN Browser History required section -->
+        <link rel="stylesheet" type="text/css" href="flexs/history/history.css" />
+        <script type="text/javascript" src="flexs/history/history.js"></script>
+        <!-- END Browser History required section -->  
+            
+        <script type="text/javascript" src="flexs/swfobject.js"></script>
+        <script type="text/javascript">
+            // For version detection, set to min. required Flash Player version, or 0 (or 0.0.0), for no version detection. 
+            var swfVersionStr = "11.1.0";
+            // To use express install, set to playerProductInstall.swf, otherwise the empty string. 
+            var xiSwfUrlStr = "playerProductInstall.swf";
+            var flashvars = {};
+            var params = {};
+            params.quality = "high";
+            params.bgcolor = "#ffffff";
+            params.allowscriptaccess = "sameDomain";
+            params.allowfullscreen = "true";
+            var attributes = {};
+            attributes.id = "Main";
+            attributes.name = "Main";
+            attributes.align = "middle";
+            swfobject.embedSWF(
+                "flexs/Main.swf", "flashContent", 
+                "100%", "100%", 
+                swfVersionStr, xiSwfUrlStr, 
+                flashvars, params, attributes);
+            // JavaScript enabled so display the flashContent div in case it is not replaced with a swf object.
+            swfobject.createCSS("#flashContent", "display:block;text-align:left;");
+        </script>
+    </head>
+    <body>
+        <!-- SWFObject's dynamic embed method replaces this alternative HTML content with Flash content when enough 
+             JavaScript and Flash plug-in support is available. The div is initially hidden so that it doesn't show
+             when JavaScript is disabled.
+        -->
+        <div id="flashContent">
+            <p>
+                To view this page ensure that Adobe Flash Player version 
+                11.1.0 or greater is installed. 
+            </p>
+            <script type="text/javascript"> 
+                var pageHost = ((document.location.protocol == "https:") ? "https://" : "http://"); 
+                document.write("<a href='http://www.adobe.com/go/getflashplayer'><img src='" 
+                                + pageHost + "www.adobe.com/images/shared/download_buttons/get_flash_player.gif' alt='Get Adobe Flash player' /></a>" ); 
+            </script> 
+        </div>
+        
+        <noscript>
+            <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%" id="Main">
+                <param name="movie" value="Main.swf" />
+                <param name="quality" value="high" />
+                <param name="bgcolor" value="#ffffff" />
+                <param name="allowScriptAccess" value="sameDomain" />
+                <param name="allowFullScreen" value="true" />
+                <!--[if !IE]>-->
+                <object type="application/x-shockwave-flash" data="Main.swf" width="100%" height="100%">
+                    <param name="quality" value="high" />
+                    <param name="bgcolor" value="#ffffff" />
+                    <param name="allowScriptAccess" value="sameDomain" />
+                    <param name="allowFullScreen" value="true" />
+                <!--<![endif]-->
+                <!--[if gte IE 6]>-->
+                    <p> 
+                        Either scripts and active content are not permitted to run or Adobe Flash Player version
+                        11.1.0 or greater is not installed.
+                    </p>
+                <!--<![endif]-->
+                    <a href="http://www.adobe.com/go/getflashplayer">
+                        <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash Player" />
+                    </a>
+                <!--[if !IE]>-->
+                </object>
+                <!--<![endif]-->
+            </object>
+        </noscript>     
+   </body>
+</html>

BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/Main.swf


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/advancedgrids_4.6.0.23201.swf


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/advancedgrids_4.6.0.23201.swz


+ 229 - 0
gkaq/gis-java/trunk/src/main/webapp/flexs/com/xt/hb/cfg/MapConfig.xml

@@ -0,0 +1,229 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Root>
+	<MapServices>   
+		<Service Label="遥感影像" ID="SERVICE_ID_DOM" Type="A" URL="http://${serverName}:${port}/iserver/services/map-STDOM/rest/maps/jshdimage@iServerREST">
+		</Service>
+		<Service Label="矢量底图" ID="SERVICE_ID_SLDT" Type="AB" URL="http://${serverName}:${port}/iserver/services/map-gk/rest/maps/gist">
+		</Service>
+		<Service Label="首页地图" ID="SERVICE_ID_SYDT" Type="AB" URL="http://${serverName}:${port}/iserver/services/map-gk/rest/maps/gist1">
+		</Service>
+		<Service Label="港口资源" ID="SERVICE_ID_GKZY" Type="" URL="http://${serverName}:${port}/iserver/services/map-GKZY/rest/maps/GKZY">
+			<Layer Label="过江通道文字标签" ID="L_ID_JSY_GJTD_A" Name="V0716过江通道" Owner="GKZYData.1" Show="1"/>
+			<Layer Label="高等级航道标签" ID="L_ID_JSY_GHD_A" Name="高等级航道名称" Owner="GKZYData.1"/>
+			
+			<Layer Label="过江通道" ID="L_ID_JSY_GJTD" Name="V0716过江通道" Owner="GKZYData.2" Show="1"/>
+
+			
+			<Layer Label="盐城港高速标签" ID="L_ID_JSY_GSGL_YC_A" Name="V0703高速_YC" Owner="GKZYData.1"/>
+			<Layer Label="盐城港国道标签" ID="L_ID_JSY_GD_YC_A" Name="V0703国道_YC" Owner="GKZYData.1"/>
+			<Layer Label="盐城港省道标签" ID="L_ID_JSY_SD_YC_A" Name="V0703省道_YC" Owner="GKZYData.1"/>
+			<Layer Label="盐城港疏港公路标签" ID="L_ID_JSY_SGGL_YC_A" Name="V0703疏港公路_YC" Owner="GKZYData.1"/>
+			
+			<Layer Label="连云港港高速标签" ID="L_ID_JSY_GSGL_LYG_A" Name="V0703高速_LYG" Owner="GKZYData.1"/>
+			<Layer Label="连云港港国道标签" ID="L_ID_JSY_GD_LYG_A" Name="V0703国道_LYG" Owner="GKZYData.1"/>
+			<Layer Label="连云港港省道标签" ID="L_ID_JSY_SD_LYG_A" Name="V0703省道_LYG" Owner="GKZYData.1"/>
+			<Layer Label="连云港港疏港公路标签" ID="L_ID_JSY_SGGL_LYG_A" Name="V0703疏港公路_LYG" Owner="GKZYData.1"/>
+			
+			<Layer Label="南通港高速标签" ID="L_ID_JSY_GSGL_NT_A" Name="V0703高速_NT" Owner="GKZYData.1"/>
+			<Layer Label="南通港国道标签" ID="L_ID_JSY_GD_NT_A" Name="V0703国道_NT" Owner="GKZYData.1"/>
+			<Layer Label="南通港省道标签" ID="L_ID_JSY_SD_NT_A" Name="V0703省道_NT" Owner="GKZYData.1"/>
+			<Layer Label="南通港疏港公路标签" ID="L_ID_JSY_SGGL_NT_A" Name="V0703疏港公路_NT" Owner="GKZYData.1"/>
+			
+			<Layer Label="苏州港高速标签" ID="L_ID_JSY_GSGL_SZ_A" Name="V0703高速_SZ" Owner="GKZYData.1"/>
+			<Layer Label="苏州港国道标签" ID="L_ID_JSY_GD_SZ_A" Name="V0703国道_SZ" Owner="GKZYData.1"/>
+			<Layer Label="苏州港省道标签" ID="L_ID_JSY_SD_SZ_A" Name="V0703省道_SZ" Owner="GKZYData.1"/>
+			<Layer Label="苏州港疏港公路标签" ID="L_ID_JSY_SGGL_SZ_A" Name="V0703疏港公路_SZ" Owner="GKZYData.1"/>
+			
+			<Layer Label="泰州港高速标签" ID="L_ID_JSY_GSGL_TZ_A" Name="V0703高速_TZ" Owner="GKZYData.1"/>
+			<Layer Label="泰州港省道标签" ID="L_ID_JSY_SD_TZ_A" Name="V0703省道_TZ" Owner="GKZYData.1"/>
+			<Layer Label="泰州港疏港公路标签" ID="L_ID_JSY_SGGL_TZ_A" Name="V0703疏港公路_TZ" Owner="GKZYData.1"/>
+			
+			<Layer Label="扬州港高速标签" ID="L_ID_JSY_GSGL_YZ_A" Name="V0703高速_YZ" Owner="GKZYData.1"/>
+			<Layer Label="扬州港国道标签" ID="L_ID_JSY_GD_YZ_A" Name="V0703国道_YZ" Owner="GKZYData.1"/>
+			<Layer Label="扬州港省道标签" ID="L_ID_JSY_SD_YZ_A" Name="V0703省道_YZ" Owner="GKZYData.1"/>
+			<Layer Label="扬州港疏港公路标签" ID="L_ID_JSY_SGGL_YZ_A" Name="V0703疏港公路_YZ" Owner="GKZYData.1"/>
+			
+			<Layer Label="江阴(无锡)港高速标签" ID="L_ID_JSY_GSGL_JY_A" Name="V0703高速_JY" Owner="GKZYData.1"/>
+			<Layer Label="江阴(无锡)港省道标签" ID="L_ID_JSY_SD_JY_A" Name="V0703省道_JY" Owner="GKZYData.1"/>
+			<Layer Label="江阴(无锡)港疏港公路标签" ID="L_ID_JSY_SGGL_JY_A" Name="V0703疏港公路_JY" Owner="GKZYData.1"/>
+			
+			<Layer Label="常州港高速标签" ID="L_ID_JSY_GSGL_CZ_A" Name="V0703高速_CZ" Owner="GKZYData.1"/>
+			<Layer Label="常州港省道标签" ID="L_ID_JSY_SD_CZ_A" Name="V0703省道_CZ" Owner="GKZYData.1"/>
+			<Layer Label="常州港疏港公路标签" ID="L_ID_JSY_SGGL_CZ_A" Name="V0703疏港公路_CZ" Owner="GKZYData.1"/>
+			
+			<Layer Label="镇江港高速标签" ID="L_ID_JSY_GSGL_ZJ_A" Name="V0703高速_ZJ" Owner="GKZYData.1"/>
+			<Layer Label="镇江港国道标签" ID="L_ID_JSY_GD_ZJ_A" Name="V0703国道_ZJ" Owner="GKZYData.1"/>
+			<Layer Label="镇江港省道标签" ID="L_ID_JSY_SD_ZJ_A" Name="V0703省道_ZJ" Owner="GKZYData.1"/>
+			<Layer Label="镇江港疏港公路标签" ID="L_ID_JSY_SGGL_ZJ_A" Name="V0703疏港公路_ZJ" Owner="GKZYData.1"/>
+			
+			<Layer Label="南京港高速标签" ID="L_ID_JSY_GSGL_NJ_A" Name="V0703高速_NJ" Owner="GKZYData.1"/>
+			<Layer Label="南京港国道标签" ID="L_ID_JSY_GD_NJ_A" Name="V0703国道_NJ" Owner="GKZYData.1"/>
+			<Layer Label="南京港省道标签" ID="L_ID_JSY_SD_NJ_A" Name="V0703省道_NJ" Owner="GKZYData.1"/>
+			<Layer Label="南京港疏港公路标签" ID="L_ID_JSY_SGGL_NJ_A" Name="V0703疏港公路_NJ" Owner="GKZYData.1"/>
+		    
+			
+			<Layer Label="仅标识" ID="ID1" Name="港区文字0626_noNT" Owner="GKZYData.1" Show="1"/>  
+			<Layer Label="仅标识" ID="ID1_1" Name="港区文字0626_NT" Owner="GKZYData.1" Show="1"/> 
+			<Layer Label="仅标识" ID="ID1_0" Name="港区文字_一条线版" Owner="GKZYData.1" />   
+			<Layer Label="仅标识" ID="ID2" Name="作业区文字" Owner="GKZYData.1" Show="1"/>			
+			
+			<Layer Label="南京港规划镂空图层" ID="L_ID_GQGH_NJ_LK" Name="南京规划图" Owner="GKZYData" />  
+			<Layer Label="扬州港规划镂空图层" ID="L_ID_GQGH_YZ_LK" Name="扬州规划图" Owner="GKZYData" /> 
+            <Layer Label="泰州港规划镂空图层" ID="L_ID_GQGH_TZ_LK" Name="泰州规划图" Owner="GKZYData" /> 
+            <Layer Label="江阴港规划镂空图层" ID="L_ID_GQGH_JY_LK" Name="江阴规划图" Owner="GKZYData" /> 
+			<Layer Label="苏州港规划镂空图层" ID="L_ID_GQGH_SZ_LK" Name="苏州规划图" Owner="GKZYData" /> 
+            <Layer Label="镇江港规划镂空图层" ID="L_ID_GQGH_ZJ_LK" Name="镇江规划图" Owner="GKZYData" /> 
+           	<Layer Label="盐城港规划镂空图层" ID="L_ID_GQGH_YC_LK" Name="盐城规划图" Owner="GKZYData" /> 
+           	<Layer Label="连云港规划镂空图层" ID="L_ID_GQGH_LYG_LK" Name="连云港规划图" Owner="GKZYData" /> 
+           	
+			<Layer Label="南京港规划标注" ID="L_ID_GQGH_NJ_A" Name="南京规划图标注" Owner="GKZYData.1" />  
+			<Layer Label="南京港规划" ID="L_ID_GQGH_NJ" Name="南京规划图" Owner="GKZYData.1" /> 
+           	<Layer Label="扬州港规划标注" ID="L_ID_GQGH_YZ_A" Name="扬州规划图标注" Owner="GKZYData.1" /> 
+            <Layer Label="扬州港规划" ID="L_ID_GQGH_YZ" Name="扬州规划图" Owner="GKZYData.1" /> 
+			<Layer Label="泰州港规划标注" ID="L_ID_GQGH_TZ_A" Name="泰州规划图标注" Owner="GKZYData.1" /> 
+            <Layer Label="泰州港规划" ID="L_ID_GQGH_TZ" Name="泰州规划图" Owner="GKZYData.1" /> 
+			<Layer Label="江阴港规划标注" ID="L_ID_GQGH_JY_A" Name="江阴规划图标注" Owner="GKZYData.1" /> 
+            <Layer Label="江阴港规划" ID="L_ID_GQGH_JY" Name="江阴规划图" Owner="GKZYData.1" /> 
+			<Layer Label="苏州港规划标注" ID="L_ID_GQGH_SZ_A" Name="苏州规划图标注" Owner="GKZYData.1" /> 
+            <Layer Label="苏州港规划" ID="L_ID_GQGH_SZ" Name="苏州规划图" Owner="GKZYData.1" /> 
+			<Layer Label="镇江港规划标注" ID="L_ID_GQGH_ZJ_A" Name="镇江规划图标注" Owner="GKZYData.1" /> 
+            <Layer Label="镇江港规划" ID="L_ID_GQGH_ZJ" Name="镇江规划图" Owner="GKZYData.1" /> 
+			<Layer Label="盐城港规划标注" ID="L_ID_GQGH_YC_A" Name="盐城规划图标注" Owner="GKZYData.1" /> 
+            <Layer Label="盐城港规划" ID="L_ID_GQGH_YC" Name="盐城规划图" Owner="GKZYData.1" /> 
+			<Layer Label="连云港港规划标注" ID="L_ID_GQGH_LYG_A" Name="连云港规划图标注" Owner="GKZYData.1" /> 
+            <Layer Label="连云港港规划" ID="L_ID_GQGH_LYG" Name="连云港规划图" Owner="GKZYData.2" /> 
+						
+			<Layer Label="泊位标注" ID="L_ID_BW_1" Name="L_BW_PY" Owner="GKZYData.1" Show="1"/>       
+			<Layer Label="码头标注" ID="L_ID_MT_1" Name="L_MT_PY" Owner="GKZYData.1" />       
+			<Layer Label="港口经营人标注" ID="L_ID_GKJYR_1" Name="L_GKJYR_PY" Owner="GKZYData.1" Show="1"/> 
+			<Layer Label="港口经营人透明标注" ID="L_ID_GKJYR_11" Name="L_GKJYR_PY" Owner="GKZYData.3" />      
+			<Layer Label="锚地现状标注" ID="L_ID_MD_XZ_1" Name="L_MD_XZ_PY" Owner="GKZYData.1" />       
+			<Layer Label="锚地规划标注" ID="L_ID_MD_GH_1" Name="L_MD_GH_PY" Owner="GKZYData.1" />       
+			<Layer Label="港区标注" ID="L_ID_GQ_5" Name="L_GQ_PY" Owner="GKZYData.2" />
+			<Layer Label="摄像头" ID="L_ID_SP" Name="L_SP_PT" Owner="GKZYData"/>    
+			<Layer Label="港口" ID="L_ID_GK_PT" Name="港口_首页图标" Owner="GKZYData"/> 
+			<Layer Label="岸线现状" ID="L_ID_AX_XZ" Name="L_AX_XZ_PL" Owner="GKZYData"/>       
+			<Layer Label="泊位镂空图层" ID="L_ID_BW01" Name="L_BW_PY" Owner="GKZYData.2"/>       
+			<Layer Label="码头前沿镂空图层" ID="L_ID_MT01" Name="L_MT_PY" Owner="GKZYData.2"/>       
+			<Layer Label="锚地现状镂空图层" ID="L_ID_MD_XZ01" Name="L_MD_XZ_PY" Owner="GKZYData.2" />       
+			<Layer Label="锚地规划镂空图层" ID="L_ID_MD_GH01" Name="L_MD_GH_PY" Owner="GKZYData.2"/>     
+			<Layer Label="泊位" ID="L_ID_BW" Name="L_BW_PY" Owner="GKZYData" Show="1"/>       
+			<Layer Label="码头前沿" ID="L_ID_MT" Name="L_MT_PY" Owner="GKZYData" Show="1"/>       
+			<Layer Label="锚地现状" ID="L_ID_MD_XZ" Name="L_MD_XZ_PY" Owner="GKZYData" />       
+			<Layer Label="锚地" ID="L_ID_MD_GH" Name="L_MD_GH_PY" Owner="GKZYData"/> 
+			<Layer Label="港口经营人" ID="L_ID_GKJYR" Name="L_GKJYR_PY" Owner="GKZYData" Show="1"/> 
+			<Layer Label="港口经营人" ID="L_ID_GKJYR_2" Name="L_GKJYR_PY" Owner="GKZYData.2" Show="1"/>      
+			<Layer Label="作业区" ID="L_ID_ZYQ" Name="L_ZYQ_PY" Owner="GKZYData.2" Show="1"/>       
+			<Layer Label="港区" ID="L_ID_GQ" Name="L_GQ_PY" Owner="GKZYData.3" Show="1"/> 
+			<Layer Label="作业区" ID="L_ID_ZYQ_2" Name="L_ZYQ_PY" Owner="GKZYData.1" Show="1"/>   
+			<Layer Label="港区" ID="L_ID_GQ_2" Name="L_GQ_PY" Owner="GKZYData.1" Show="1"/> 
+			<Layer Label="港口区域" ID="L_ID_GK_PY" Name="L_GK_PY" Owner="GKZYData"/>      
+			<Layer Label="市界" ID="L_ID_SJ" Name="L_SJ_PY" Owner="GKZYData"/>     
+			<Layer Label="港口危险货物企业" ID="L_ID_AQ_WXHWQY" Name="L_GKZY_AQ_WXHWQY_PT" Owner="GKZYData"/>       
+			<Layer Label="应急物资库" ID="L_ID_AQ_YJWZK" Name="L_GKZY_AQ_YJWZK_PT" Owner="GKZYData"/>       
+			<Layer Label="港口危险化学品仓储设施" ID="L_ID_AQ_WHPCCSS" Name="L_GKZY_AQ_WHPCCSS_PT" Owner="GKZYData"/>       
+			<Layer Label="重大危险源企业" ID="L_ID_AQ_ZDWXYQY" Name="L_GKZY_AQ_ZDWXYQY_PT" Owner="GKZYData"/>       
+			<Layer Label="取水口" ID="L_ID_AQ_QSK" Name="L_GKZY_AQ_QSK_PT" Owner="GKZYData"/>  
+			<Layer Label="应急网络_消防" ID="L_ID_AQ_XF" Name="应急网络_消防" Owner="GKZYData"/>
+			<Layer Label="应急网络_交警" ID="L_ID_AQ_JJ" Name="应急网络_交警" Owner="GKZYData"/>
+			<Layer Label="取水口" ID="L_ID_AQ_QSK2" Name="取水口" Owner="GKZYData"/>
+			<Layer Label="应急网络_公安" ID="L_ID_AQ_GA" Name="应急网络_公安" Owner="GKZYData"/>
+			<Layer Label="医院药店" ID="L_ID_AQ_YY" Name="医院药店" Owner="GKZYData"/>
+		    <Layer Label="港口范围" ID="L_ID_GKFW" Name="港口范围" Owner="GKZYData"/> 
+		    <Layer Label="罐区" ID="L_ID_AQ_GQ" Name="罐区" Owner="GKZYData"/>
+		
+		    <Layer Label="南京港高速" ID="L_ID_JSY_GSGL_NJ" Name="高速0626" Owner="GKZYData"/>
+		    <Layer Label="镇江港高速" ID="L_ID_JSY_GSGL_ZJ" Name="高速0626" Owner="GKZYData.1"/>
+			<Layer Label="扬州港高速" ID="L_ID_JSY_GSGL_YZ" Name="V0703高速" Owner="GKZYData"/>
+		   	<Layer Label="泰州港高速" ID="L_ID_JSY_GSGL_TZ" Name="V0703高速" Owner="GKZYData.1"/>
+			<Layer Label="常州港高速" ID="L_ID_JSY_GSGL_CZ" Name="V0703高速" Owner="GKZYData.2"/>
+		    <Layer Label="江阴港高速" ID="L_ID_JSY_GSGL_JY" Name="V0703高速" Owner="GKZYData.3"/>
+			<Layer Label="苏州港高速" ID="L_ID_JSY_GSGL_SZ" Name="V0703高速" Owner="GKZYData.4"/>
+		    <Layer Label="南通港高速" ID="L_ID_JSY_GSGL_NT" Name="V0703高速" Owner="GKZYData.5"/>
+			<Layer Label="连云港港高速" ID="L_ID_JSY_GSGL_LYG" Name="V0703高速" Owner="GKZYData.6"/>
+		    <Layer Label="盐城港高速" ID="L_ID_JSY_GSGL_YC" Name="V0703高速" Owner="GKZYData.7"/>
+		    <Layer Label="高速" ID="L_ID_JSY_GSGL" Name="高速公路3" Owner="GKZYData"/>
+		    <Layer Label="南京港国道" ID="L_ID_JSY_GD_NJ" Name="国道0626" Owner="GKZYData"/>
+		    <Layer Label="镇江港国道" ID="L_ID_JSY_GD_ZJ" Name="国道0626" Owner="GKZYData.1"/>
+			<Layer Label="扬州港国道" ID="L_ID_JSY_GD_YZ" Name="V0703国道" Owner="GKZYData"/>
+
+			<Layer Label="苏州港国道" ID="L_ID_JSY_GD_SZ" Name="V0703国道" Owner="GKZYData.1"/>
+		    <Layer Label="南通港国道" ID="L_ID_JSY_GD_NT" Name="V0703国道" Owner="GKZYData.2"/>
+			<Layer Label="连云港港国道" ID="L_ID_JSY_GD_LYG" Name="V0703国道" Owner="GKZYData.3"/>
+		    <Layer Label="盐城港国道" ID="L_ID_JSY_GD_YC" Name="V0703国道" Owner="GKZYData.4"/>
+		    <Layer Label="国道" ID="L_ID_JSY_GD" Name="普通国道路段" Owner="GKZYData"/>
+		    <Layer Label="南京港省道" ID="L_ID_JSY_SD_NJ" Name="省道0626" Owner="GKZYData.1"/>
+		    <Layer Label="镇江港省道" ID="L_ID_JSY_SD_ZJ" Name="省道0626" Owner="GKZYData"/>
+			<Layer Label="扬州港省道" ID="L_ID_JSY_SD_YZ" Name="V0703省道" Owner="GKZYData"/>
+		   	<Layer Label="泰州港省道" ID="L_ID_JSY_SD_TZ" Name="V0703省道" Owner="GKZYData.1"/>
+			<Layer Label="常州港省道" ID="L_ID_JSY_SD_CZ" Name="V0703省道" Owner="GKZYData.2"/>
+		    <Layer Label="江阴港省道" ID="L_ID_JSY_SD_JY" Name="V0703省道" Owner="GKZYData.3"/>
+			<Layer Label="苏州港省道" ID="L_ID_JSY_SD_SZ" Name="V0703省道" Owner="GKZYData.4"/>
+		    <Layer Label="南通港省道" ID="L_ID_JSY_SD_NT" Name="V0703省道" Owner="GKZYData.5"/>
+			<Layer Label="连云港港省道" ID="L_ID_JSY_SD_LYG" Name="V0703省道" Owner="GKZYData.6"/>
+		    <Layer Label="盐城港省道" ID="L_ID_JSY_SD_YC" Name="V0703省道" Owner="GKZYData.7"/>
+		    <Layer Label="省道" ID="L_ID_JSY_SD" Name="普通省道路段" Owner="GKZYData"/>
+		    <Layer Label="南京港疏港公路" ID="L_ID_JSY_SGGL_NJ" Name="疏港公路0626" Owner="GKZYData.1"/>
+		    <Layer Label="镇江港疏港公路" ID="L_ID_JSY_SGGL_ZJ" Name="疏港公路0626" Owner="GKZYData"/>
+			<Layer Label="扬州港疏港公路" ID="L_ID_JSY_SGGL_YZ" Name="V0703疏港公路" Owner="GKZYData"/>
+		   	<Layer Label="泰州港疏港公路" ID="L_ID_JSY_SGGL_TZ" Name="V0703疏港公路" Owner="GKZYData.1"/>
+			<Layer Label="常州港疏港公路" ID="L_ID_JSY_SGGL_CZ" Name="V0703疏港公路" Owner="GKZYData.2"/>
+		    <Layer Label="江阴港疏港公路" ID="L_ID_JSY_SGGL_JY" Name="V0703疏港公路" Owner="GKZYData.3"/>
+			<Layer Label="苏州港疏港公路" ID="L_ID_JSY_SGGL_SZ" Name="V0703疏港公路" Owner="GKZYData.4"/>
+		    <Layer Label="南通港疏港公路" ID="L_ID_JSY_SGGL_NT" Name="V0703疏港公路" Owner="GKZYData.5"/>
+			<Layer Label="连云港港疏港公路" ID="L_ID_JSY_SGGL_LYG" Name="V0703疏港公路" Owner="GKZYData.6"/>
+		    <Layer Label="盐城港疏港公路" ID="L_ID_JSY_SGGL_YC" Name="V0703疏港公路" Owner="GKZYData.7"/>
+		    <Layer Label="疏港公路" ID="L_ID_JSY_SGGL" Name="疏港公路" Owner="GKZYData"/>			
+			<Layer Label="南京港铁路" ID="L_ID_JSY_TL_NJ" Name="铁路0626" Owner="GKZYData.1"/>
+			<Layer Label="镇江港铁路" ID="L_ID_JSY_TL_ZJ" Name="铁路0626" Owner="GKZYData"/>
+			<Layer Label="扬州港铁路" ID="L_ID_JSY_TL_YZ" Name="V0703铁路" Owner="GKZYData"/>
+			<Layer Label="泰州港铁路" ID="L_ID_JSY_TL_TZ" Name="V0703铁路" Owner="GKZYData.1"/>
+
+			<Layer Label="江阴港铁路" ID="L_ID_JSY_TL_JY" Name="V0703铁路" Owner="GKZYData.2"/>
+
+			<Layer Label="南通港铁路" ID="L_ID_JSY_TL_NT" Name="V0703铁路" Owner="GKZYData.3"/>
+
+		    <Layer Label="铁路" ID="L_ID_JSY_TL" Name="沿江铁路" Owner="GKZYData"/>
+		    <Layer Label="高等级航道" ID="L_ID_JSY_GHD" Name="T3级以上航道L" Owner="GKZYData"/>
+		    <Layer Label="管道" ID="L_ID_JSY_GUAND" Name="管道0626" Owner="GKZYData"/>
+			<Layer Label="港口名称点" ID="L_ID_GK_PT1" Name="港名称" Owner="GKZYData"/>
+			
+			<Layer Label="应急网络_边防" ID="L_ID_AQ_BF" Name="L_AQ_BF" Owner="GKZYData"/>
+			<Layer Label="应急网络_环保" ID="L_ID_AQ_HB" Name="L_AQ_HB" Owner="GKZYData"/>
+			<Layer Label="应急网络_搜救中心" ID="L_ID_AQ_SJZX" Name="L_AQ_SJZX" Owner="GKZYData"/>
+		</Service>
+	</MapServices>
+	<DataServices>
+		<Service Label="港口资源" ID="DATA_SERVICE_GKZY" URL="http://${serverName}:${port}/iserver/services/data-GKZY/rest/data">
+			<Layer Label="泊位" ID="L_ID_BW" Name="L_BW_PY" Owner="GKZYData"/>
+			<Layer Label="岸线现状" ID="L_ID_AX_XZ" Name="L_AX_XZ_PL" Owner="GKZYData"/> 
+			<Layer Label="港区" ID="L_ID_GQ" Name="L_GQ_PY" Owner="GKZYData"/>    
+			<Layer Label="港口区域" ID="L_ID_GK_PY" Name="L_GK_PY" Owner="GKZYData"/>      
+			<Layer Label="市界" ID="L_ID_SJ" Name="L_SJ_PY" Owner="GKZYData"/>       
+			<Layer Label="锚地现状" ID="L_ID_MD_XZ" Name="L_MD_XZ_PY" Owner="GKZYData"/>     
+			<Layer Label="锚地" ID="L_ID_MD_GH" Name="L_MD_GH_PY" Owner="GKZYData"/> 
+			<Layer Label="港口经营人" ID="L_ID_GKJYR" Name="L_GKJYR_PY" Owner="GKZYData"/>      
+			<Layer Label="码头前沿" ID="L_ID_MT" Name="L_MT_PY" Owner="GKZYData"/>      
+			<Layer Label="作业区" ID="L_ID_ZYQ" Name="L_ZYQ_PY" Owner="GKZYData"/>      
+			<Layer Label="岸线现状临时层" ID="L_ID_AX_XZ_TMP" Name="L_AX_XZ_PL_TMP" Owner="GKZYData"/> 
+			<Layer Label="码头前沿临时层" ID="L_ID_MT_TMP" Name="L_MT_PY_TMP" Owner="GKZYData"/> 
+			<Layer Label="泊位临时层" ID="L_ID_BW_TMP" Name="L_BW_PY_TMP" Owner="GKZYData"/> 
+			<Layer Label="锚地现状临时层" ID="L_ID_MD_XZ_TMP" Name="L_MD_XZ_PY_TMP" Owner="GKZYData"/> 
+			<Layer Label="作业区临时层" ID="L_ZYQ_PY_TMP" Name="L_ZYQ_PY_TMP" Owner="GKZYData"/> 
+			<Layer Label="港区临时层" ID="L_GQ_PY_TMP" Name="L_GQ_PY_TMP" Owner="GKZYData"/> 
+			<Layer Label="锚地规划临时层" ID="L_MD_GH_PY_TMP" Name="L_MD_GH_PY_TMP" Owner="GKZYData"/> 
+			<Layer Label="经营人临时图层" ID="L_GKJYR_PY_TMP" Name="L_GKJYR_PY_TMP" Owner="GKZYData"/> 
+			
+			
+			<Layer Label="港口危险化学品仓储设施" ID="L_ID_AQ_WHPCCSS" Name="L_GKZY_AQ_WHPCCSS_PT" Owner="GKZYData"/> 
+			<Layer Label="港口危险货物企业" ID="L_ID_AQ_WXHWQY" Name="L_GKZY_AQ_WXHWQY_PT" Owner="GKZYData"/> 
+			<Layer Label="取水口" ID="L_ID_AQ_QSK" Name="L_GKZY_AQ_QSK_PT" Owner="GKZYData"/> 
+			<Layer Label="应急物资库" ID="L_ID_AQ_YJWZK" Name="L_GKZY_AQ_YJWZK_PT" Owner="GKZYData"/> 
+			<Layer Label="重大危险源企业" ID="L_ID_AQ_ZDWXYQY" Name="L_GKZY_AQ_ZDWXYQY_PT" Owner="GKZYData"/> 
+		</Service>
+	</DataServices>
+	<AnalystServices>
+		<Service Label="港口资源" ID="ANALYST_SERVICE_GKZY" URL="http://${serverName}:${port}/iserver/services/spatialAnalysis-GKZY/restjsr/spatialanalyst">
+		</Service>
+	</AnalystServices>
+</Root>

+ 21 - 0
gkaq/gis-java/trunk/src/main/webapp/flexs/com/xt/hb/cfg/MenuConfig.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node CDID="M_SYS" CDMC="港口资源系统菜单" CDMS="根节点" CDXH="0" CJSJ="null" ID="1" SJCDID="-1" STATE="0">
+    <node CDID="M_AQXT" CDMC="安全系统" CDTB="" CDMS="null" CDXH="1" CJSJ="null" ID="281e1e57-a443-4d11-92ff-2483ffb41505" SJCDID="5eaa0b0f-849c-4301-b076-b7270d4ffb9c" STATE="0">
+      <node CDID="ALL" CDMC="全部" CDTB="" CDMS="null" CDXH="1" CJSJ="null" ID="e0413fe6-6dad-4e10-b465-9285bc43c203" SJCDID="281e1e57-a443-4d11-92ff-2483ffb41505" STATE="0"/>
+      <node CDID="L_ID_AQ_WHPCCSS" CDMC="港口危险化学品仓储设施" CDTB="flexResources/png/aq_whpccss.png" CDMS="null" CDXH="1" CJSJ="null" ID="e0413fe6-6dad-4e10-b465-9285bc43c203" SJCDID="281e1e57-a443-4d11-92ff-2483ffb41505" STATE="0"/>
+      <node CDID="L_ID_AQ_WXHWQY" CDMC="港口危险货物企业" CDTB="flexResources/png/aq_wxhwqy.png" CDMS="null" CDXH="2" CJSJ="null" ID="0f75f453-4317-4940-bc0b-120ba3b94039" SJCDID="281e1e57-a443-4d11-92ff-2483ffb41505" STATE="0"/>
+      <node CDID="L_ID_AQ_QSK" CDMC="取水口" CDTB="flexResources/png/aq_qsk.png" CDMS="null" CDXH="3" CJSJ="null" ID="4744c601-bbe0-4664-b1fa-74e016cb82e2" SJCDID="281e1e57-a443-4d11-92ff-2483ffb41505" STATE="0"/>
+      <node CDID="L_ID_AQ_YJWZK" CDMC="应急物资库" CDTB="flexResources/png/aq_yywzk.png" CDMS="null" CDXH="4" CJSJ="null" ID="55448a54-e5ad-4a27-96e7-651edf33f0e9" SJCDID="281e1e57-a443-4d11-92ff-2483ffb41505" STATE="0"/>
+      <node CDID="L_ID_AQ_ZDWXYQY" CDMC="重大危险源企业" CDTB="flexResources/png/aq_zdwxy.gif" CDMS="null" CDXH="5" CJSJ="null" ID="0717a6fb-d965-4b43-8fd8-96d32069dd5a" SJCDID="281e1e57-a443-4d11-92ff-2483ffb41505" STATE="0"/>
+      <node CDID="L_ID_AQ_XF" CDMC="消防" CDTB="flexResources/png/aq_xf.png" CDMS="null" CDXH="6" CJSJ="null" ID="0717a6fb-d965-4b43-8fd8-96d32069dd5b" SJCDID="281e1e57-a443-4d11-92ff-2483ffb41506" STATE="0"/>
+      <node CDID="L_ID_AQ_YY" CDMC="医院" CDTB="flexResources/png/aq_yy.png" CDMS="null" CDXH="6" CJSJ="null" ID="0717a6fb-d965-4b43-8fd8-96d32069dd5c" SJCDID="281e1e57-a443-4d11-92ff-2483ffb41507" STATE="0"/>
+      <node CDID="L_ID_AQ_JJ" CDMC="交警" CDTB="flexResources/png/aq_jj.png" CDMS="null" CDXH="6" CJSJ="null" ID="0717a6fb-d965-4b43-8fd8-96d32069dd5d" SJCDID="281e1e57-a443-4d11-92ff-2483ffb41508" STATE="0"/>
+      <node CDID="L_ID_AQ_GA" CDMC="公安" CDTB="flexResources/png/aq_ga.png" CDMS="null" CDXH="6" CJSJ="null" ID="0717a6fb-d965-4b43-8fd8-96d32069dd5e" SJCDID="281e1e57-a443-4d11-92ff-2483ffb41509" STATE="0"/>
+      <node CDID="L_ID_AQ_BF" CDMC="边防" CDTB="flexResources/png/aq_bf.png" CDMS="null" CDXH="6" CJSJ="null" ID="0717a6fb-d965-4b43-8fd8-96d32169dd5e" SJCDID="281e1e57-a443-4d11-92ff-2483ffb42501" STATE="0"/>
+      <node CDID="L_ID_AQ_HB" CDMC="环保" CDTB="flexResources/png/aq_hb.png" CDMS="null" CDXH="6" CJSJ="null" ID="0717a6fb-d965-4b43-8fd8-96d32169dd6e" SJCDID="281e1e57-a443-4d11-92ff-2483ffb42502" STATE="0"/>
+      <node CDID="L_ID_AQ_SJZX" CDMC="搜救中心" CDTB="flexResources/png/aq_sjzx.png" CDMS="null" CDXH="6" CJSJ="null" ID="0717a6fb-d965-4b43-8fd8-96d32169dd7e" SJCDID="281e1e57-a443-4d11-92ff-2483ffb42503" STATE="0"/>
+      <node CDID="L_ID_AQ_GQ" CDMC="罐区" CDTB="flexResources/png/aq_gq.png" CDMS="null" CDXH="6" CJSJ="null" ID="0717a6fb-d965-4b43-8fd8-96d32069dd5f" SJCDID="281e1e57-a443-4d11-92ff-2483ffb41510" STATE="0"/>
+      <node CDID="L_ID_BW" CDMC="泊位" CDTB="flexResources/png/aq_bw.png" CDMS="null" CDXH="6" CJSJ="null" ID="0717a6fb-d965-4b43-8fd8-96d32069dd5g" SJCDID="281e1e57-a443-4d11-92ff-2483ffb41511" STATE="0"/>
+      <node CDID="L_ID_SP" CDMC="摄像头" CDTB="flexResources/png/aq_sxt.png" CDMS="null" CDXH="6" CJSJ="null" ID="0717a6fb-d965-4b43-8fd8-96d32069dd5g" SJCDID="281e1e57-a443-4d11-92ff-2483ffb41511" STATE="0"/>
+    </node>
+</node>

BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/arrowLeft1.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/arrowRight.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/aqtc.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/clear1.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/cxtj.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/expert.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/map.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/s_71.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/satellite.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/sxt.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/tckz.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/translation.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/viewEntire.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/yjcz.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/zoomin.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/map/zoomout.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/menu.jpg


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_ais.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_bf.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_bw.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_cbyj.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_ga.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_gq.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_hb.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_jj.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_jyr.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_mt.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_qsk.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_searchMini.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_sjzx.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_sxt.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_whpccss.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_wxhwqy.png


BIN
gkaq/gis-java/trunk/src/main/webapp/flexs/flexResources/png/aq_xf.png


この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません