Pārlūkot izejas kodu

健康报告后天计算

shilin 3 gadi atpakaļ
revīzija
9cd36e058b
100 mainītis faili ar 5608 papildinājumiem un 0 dzēšanām
  1. 75 0
      .classpath
  2. 23 0
      .project
  3. 2 0
      .settings/org.eclipse.core.resources.prefs
  4. 12 0
      .settings/org.eclipse.jdt.core.prefs
  5. 4 0
      .settings/org.eclipse.wst.common.project.facet.core.xml
  6. 14 0
      bin/.gitignore
  7. 26 0
      config/applicationContext.xml
  8. 86 0
      config/context.xml
  9. 30 0
      config/dbconfig.properties
  10. 80 0
      config/job.xml
  11. 169 0
      config/job2.xml
  12. 56 0
      config/job3.xml
  13. 30 0
      config/log4j.properties
  14. 38 0
      config/quartz.properties
  15. 8 0
      config/redis.properties
  16. 32 0
      config/redis.xml
  17. 34 0
      config/thread.xml
  18. 43 0
      config/webconfig.properties
  19. BIN
      lib/aopalliance.jar
  20. BIN
      lib/asm.jar
  21. BIN
      lib/aspectjrt.jar
  22. BIN
      lib/aspectjweaver.jar
  23. BIN
      lib/bonecp-0.7.1.RELEASE.jar
  24. BIN
      lib/cglib-2.1.3.jar
  25. BIN
      lib/commons-collections.jar
  26. BIN
      lib/commons-io-1.4.jar
  27. BIN
      lib/commons-lang-2.1.jar
  28. BIN
      lib/commons-lang3-3.4.jar
  29. BIN
      lib/commons-logging.jar
  30. BIN
      lib/commons-pool2-2.4.2.jar
  31. BIN
      lib/concurrentAnnotaion.jar
  32. BIN
      lib/dom4j-1.6.1.jar
  33. BIN
      lib/edosapi.jar
  34. BIN
      lib/fastjson-1.2.17.jar
  35. BIN
      lib/fel.jar
  36. BIN
      lib/guava-14.0.jar
  37. BIN
      lib/gyee.cache.jar
  38. BIN
      lib/gyee.framework.jar
  39. BIN
      lib/gyee.realtime.jar
  40. BIN
      lib/jackson-all-1.6.9.jar
  41. BIN
      lib/jedis-2.9.0.jar
  42. BIN
      lib/jna.jar
  43. BIN
      lib/jstl-1.2.jar
  44. BIN
      lib/junit-4.7.jar
  45. BIN
      lib/jxl.jar
  46. BIN
      lib/log4j-1.2.15.jar
  47. BIN
      lib/lombok.jar
  48. BIN
      lib/mysql-5.1.7.jar
  49. BIN
      lib/ojdbc14.jar
  50. BIN
      lib/oracle_jdbc.jar
  51. BIN
      lib/poi-3.9.jar
  52. BIN
      lib/poi-ooxml-3.9.jar
  53. BIN
      lib/poi-ooxml-schemas-3.9-20121203.jar
  54. BIN
      lib/quartz-1.6.4.jar
  55. BIN
      lib/slf4j-api-1.6.6.jar
  56. BIN
      lib/slf4j-log4j12-1.6.6.jar
  57. BIN
      lib/spring.aop-3.0.5.RELEASE.jar
  58. BIN
      lib/spring.asm-3.0.5.RELEASE.jar
  59. BIN
      lib/spring.aspects-3.0.5.RELEASE.jar
  60. BIN
      lib/spring.beans-3.0.5.RELEASE.jar
  61. BIN
      lib/spring.context-3.0.5.RELEASE.jar
  62. BIN
      lib/spring.context.support-3.0.5.RELEASE.jar
  63. BIN
      lib/spring.core-3.0.5.RELEASE.jar
  64. BIN
      lib/spring.expression-3.0.5.RELEASE.jar
  65. BIN
      lib/spring.instrument-3.0.5.RELEASE.jar
  66. BIN
      lib/spring.instrument.tomcat-3.0.5.RELEASE.jar
  67. BIN
      lib/spring.jdbc-3.0.5.RELEASE.jar
  68. BIN
      lib/spring.jms-3.0.5.RELEASE.jar
  69. BIN
      lib/spring.orm-3.0.5.RELEASE.jar
  70. BIN
      lib/spring.oxm-3.0.5.RELEASE.jar
  71. BIN
      lib/spring.test-3.0.5.RELEASE.jar
  72. BIN
      lib/spring.transaction-3.0.5.RELEASE.jar
  73. BIN
      lib/spring.web-3.0.5.RELEASE.jar
  74. BIN
      lib/spring.web.portlet-3.0.5.RELEASE.jar
  75. BIN
      lib/spring.web.servlet-3.0.5.RELEASE.jar
  76. BIN
      lib/standard-1.1.2.jar
  77. BIN
      lib/xmemcached-2.0.0.jar
  78. BIN
      lib/xmlbeans-2.3.0.jar
  79. 62 0
      src/MANIFEST.MF
  80. 213 0
      src/com/gyee/Constant.java
  81. 342 0
      src/com/gyee/ConstantTR.java
  82. 116 0
      src/com/gyee/MainConstant.java
  83. 47 0
      src/com/gyee/dao/GenericDao.java
  84. 382 0
      src/com/gyee/dao/GenericJdbcDao.java
  85. 18 0
      src/com/gyee/dao/JdbcDaoException.java
  86. 29 0
      src/com/gyee/dao/JdbcDaoExceptionTranslator.java
  87. 942 0
      src/com/gyee/dao/JdbcDaoTemplate.java
  88. 690 0
      src/com/gyee/dao/SimpleJdbcDaoTemplate.java
  89. BIN
      src/com/gyee/eDosProxyApi.dll
  90. 417 0
      src/com/gyee/intial/CacheContext.java
  91. 41 0
      src/com/gyee/intial/PropertyCacheContext.java
  92. 285 0
      src/com/gyee/intial/QueryCacheServcie.java
  93. 151 0
      src/com/gyee/main/StartUp.java
  94. 61 0
      src/com/gyee/model/Alertrulefailure.java
  95. 121 0
      src/com/gyee/model/Curvefittingsub.java
  96. 535 0
      src/com/gyee/model/Earlywarningmain.java
  97. 99 0
      src/com/gyee/model/Earlywarningsub.java
  98. 148 0
      src/com/gyee/model/Electricaltestingpointai.java
  99. 147 0
      src/com/gyee/model/Electricaltestingpointdi.java
  100. 0 0
      src/com/gyee/model/Failurestatisticsmain.java

+ 75 - 0
.classpath

@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src">
+		<attributes>
+			<attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="edostoredis1/src"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="src" path="config"/>
+	<classpathentry kind="lib" path="lib/aopalliance.jar"/>
+	<classpathentry kind="lib" path="lib/asm.jar"/>
+	<classpathentry kind="lib" path="lib/aspectjrt.jar"/>
+	<classpathentry kind="lib" path="lib/aspectjweaver.jar"/>
+	<classpathentry kind="lib" path="lib/bonecp-0.7.1.RELEASE.jar"/>
+	<classpathentry kind="lib" path="lib/cglib-2.1.3.jar"/>
+	<classpathentry kind="lib" path="lib/commons-collections.jar"/>
+	<classpathentry kind="lib" path="lib/commons-io-1.4.jar"/>
+	<classpathentry kind="lib" path="lib/commons-lang-2.1.jar"/>
+	<classpathentry kind="lib" path="lib/commons-logging.jar"/>
+	<classpathentry kind="lib" path="lib/commons-pool2-2.4.2.jar"/>
+	<classpathentry kind="lib" path="lib/concurrentAnnotaion.jar"/>
+	<classpathentry kind="lib" path="lib/dom4j-1.6.1.jar"/>
+	<classpathentry kind="lib" path="lib/edosapi.jar"/>
+	<classpathentry kind="lib" path="lib/fel.jar"/>
+	<classpathentry kind="lib" path="lib/guava-14.0.jar"/>
+	<classpathentry kind="lib" path="lib/gyee.cache.jar"/>
+	<classpathentry kind="lib" path="lib/gyee.framework.jar"/>
+	<classpathentry kind="lib" path="lib/gyee.realtime.jar"/>
+	<classpathentry kind="lib" path="lib/jackson-all-1.6.9.jar"/>
+	<classpathentry kind="lib" path="lib/jedis-2.9.0.jar"/>
+	<classpathentry kind="lib" path="lib/junit-4.7.jar"/>
+	<classpathentry kind="lib" path="lib/jxl.jar"/>
+	<classpathentry kind="lib" path="lib/log4j-1.2.15.jar"/>
+	<classpathentry kind="lib" path="lib/mysql-5.1.7.jar"/>
+	<classpathentry kind="lib" path="lib/ojdbc14.jar"/>
+	<classpathentry kind="lib" path="lib/oracle_jdbc.jar"/>
+	<classpathentry kind="lib" path="lib/poi-3.9.jar"/>
+	<classpathentry kind="lib" path="lib/poi-ooxml-3.9.jar"/>
+	<classpathentry kind="lib" path="lib/poi-ooxml-schemas-3.9-20121203.jar"/>
+	<classpathentry kind="lib" path="lib/quartz-1.6.4.jar"/>
+	<classpathentry kind="lib" path="lib/slf4j-api-1.6.6.jar"/>
+	<classpathentry kind="lib" path="lib/slf4j-log4j12-1.6.6.jar"/>
+	<classpathentry kind="lib" path="lib/spring.aop-3.0.5.RELEASE.jar"/>
+	<classpathentry kind="lib" path="lib/spring.asm-3.0.5.RELEASE.jar"/>
+	<classpathentry kind="lib" path="lib/spring.aspects-3.0.5.RELEASE.jar"/>
+	<classpathentry kind="lib" path="lib/spring.beans-3.0.5.RELEASE.jar"/>
+	<classpathentry kind="lib" path="lib/spring.context-3.0.5.RELEASE.jar"/>
+	<classpathentry kind="lib" path="lib/spring.context.support-3.0.5.RELEASE.jar"/>
+	<classpathentry kind="lib" path="lib/spring.core-3.0.5.RELEASE.jar"/>
+	<classpathentry kind="lib" path="lib/spring.expression-3.0.5.RELEASE.jar"/>
+	<classpathentry kind="lib" path="lib/spring.instrument-3.0.5.RELEASE.jar"/>
+	<classpathentry kind="lib" path="lib/spring.instrument.tomcat-3.0.5.RELEASE.jar"/>
+	<classpathentry kind="lib" path="lib/spring.jdbc-3.0.5.RELEASE.jar"/>
+	<classpathentry kind="lib" path="lib/spring.jms-3.0.5.RELEASE.jar"/>
+	<classpathentry kind="lib" path="lib/spring.orm-3.0.5.RELEASE.jar"/>
+	<classpathentry kind="lib" path="lib/spring.oxm-3.0.5.RELEASE.jar"/>
+	<classpathentry kind="lib" path="lib/spring.test-3.0.5.RELEASE.jar"/>
+	<classpathentry kind="lib" path="lib/spring.transaction-3.0.5.RELEASE.jar"/>
+	<classpathentry kind="lib" path="lib/spring.web-3.0.5.RELEASE.jar"/>
+	<classpathentry kind="lib" path="lib/spring.web.portlet-3.0.5.RELEASE.jar"/>
+	<classpathentry kind="lib" path="lib/spring.web.servlet-3.0.5.RELEASE.jar"/>
+	<classpathentry kind="lib" path="lib/xmemcached-2.0.0.jar"/>
+	<classpathentry kind="lib" path="lib/xmlbeans-2.3.0.jar"/>
+	<classpathentry kind="lib" path="lib/jna.jar"/>
+	<classpathentry kind="lib" path="lib/commons-lang3-3.4.jar"/>
+	<classpathentry kind="lib" path="lib/fastjson-1.2.17.jar"/>
+	<classpathentry kind="lib" path="lib/jstl-1.2.jar"/>
+	<classpathentry kind="lib" path="lib/lombok.jar"/>
+	<classpathentry kind="lib" path="lib/standard-1.1.2.jar"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+		<attributes>
+			<attribute name="owner.project.facets" value="java"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

+ 23 - 0
.project

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>wttargetreport</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+	</natures>
+</projectDescription>

+ 2 - 0
.settings/org.eclipse.core.resources.prefs

@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8

+ 12 - 0
.settings/org.eclipse.jdt.core.prefs

@@ -0,0 +1,12 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8

+ 4 - 0
.settings/org.eclipse.wst.common.project.facet.core.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <installed facet="java" version="1.8"/>
+</faceted-project>

+ 14 - 0
bin/.gitignore

@@ -0,0 +1,14 @@
+/MANIFEST.MF
+/applicationContext.xml
+/com/
+/context.xml
+/dbconfig.properties
+/job.xml
+/job2.xml
+/job3.xml
+/log4j.properties
+/quartz.properties
+/redis.properties
+/redis.xml
+/thread.xml
+/webconfig.properties

+ 26 - 0
config/applicationContext.xml

@@ -0,0 +1,26 @@
+<?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:p="http://www.springframework.org/schema/p"
+	xmlns:context="http://www.springframework.org/schema/context"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans
+	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+    http://www.springframework.org/schema/context
+    http://www.springframework.org/schema/context/spring-context-3.0.xsd"
+	default-lazy-init="false" default-autowire="byName">
+	<context:annotation-config/>
+	<bean class="com.gyee.util.BeanFactoryUtils" autowire="no"/>
+	<import resource="context.xml"/>
+	<import resource="job.xml"/>
+	<import resource="thread.xml"/>
+	
+	<context:component-scan base-package="com.gyee">
+  		<context:include-filter type="regex" expression=".service.*"/>
+  		<context:include-filter type="regex" expression=".dao.*"/>
+  		<context:include-filter type="regex" expression=".intial.*"/>
+  		<context:include-filter type="regex" expression=".util.*"/>
+  		<context:include-filter type="regex" expression=".util.edos.*"/>
+  		<context:include-filter type="regex" expression=".test.*"/>
+	</context:component-scan>
+
+</beans>

+ 86 - 0
config/context.xml

@@ -0,0 +1,86 @@
+<?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:aop="http://www.springframework.org/schema/aop"
+	xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
+	xmlns:tx="http://www.springframework.org/schema/tx"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans
+	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+	http://www.springframework.org/schema/context
+	http://www.springframework.org/schema/context/spring-context-3.0.xsd
+	http://www.springframework.org/schema/aop 
+	http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+	http://www.springframework.org/schema/tx 
+	http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"
+	default-autowire="byName" default-lazy-init="true">
+
+	<bean id="propertyCOnfigurer"
+		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+		<property name="location">
+			<value>classpath:dbconfig.properties</value>
+		</property>
+	</bean>
+
+	<bean id="nativeJdbcExtractor"
+		class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor"
+		lazy-init="true" />
+
+	<bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler"
+		lazy-init="true">
+		<property name="nativeJdbcExtractor" ref="nativeJdbcExtractor" />
+	</bean>
+
+	<bean id="propertyCfg" class="com.gyee.intial.PropertyCacheContext">
+		<property name="ignoreResourceNotFound" value="true" />
+		<property name="locations">
+			<list>
+				<value>classpath:webconfig.properties</value>
+			</list>
+		</property>
+	</bean>
+
+	<bean id="sequence"
+		class="org.springframework.jdbc.support.incrementer.OracleSequenceMaxValueIncrementer">
+		<property name="incrementerName" value="SQ_ID" />
+		<property name="dataSource" ref="dataSource" />
+	</bean>
+	
+	<bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource"
+		destroy-method="close" p:driverClass="${oracle.driverClassName}"
+		p:jdbcUrl="${oracle.url}" p:username="${oracle.username}" p:password="${oracle.password}"
+		p:idleConnectionTestPeriodInMinutes="${cpool.idleConnectionTestPeriodInMinutes}"
+		p:idleMaxAgeInMinutes="${cpool.idleMaxAgeInMinutes}"
+		p:maxConnectionsPerPartition="${cpool.maxConnectionsPerPartition}"
+		p:minConnectionsPerPartition="${cpool.minConnectionsPerPartition}"
+		p:partitionCount="${cpool.partitionCount}" p:acquireIncrement="${cpool.acquireIncrement}"
+		p:statementsCacheSize="${cpool.statementsCacheSize}"
+		p:releaseHelperThreads="${cpool.releaseHelperThreads}" />
+
+
+	<aop:config proxy-target-class="true">
+		<aop:pointcut id="serviceOperation"
+			expression="execution(* com.gyee.service..*Service.*(..))" />
+
+		<aop:advisor pointcut-ref="serviceOperation" advice-ref="txAdvice"
+			order="1" />
+	</aop:config>
+
+	<bean id="transactionManager"
+		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
+		<property name="dataSource">
+			<ref bean="dataSource" />
+		</property>
+	</bean>
+
+	<tx:advice id="txAdvice" transaction-manager="transactionManager">
+		<tx:attributes>
+			<tx:method name="get*" read-only="true" rollback-for="Exception" />
+			<tx:method name="find*" read-only="true" rollback-for="Exception" />
+			<tx:method name="load*" read-only="true" rollback-for="Exception" />
+			<tx:method name="unique*" read-only="true" rollback-for="Exception" />
+			<tx:method name="*" rollback-for="Exception" />
+		</tx:attributes>
+	</tx:advice>
+
+	<aop:aspectj-autoproxy proxy-target-class="true" />
+
+</beans>

+ 30 - 0
config/dbconfig.properties

@@ -0,0 +1,30 @@
+#jdbc.driverClassName=com.mysql.jdbc.Driver
+#jdbc.url=jdbc:mysql://10.0.118.56:3306/dthlj_monitor?characterEncoding=UTF-8
+#jdbc.url=jdbc:mysql://127.0.0.1:3306/dthlj_monitor?characterEncoding=UTF-8
+#jdbc.username=gyee
+#jdbc.password=eeyg
+
+
+oracle.driverClassName=oracle.jdbc.driver.OracleDriver
+oracle.url=jdbc:oracle:thin:@192.168.1.105:1521:gdnxfd
+#oracle.url=jdbc:oracle:thin:@172.168.1.14:1521:gdnxfd
+#oracle.url=jdbc:oracle:thin:@172.252.252.251:1521:gdnxfd
+oracle.username=nxfdprod
+oracle.password=gdnxfd123
+
+cpool.idleConnectionTestPeriodInMinutes=240
+cpool.idleMaxAgeInMinutes=60
+cpool.maxConnectionsPerPartition=4
+cpool.minConnectionsPerPartition=1
+cpool.partitionCount=3
+cpool.acquireIncrement=1
+cpool.statementsCacheSize=1000
+cpool.releaseHelperThreads=3
+
+readisip=10.0.118.73
+readisport=6379
+
+redis.master.host=10.0.118.73
+redis.master.port=6379
+
+

+ 80 - 0
config/job.xml

@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
+
+<beans>
+
+
+	<!-- 
+	<bean name="jobstore" class="org.springframework.scheduling.quartz.JobDetailBean">
+		<property name="jobClass">
+
+			<value>com.gyee.timer.WtTargetReportJob</value>
+		</property>
+		<property name="jobDataAsMap">
+			<map>
+				<entry key="wtReportService" value-ref="wtReportService" />
+			</map>
+		</property>
+	</bean>
+	<bean id="cron" class="org.springframework.scheduling.quartz.CronTriggerBean">
+	 	
+		<property name="jobDetail">
+			<ref bean="jobstore" />
+		</property>
+		<property name="startDelay" value="10000" /> 
+		<property name="cronExpression">
+			<value>0 30 8 * * ?</value>
+		</property>
+	</bean>
+
+	 -->
+<bean name="jobstore2" class="org.springframework.scheduling.quartz.JobDetailBean">
+		<property name="jobClass">
+
+			<value>com.gyee.timer.WtTargetReport</value>
+		</property>
+		<property name="jobDataAsMap">
+			<map>
+				<entry key="wttragetreportService" value-ref="wttragetreportService" />
+				<entry key="wttragetreportmainService" value-ref="wttragetreportmainService" />
+				<entry key="wttragetreportchartService" value-ref="wttragetreportchartService" />
+				<entry key="wttragetreportfnlylService" value-ref="wttragetreportfnlylService" />
+				<entry key="wttragetreportpartService" value-ref="wttragetreportpartService" />
+				<entry key="wttragetreportkkxfxService" value-ref="wttragetreportkkxfxService" />
+				<entry key="wttragetreportnhydService" value-ref="wttragetreportnhydService" />
+				<entry key="wttragetreportxndjpjService" value-ref="wttragetreportxndjpjService" />
+				<entry key="wtReportService" value-ref="wtReportService" />
+				
+			</map>
+		</property>
+	</bean>
+	<bean id="cron2" class="org.springframework.scheduling.quartz.CronTriggerBean">
+	 	
+		<property name="jobDetail">
+			<ref bean="jobstore2" />
+		</property>
+		<property name="startDelay" value="10000" /> 
+		<property name="cronExpression">
+			<value>0 30 8 * * ?</value>
+		</property>
+	</bean>
+	<bean autowire="no"
+		class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
+		<property name="autoStartup" value="true" />
+		<property name="triggers">
+			<list>
+			
+			<ref local="cron2" />
+				<!-- <ref  <ref local="cron" /> local="cron" /> -->
+			</list>
+		</property>
+		<property name="quartzProperties">  
+            <map>  
+                <entry key="org.quartz.threadPool.threadCount" value="10"/>  
+            </map>  
+        </property>  
+	</bean>
+	
+	
+	
+</beans>

+ 169 - 0
config/job2.xml

@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
+
+<beans>
+		
+
+	<!-- 定义目标bean和bean中的方法 -->
+	<bean id="SpringQtzJob" class="com.gyee.timer.EdosToOutJob" />
+
+	<!-- ======================== wpjs ======================== -->
+	<bean id="SpringQtzJobMethod1"
+		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
+		<property name="targetObject">
+			<ref bean="SpringQtzJob" />
+		</property>
+		<property name="targetMethod">  <!-- 要执行的方法名称 -->
+			<value>toWpJsOutEdos</value>
+		</property>
+		<property name="concurrent" value="false" />
+	</bean>
+	<!-- ======================== wppower ======================== -->
+	<bean id="SpringQtzJobMethod2"
+		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
+		<property name="targetObject">
+			<ref bean="SpringQtzJob" />
+		</property>
+		<property name="targetMethod">  <!-- 要执行的方法名称 -->
+			<value>toWpPowerOutEdos</value>
+		</property>
+		<property name="concurrent" value="false" />
+	</bean>
+	<!-- ======================== Meter ======================== -->
+	<bean id="SpringQtzJobMethod3"
+		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
+		<property name="targetObject">
+			<ref bean="SpringQtzJob" />
+		</property>
+		<property name="targetMethod">  <!-- 要执行的方法名称 -->
+			<value>toMeterOutEdos</value>
+		</property>
+		<property name="concurrent" value="false" />
+	</bean>
+	<!-- ======================== etai ======================== -->
+	<bean id="SpringQtzJobMethod4"
+		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
+		<property name="targetObject">
+			<ref bean="SpringQtzJob" />
+		</property>
+		<property name="targetMethod">  <!-- 要执行的方法名称 -->
+			<value>toEtAiOutEdos</value>
+		</property>
+		<property name="concurrent" value="false" />
+	</bean>
+	<!-- ======================== etdi ======================== -->
+	<bean id="SpringQtzJobMethod5"
+		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
+		<property name="targetObject">
+			<ref bean="SpringQtzJob" />
+		</property>
+		<property name="targetMethod">  <!-- 要执行的方法名称 -->
+			<value>toEtDiOutEdos</value>
+		</property>
+		<property name="concurrent" value="false" />
+	</bean>
+	<!-- ======================== wtai ======================== -->
+	<bean id="SpringQtzJobMethod6"
+		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
+		<property name="targetObject">
+			<ref bean="SpringQtzJob" />
+		</property>
+		<property name="targetMethod">  <!-- 要执行的方法名称 -->
+			<value>toWtAiOutEdos</value>
+		</property>
+		<property name="concurrent" value="false" />
+	</bean>
+	<!-- ======================== wtaijs ======================== -->
+	<bean id="SpringQtzJobMethod7"
+		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
+		<property name="targetObject">
+			<ref bean="SpringQtzJob" />
+		</property>
+		<property name="targetMethod">  <!-- 要执行的方法名称 -->
+			<value>toWtAiJSOutEdos</value>
+		</property>
+		<property name="concurrent" value="false" />
+	</bean>
+	<!-- ======================== wtdi ======================== -->
+	<bean id="SpringQtzJobMethod8"
+		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
+		<property name="targetObject">
+			<ref bean="SpringQtzJob" />
+		</property>
+		<property name="targetMethod">  <!-- 要执行的方法名称 -->
+			<value>toWtDiOutEdos</value>
+		</property>
+		<property name="concurrent" value="false" />
+	</bean>
+	
+
+	<!-- ======================== 调度触发器 ======================== -->
+
+	<!-- ======================== wpjs ======================== -->
+	<bean id="CronTriggerBean1" class="org.springframework.scheduling.quartz.CronTriggerBean">
+		<property name="jobDetail" ref="SpringQtzJobMethod1"></property>
+		<property name="cronExpression" value="0 0/1 * * * ?"></property>
+	</bean>
+	<!-- ======================== wppower ======================== -->
+	<bean id="CronTriggerBean2" class="org.springframework.scheduling.quartz.CronTriggerBean">
+		<property name="jobDetail" ref="SpringQtzJobMethod2"></property>
+		<property name="cronExpression" value="0 0/15 * * * ?"></property>
+	</bean>
+	<!-- ======================== Meter ======================== -->
+	<bean id="CronTriggerBean3" class="org.springframework.scheduling.quartz.CronTriggerBean">
+		<property name="jobDetail" ref="SpringQtzJobMethod3"></property>
+		<property name="cronExpression" value="0 0/15 * * * ?"></property>
+	</bean>
+	<!-- ======================== etai ======================== -->
+	<bean id="CronTriggerBean4" class="org.springframework.scheduling.quartz.CronTriggerBean">
+		<property name="jobDetail" ref="SpringQtzJobMethod4"></property>
+		<property name="cronExpression" value="0 0/5 * * * ?"></property>
+	</bean>
+	<!-- ======================== etdi ======================== -->
+	<bean id="CronTriggerBean5" class="org.springframework.scheduling.quartz.CronTriggerBean">
+		<property name="jobDetail" ref="SpringQtzJobMethod5"></property>
+		<property name="cronExpression" value="0 0/5 * * * ?"></property>
+	</bean>
+	<!-- ======================== wtai ======================== -->
+	<bean id="CronTriggerBean6" class="org.springframework.scheduling.quartz.CronTriggerBean">
+		<property name="jobDetail" ref="SpringQtzJobMethod6"></property>
+		<property name="cronExpression" value="0 0/5 * * * ?"></property>
+	</bean>
+	<!-- ======================== wtaijs ======================== -->
+	<bean id="CronTriggerBean7" class="org.springframework.scheduling.quartz.CronTriggerBean">
+		<property name="jobDetail" ref="SpringQtzJobMethod7"></property>
+		<property name="cronExpression" value="0 0/1 * * * ?"></property>
+	</bean>
+	<!-- ======================== wtdi ======================== -->
+	<bean id="CronTriggerBean8" class="org.springframework.scheduling.quartz.CronTriggerBean">
+		<property name="jobDetail" ref="SpringQtzJobMethod8"></property>
+		<property name="cronExpression" value="0 0/10 * * * ?"></property>
+	</bean>
+	
+	
+
+	<!-- ======================== 调度工厂 ======================== -->
+	<bean autowire="no"
+		class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
+		<property name="autoStartup" value="true" />
+		<property name="triggers">
+			<list>
+				
+				<ref local="CronTriggerBean1" />
+				 <ref local="CronTriggerBean2" />
+				<ref local="CronTriggerBean3" />
+				<ref local="CronTriggerBean4" />
+				<ref local="CronTriggerBean5" />
+				<ref local="CronTriggerBean6" />
+				<ref local="CronTriggerBean7" />
+ 				<ref local="CronTriggerBean8" />
+ 				
+			</list>
+		</property>
+		<property name="quartzProperties">
+			<map>
+				<entry key="org.quartz.threadPool.threadCount" value="10" />
+			</map>
+		</property>
+	</bean>
+</beans>

+ 56 - 0
config/job3.xml

@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
+
+<beans>
+
+
+	<bean name="jobstore" class="org.springframework.scheduling.quartz.JobDetailBean">
+		<property name="jobClass">
+
+			<value>com.gyee.timer.WtTargetReport</value>
+		</property>
+		<property name="jobDataAsMap">
+			<map>
+				<entry key="wttragetreportService" value-ref="wttragetreportService" />
+				<entry key="wttragetreportmainService" value-ref="wttragetreportmainService" />
+				<entry key="wttragetreportchartService" value-ref="wttragetreportchartService" />
+				<entry key="wttragetreportfnlylService" value-ref="wttragetreportfnlylService" />
+				<entry key="wttragetreportpartService" value-ref="wttragetreportpartService" />
+				<entry key="wttragetreportkkxfxService" value-ref="wttragetreportkkxfxService" />
+				<entry key="wttragetreportnhydService" value-ref="wttragetreportnhydService" />
+				<entry key="wttragetreportxndjpjService" value-ref="wttragetreportxndjpjService" />
+			</map>
+		</property>
+	</bean>
+	<bean id="cron" class="org.springframework.scheduling.quartz.CronTriggerBean">
+	 	
+		<property name="jobDetail">
+			<ref bean="jobstore" />
+		</property>
+		<property name="startDelay" value="10000" /> 
+		<property name="cronExpression">
+			<value>0 30 7 * * ?</value>
+		</property>
+	</bean>
+
+
+
+	<bean autowire="no"
+		class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
+		<property name="autoStartup" value="true" />
+		<property name="triggers">
+			<list>
+			<ref local="cron" />
+				<!-- <ref local="cron" /> -->
+			</list>
+		</property>
+		<property name="quartzProperties">  
+            <map>  
+                <entry key="org.quartz.threadPool.threadCount" value="10"/>  
+            </map>  
+        </property>  
+	</bean>
+	
+	
+	
+</beans>

+ 30 - 0
config/log4j.properties

@@ -0,0 +1,30 @@
+
+log4j.rootLogger=info, stdout, errorlogfile,infologfile
+
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n
+
+log4j.appender.errorlogfile=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.errorlogfile.File=d\:\\log\\wttargetreport\\error.log
+log4j.appender.errorlogfile.MaxFileSize=512KB
+# Keep three backup files.
+log4j.appender.errorlogfile.MaxBackupIndex=3
+log4j.appender.errorlogfile.Append = true
+log4j.appender.errorlogfile.Threshold = ERROR 
+# Pattern to output: date priority [category] - message
+log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
+log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n %l%n
+
+
+
+log4j.appender.infologfile=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.infologfile.File=d\:\\log\\wttargetreport\\info.log
+log4j.appender.infologfile.MaxFileSize=512KB
+# Keep three backup files.
+log4j.appender.infologfile.MaxBackupIndex=3
+log4j.appender.infologfile.Append = true
+log4j.appender.infologfile.Threshold = info 
+# Pattern to output: date priority [category] - message
+log4j.appender.infologfile.layout=org.apache.log4j.PatternLayout
+log4j.appender.infologfile.layout.ConversionPattern=%d %p [%c] - %m%n %l%n

+ 38 - 0
config/quartz.properties

@@ -0,0 +1,38 @@
+#============================================================================
+# Configure Main Scheduler Properties  
+#============================================================================
+org.quartz.scheduler.instanceName = DefaultQuartzScheduler
+org.quartz.scheduler.instanceId = AUTO
+org.quartz.scheduler.rmi.export = false
+org.quartz.scheduler.rmi.proxy = false
+org.quartz.scheduler.wrapJobExecutionInUserTransaction = false
+
+#============================================================================
+# Configure ThreadPool  
+#============================================================================
+#org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
+org.quartz.threadPool.threadCount = 10
+org.quartz.threadPool.threadPriority = 5
+#org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true
+
+#============================================================================
+# Configure JobStore  
+#============================================================================
+#org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
+#org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
+org.quartz.jobStore.misfireThreshold = 60000
+#org.quartz.jobStore.useProperties = false
+#org.quartz.jobStore.tablePrefix = QRTZ_
+#org.quartz.jobStore.dataSource = myDS
+
+#org.quartz.jobStore.isClustered = true
+#org.quartz.jobStore.clusterCheckinInterval = 15000
+
+#============================================================================
+# Configure DataSource
+#============================================================================
+#org.quartz.dataSource.myDS.driver = com.mysql.jdbc.Driver
+#org.quartz.dataSource.myDS.URL = jdbc:mysql://localhost/test
+#org.quartz.dataSource.myDS.user = root
+#org.quartz.dataSource.myDS.password = root
+#org.quartz.dataSource.myDS.maxConnections =10

+ 8 - 0
config/redis.properties

@@ -0,0 +1,8 @@
+#cluster
+address1=172.168.1.16:7000
+address2=172.168.1.16:7001
+address3=172.168.1.16:7002
+address4=172.168.1.11:7003
+address5=172.168.1.11:7004
+address6=172.168.1.11:7005
+#cluster

+ 32 - 0
config/redis.xml

@@ -0,0 +1,32 @@
+<?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:aop="http://www.springframework.org/schema/aop"
+	xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
+	xmlns:tx="http://www.springframework.org/schema/tx"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans
+	http://www.springframework.org/schema/beans/spring-beans.xsd
+	http://www.springframework.org/schema/context
+	http://www.springframework.org/schema/context/spring-context.xsd
+	http://www.springframework.org/schema/aop 
+	http://www.springframework.org/schema/aop/spring-aop.xsd
+	http://www.springframework.org/schema/tx 
+	http://www.springframework.org/schema/tx/spring-tx.xsd">
+	<!-- 引入配置文件 -->
+	<bean name="genericObjectPoolConfig" class="org.apache.commons.pool2.impl.GenericObjectPoolConfig">
+		<property name="maxWaitMillis" value="-1" />
+		<property name="maxTotal" value="50" />
+		<property name="minIdle" value="1" />
+		<property name="maxIdle" value="40" />
+
+	</bean>
+
+	<bean id="jedisCluster" class="com.gyee.util.JedisClusterFactory">
+		<property name="addressConfig">
+			<value>classpath:redis.properties</value>
+		</property>
+		<property name="addressKeyPrefix" value="" />   <!-- 属性文件里 key的前缀 -->
+		<property name="timeout" value="300000" />
+		<property name="maxRedirections" value="12" />
+		<property name="genericObjectPoolConfig" ref="genericObjectPoolConfig" />
+	</bean>
+</beans>

+ 34 - 0
config/thread.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:p="http://www.springframework.org/schema/p"
+	xmlns:context="http://www.springframework.org/schema/context"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans
+	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+    http://www.springframework.org/schema/context
+    http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+	
+<bean id="threadPoolTaskExecutor"
+
+        class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
+        <!-- 核心线程数,默认为1 -->
+        <property name="corePoolSize" value="120" />
+        <!-- 最大线程数,默认为Integer.MAX_VALUE -->
+        <property name="maxPoolSize" value="1000" />
+        <!-- 队列最大长度,一般需要设置值>=notifyScheduledMainExecutor.maxNum;默认为Integer.MAX_VALUE-->
+        <property name="queueCapacity" value="1000" /> 
+        <!-- 线程池维护线程所允许的空闲时间,默认为60s -->
+        <property name="keepAliveSeconds" value="30" />
+ 
+
+        <!-- 线程池对拒绝任务(无线程可用)的处理策略,目前只支持AbortPolicy、CallerRunsPolicy;默认为后者 -->
+        <property name="rejectedExecutionHandler">
+            <!-- AbortPolicy:直接抛出java.util.concurrent.RejectedExecutionException异常 -->
+            <!-- CallerRunsPolicy:主线程直接执行该任务,执行完之后尝试添加下一个任务到线程池中,可以有效降低向线程池内添加任务的速度 -->
+            <!-- DiscardOldestPolicy:抛弃旧的任务、暂不支持;会导致被丢弃的任务无法再次被执行 -->
+            <!-- DiscardPolicy:抛弃当前任务、暂不支持;会导致被丢弃的任务无法再次被执行 -->
+            <bean class="java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy" />
+        </property>
+    </bean>
+
+</beans>

+ 43 - 0
config/webconfig.properties

@@ -0,0 +1,43 @@
+# temperature ai settings
+
+ip=192.168.1.100
+#ip=172.168.1.7
+port=10010
+time=60
+
+timeout=600000
+
+defaultwp=MHS_FDC
+defaultpj=MHS01_GC
+defaultln=MHS01_XL
+
+clxpoint=NSSFJ_NSA00041,NSSFJ_NSA00038,NSSFJ_NSA00039,NSSFJ_NSA00040
+
+
+beginDate=2017-01-01
+endDate=2017-02-01
+steps=10
+trainnum=10000
+
+
+up82_clx1=40.0,45.0,50.0,30.0
+up82_clx2=52.35,56.3,55.2,39.4
+up82_clx3= 70.0,80.0,83.0,70.0
+
+up82_fdj1=37.76,40.22,24.89,24.89,24.89
+up82_fdj2=40.2,40.72,51.25,51.25,51.25
+up82_fdj3=85.5,85.5,135,135,135
+
+up82_zz1=30,30
+up82_zz2=36.5,42.6
+up82_zz3=63,63
+
+#baseURL=http://192.168.1.102:8011/ts
+baseURL=http://192.168.1.14:8011/ts
+#baseURL=http://localhost:8011/ts
+dsfs_gzurl= http://192.168.1.67:8707/prophet/v1/model/guzhang
+dsfs_gzjzz=0.03
+dsfs_1txnxjurl= http://192.168.1.67:8707/prophet/v1/model/efficiencydecline1
+dsfs_1txnxjjzz=0.1
+dsfs_3txnxjurl= http://192.168.1.67:8707/prophet/v1/model/efficiencydecline2
+dsfs_3txnxjjzz=0.1577

BIN
lib/aopalliance.jar


BIN
lib/asm.jar


BIN
lib/aspectjrt.jar


BIN
lib/aspectjweaver.jar


BIN
lib/bonecp-0.7.1.RELEASE.jar


BIN
lib/cglib-2.1.3.jar


BIN
lib/commons-collections.jar


BIN
lib/commons-io-1.4.jar


BIN
lib/commons-lang-2.1.jar


BIN
lib/commons-lang3-3.4.jar


BIN
lib/commons-logging.jar


BIN
lib/commons-pool2-2.4.2.jar


BIN
lib/concurrentAnnotaion.jar


BIN
lib/dom4j-1.6.1.jar


BIN
lib/edosapi.jar


BIN
lib/fastjson-1.2.17.jar


BIN
lib/fel.jar


BIN
lib/guava-14.0.jar


BIN
lib/gyee.cache.jar


BIN
lib/gyee.framework.jar


BIN
lib/gyee.realtime.jar


BIN
lib/jackson-all-1.6.9.jar


BIN
lib/jedis-2.9.0.jar


BIN
lib/jna.jar


BIN
lib/jstl-1.2.jar


BIN
lib/junit-4.7.jar


BIN
lib/jxl.jar


BIN
lib/log4j-1.2.15.jar


BIN
lib/lombok.jar


BIN
lib/mysql-5.1.7.jar


BIN
lib/ojdbc14.jar


BIN
lib/oracle_jdbc.jar


BIN
lib/poi-3.9.jar


BIN
lib/poi-ooxml-3.9.jar


BIN
lib/poi-ooxml-schemas-3.9-20121203.jar


BIN
lib/quartz-1.6.4.jar


BIN
lib/slf4j-api-1.6.6.jar


BIN
lib/slf4j-log4j12-1.6.6.jar


BIN
lib/spring.aop-3.0.5.RELEASE.jar


BIN
lib/spring.asm-3.0.5.RELEASE.jar


BIN
lib/spring.aspects-3.0.5.RELEASE.jar


BIN
lib/spring.beans-3.0.5.RELEASE.jar


BIN
lib/spring.context-3.0.5.RELEASE.jar


BIN
lib/spring.context.support-3.0.5.RELEASE.jar


BIN
lib/spring.core-3.0.5.RELEASE.jar


BIN
lib/spring.expression-3.0.5.RELEASE.jar


BIN
lib/spring.instrument-3.0.5.RELEASE.jar


BIN
lib/spring.instrument.tomcat-3.0.5.RELEASE.jar


BIN
lib/spring.jdbc-3.0.5.RELEASE.jar


BIN
lib/spring.jms-3.0.5.RELEASE.jar


BIN
lib/spring.orm-3.0.5.RELEASE.jar


BIN
lib/spring.oxm-3.0.5.RELEASE.jar


BIN
lib/spring.test-3.0.5.RELEASE.jar


BIN
lib/spring.transaction-3.0.5.RELEASE.jar


BIN
lib/spring.web-3.0.5.RELEASE.jar


BIN
lib/spring.web.portlet-3.0.5.RELEASE.jar


BIN
lib/spring.web.servlet-3.0.5.RELEASE.jar


BIN
lib/standard-1.1.2.jar


BIN
lib/xmemcached-2.0.0.jar


BIN
lib/xmlbeans-2.3.0.jar


+ 62 - 0
src/MANIFEST.MF

@@ -0,0 +1,62 @@
+Manifest-Version: 1.0
+Class-Path: ./ lib/aopalliance.jar lib/asm.jar lib/aspectjrt.jar 
+ lib/aspectjweaver.jar 
+ lib/bonecp-0.7.1.RELEASE.jar 
+ lib/cglib-2.1.3.jar 
+ lib/commons-collections.jar 
+ lib/commons-io-1.4.jar 
+ lib/commons-lang-2.1.jar 
+ lib/commons-logging.jar 
+ lib/commons-pool2-2.4.2.jar 
+ lib/concurrentAnnotaion.jar 
+ lib/dom4j-1.6.1.jar 
+ lib/edosapi.jar 
+ lib/fel.jar 
+ lib/guava-14.0.jar 
+ lib/gyee.cache.jar 
+ lib/gyee.framework.jar 
+ lib/gyee.realtime.jar 
+ lib/jackson-all-1.6.9.jar 
+ lib/jedis-2.9.0.jar 
+ lib/jna.jar 
+ lib/junit-4.7.jar 
+ lib/jxl.jar 
+ lib/log4j-1.2.15.jar 
+ lib/mysql-5.1.7.jar 
+ lib/ojdbc14.jar 
+ lib/oracle_jdbc.jar 
+ lib/poi-3.9.jar 
+ lib/poi-ooxml-3.9.jar 
+ lib/poi-ooxml-schemas-3.9-20121203.jar 
+ lib/quartz-1.6.4.jar 
+ lib/slf4j-api-1.6.6.jar 
+ lib/slf4j-log4j12-1.6.6.jar 
+ lib/spring.aop-3.0.5.RELEASE.jar 
+ lib/spring.asm-3.0.5.RELEASE.jar 
+ lib/spring.aspects-3.0.5.RELEASE.jar 
+ lib/spring.beans-3.0.5.RELEASE.jar 
+ lib/spring.context-3.0.5.RELEASE.jar 
+ lib/spring.context.support-3.0.5.RELEASE.jar 
+ lib/spring.core-3.0.5.RELEASE.jar 
+ lib/spring.expression-3.0.5.RELEASE.jar 
+ lib/spring.instrument-3.0.5.RELEASE.jar 
+ lib/spring.instrument.tomcat-3.0.5.RELEASE.jar 
+ lib/spring.jdbc-3.0.5.RELEASE.jar 
+ lib/spring.jms-3.0.5.RELEASE.jar 
+ lib/spring.orm-3.0.5.RELEASE.jar 
+ lib/spring.oxm-3.0.5.RELEASE.jar 
+ lib/spring.test-3.0.5.RELEASE.jar 
+ lib/spring.transaction-3.0.5.RELEASE.jar 
+ lib/spring.web-3.0.5.RELEASE.jar 
+ lib/spring.web.portlet-3.0.5.RELEASE.jar 
+ lib/spring.web.servlet-3.0.5.RELEASE.jar 
+ lib/xmemcached-2.0.0.jar 
+ lib/xmlbeans-2.3.0.jar 
+ lib/standard-1.1.2.jar 
+ lib/jstl-1.2.jar 
+ lib/commons-lang3-3.4.jar 
+ lib/fastjson-1.2.17.jar 
+ lib/lombok.jar 
+ eDosProxyApi.dll
+Main-Class: com.gyee.main.StartUp
+

+ 213 - 0
src/com/gyee/Constant.java

@@ -0,0 +1,213 @@
+package com.gyee;
+
+/**
+ * 
+ * 
+ * 项目名称:nxfd 类名称:Constant 类描述: 创建人:石林 创建时间:2014-3-4 上午10:07:03 修改人:shilinno1
+ * 修改时间:2014-3-4 上午10:07:03 修改备注:
+ * 
+ * @version
+ * 
+ */
+public class Constant {
+    /**
+     * EdnaAPI 时间间隔
+     */
+    public static final Long EDNAAPI_PRIED = 30l;
+    public static final Long TOP_PRIED = 1800l;
+
+    public static final String TPOINT_ALL_RFDL = "RFDL"; // 汇总日发电量
+    public static final String TPOINT_ALL_YFDL = "YFDL"; // 汇总月发电量
+    public static final String TPOINT_ALL_NFDL = "NFDL"; // 汇总年发电量
+    public static final String TPOINT_ALL_SJGL = "RPJGL"; // 汇总日实际功率
+    public static final String TPOINT_ALL_PJFS = "RPJFS"; // 汇总日平均风速
+
+    public static final String TPOINT_WP_FGLYC = "FCFGCDQ0001,FCFGCDQ0003,FCFGCDQ0005,FCFGCDQ0007,FCFGCDQ0009,FCFGCDQ0011,FCFGCDQ0013,FCFGCDQ0015";
+    public static final String TPOINT_WP_FGLYC2 = "FCFGCDQ0002,FCFGCDQ0004,FCFGCDQ0006,FCFGCDQ0008,FCFGCDQ0010,FCFGCDQ0012,FCFGCDQ0014,FCFGCDQ0016";
+    public static final String TPOINT_WP_FGLYC24 = "FCFGCDQ0004,FCFGCDQ0008,FCFGCDQ0012,FCFGCDQ0016";
+    public static final String ycPoints2 = "FCFGCDQ0001,FCFGCDQ0002,FCFGCDQ0003,FCFGCDQ0004,FCFGCDQ0005,FCFGCDQ0006,FCFGCDQ0007,FCFGCDQ0008,FCFGCDQ0009,FCFGCDQ0010,FCFGCDQ0011,FCFGCDQ0012,FCFGCDQ0013,FCFGCDQ0014,FCFGCDQ0015,FCFGCDQ0016";
+    public static final String TPOINT_WP_YCGL = "RPJGL"; // 风场预测功率短期次天00:00:00
+    public static final String TPOINT_WP_PJFS = "RPJFS"; // 电场日平均风速
+
+    public static final String TPOINT_WP_SWDL = "SWDLB"; // 风场上网电量
+    public static final String TPOINT_WP_GWDL = "GWGWB"; // 风场购网电量
+    public static final String TPOINT_WP_NWGWDL = "NWGWB"; // 农网购网电量
+    /**
+     * 空气温度
+     */
+    public static final String TPOINT_WP_FCCFTWD = "FCCFTWD";// 温度
+
+    public static int WAITING_STATUS = 0;// 待机
+    public static int RUN_STATUS = 1;// 并网
+    public static int FAULT_STATUS = 2;// 故障停机
+    public static int INTERRUPTION_STATUS = 3;// 通讯中断
+    public static int MAINTENANCE_STATUS = 4;// 维护停机
+    public static String FAULT_NAME = "故障";
+    public static String MAINTENANCE_NAME = "维护";
+    public static String WAITING_NAME = "待机";
+    public static String RUN_NAME = "运行";
+    public static String INTERRUPTION_NAME = "离线";
+
+    public static final String TPOINT_WP_SJGL = "SSZGL"; // 日实际功率
+    public static final String TPOINT_WP_SFDL = "SFDL";// 总发电量(升压站)
+    public static final String TPOINT_WP_SSFS = "SSFS"; // 实时平均风速
+    public static final String TPOINT_WP_RFDL = "RFDLB"; // 日发电量
+    public static final String TPOINT_WP_YFDL = "YFDLB"; // 月发电量
+    public static final String TPOINT_WP_NFDL = "NFDLB"; // 年发电量
+
+    public static final String TPOINT_WT_RFDL = "RFDL";// 风机日发电量与SCADA日风场发电量
+    public static final String TPOINT_WT_DCRFDL = "AI064";// 导出单机发电量
+    public static final String TPOINT_WT_YFDL = "YFDL";// 风机月发电量
+    public static final String TPOINT_WT_NFDL = "NFDL";// 风机年发电量
+
+    public static final String TPOINT_WT_RFDL2 = "RFDLREAD";// 逆变器日发电量
+
+    public static final String TPOINT_WT_XDTS = "XDTS";// 限电台数
+    public static final String TPOINT_WT_YXTS = "YXTS";// 运行台数
+    public static final String TPOINT_WT_DJTS = "DJTS"; // 待机台数
+    public static final String TPOINT_WT_WHTJ = "WHTJ";// 维护台数
+    public static final String TPOINT_WT_GZTJ = "GZTJ";// 故障台数
+    public static final String TPOINT_WT_TXZD = "TXZD";// 离线台数
+
+    public static final String TPOINT_WT_U1YZDL = "AI061";// U1项绕组电流
+    public static final String TPOINT_WT_U2YZDL = "AI062";// U2项绕组电流
+    public static final String TPOINT_WT_U3YZDL = "AI063";// U3项绕组电流
+    public static final String TPOINT_WT_U1YZDY = "AI058";// U1项绕组电压
+    public static final String TPOINT_WT_U2YZDY = "AI059";// U2项绕组电压
+    public static final String TPOINT_WT_U3YZDY = "AI060";// U3项绕组电压
+    public static final String TPOINT_WT_FDJZS = "AI128";// 发电机转速
+    public static final String TPOINT_WT_U1YZWD = "AI045";// U1绕组温度
+    public static final String TPOINT_WT_V1YZWD = "AI047";// V1绕组温度
+    public static final String TPOINT_WT_W1YZWD = "AI049";// W1绕组温度
+    public static final String TPOINT_WT_YLZS = "AI012";// 叶轮转速
+    public static final String TPOINT_WT_FJJJJ = "AI085";// 风机浆距角
+	public static final String TPOINT_WT_DWZWD = "AI038";// 齿轮箱轴1温度
+    public static final String TPOINT_WT_GWZWD = "AI039";// 齿轮箱轴2温度
+    public static final String TPOINT_WT_CLXWD = "AI041";// 齿轮箱油温
+    public static final String TPOINT_WT_BJJD1 = "AI076";// 变桨角度1
+    public static final String TPOINT_WT_PHWZ = "AI034";// 偏航位置
+    public static final String TPOINT_WT_PJFS = "RPJFS"; // 日平均风速
+    public static final String TPOINT_WT_FJGL = "AI130";// 风机功率
+    public static final String TPOINT_WT_PJGL = "RPJGL";// 风机平均功率
+    public static final String TPOINT_WT_GLYS = "AI067";// 功率因数
+    public static final String TPOINT_WT_JCWWD = "AI056";// 机舱外温度
+    public static final String TPOINT_WT_JCWD = "AI057";// 机舱温度
+    public static final String TPOINT_WT_TDGWD = "AI069";// 塔底柜温度
+    public static final String TPOINT_WT_JCGWD = "AI069";// 机舱柜温度
+    public static final String TPOINT_WT_FJFX = "AI008";// 风机风向
+    public static final String TPOINT_WT_DFJD = "AI036";// 对风角度
+    public static final String TPOINT_WT_FJPL = "AI068";// 风机频率
+    public static final String TPOINT_WT_WGGL = "AI131";// 无功功率
+    public static final String TPOINT_WT_FJKYL = "AI001";// 风机可用率
+    public static final String TPOINT_WT_FJZSXZ = "AI051";// 风机转速限值
+    public static final String TPOINT_WT_FJSSFS = "AI022";// 风机实时风速
+
+    public static final String TPOINT_WT_FDJZCAWD = "AI052";// 发电机轴承A温度
+    public static final String TPOINT_WT_FDJZCBWD = "AI053";// 发电机轴承B温度
+
+    public static final String TPOINT_WT_FJGLKZXZ = "AI426";// UP97 取值 功率控制限值
+    public static final String TPOINT_WT_LLGL = "BZGL";// 风机理论功率
+    public static final String TPOINT_WT_YFGL = "ZSGL";// 风机应发功率
+    public static final String TPOINT_WT_RFDLBZ = "RFDLZS";// 日理论发电量
+
+    // public static final String TPOINT_WT_RFDLBZ = "RFDLLL";//日理论发电量
+
+    public static final String TPOINT_WT_RFDLZS = "RFDLZS";// 日应发电量
+
+    public static final String TPOINT_WT_NBQJLDY = "AIG061";// 逆变器交流电压
+    public static final String TPOINT_WT_NBQJLDL = "AIG060";// 逆变器交流电流
+    public static final String TPOINT_WT_NBQZLDY = "AIG081";// 逆变器直流电压
+    public static final String TPOINT_WT_NBQZLDL = "AIG078";// 逆变器直流电流
+
+    public static final String TPOINT_WT_NBQPL = "AIG073";// 逆变器频率
+    public static final String TPOINT_WT_NBQGLYSSZ = "AIG069";// 功率因数设置
+    public static final String TPOINT_WT_NBQGLYSSZ2 = "AIG104";// 功率因数设置
+    public static final String TPOINT_WT_NBQZFDL = "AIG064";// 逆变相总发电量
+    public static final String TPOINT_WT_NBQKQWD = "AIG071";// 逆变器空气温度
+    public static final String TPOINT_WT_NBQXL = "AIG072";// 逆变器效率
+
+    public static final String RFDLD = "RFDLD"; // 日理论发电量
+    public static final String RFDLE = "RFDLE"; // 日应发发电量
+    public static final String FJZT = "FJZT"; // 风场状态
+
+    public static final String ZBZGL = "ZBZGL";// 理论功率
+    public static final String ZSGLZZSGL = "ZZSGL";// 应发功率
+
+    public static final String RLZSSDL = "RLZSSDL"; // 日场内受累检修
+    public static final String RSZSSDL = "RSZSSDL"; // 日场内受累故障
+    public static final String RWZSSDL = "RWZSSDL"; // 日场外受累电网
+    public static final String RTZSSDL = "RTZSSDL"; // 日场外受累天气
+
+    public static final String YLZSSDL = "YLZSSDL"; // 月场内受累检修
+    public static final String YSZSSDL = "YSZSSDL"; // 月场内受累故障
+    public static final String YWZSSDL = "YWZSSDL"; // 月场外受累电网
+    public static final String YTZSSDL = "YTZSSDL"; // 月场外受累天气
+
+    public static final String NLZSSDL = "NLZSSDL"; // 年场内受累检修
+    public static final String NSZSSDL = "NSZSSDL"; // 年场内受累故障
+    public static final String NWZSSDL = "NWZSSDL"; // 年场外受累电网
+    public static final String NTZSSDL = "NTZSSDL"; // 年场外受累天气
+
+    public static final String RQFSSDL = "RQFSSDL"; // 日欠发损失电量
+    public static final String RGZSSDL = "RGZSSDL"; // 日故障损失电量
+    public static final String RJXSSDL = "RJXSSDL"; // 日检修损失电量
+    public static final String RXDSSDL = "RXDSSDL"; // 日限电损失电量
+
+    public static final String YQFSSDL = "YQFSSDL"; // 月欠发损失电量
+    public static final String YGZSSDL = "YGZSSDL"; // 月故障损失电量
+    public static final String YJXSSDL = "YJXSSDL"; // 月检修损失电量
+    public static final String YXDSSDL = "YXDSSDL"; // 月限电损失电量
+
+    public static final String NQFSSDL = "NQFSSDL"; // 年欠发损失电量
+    public static final String NGZSSDL = "NGZSSDL"; // 年故障损失电量
+    public static final String NJXSSDL = "NJXSSDL"; // 年检修损失电量
+    public static final String NXDSSDL = "NXDSSDL"; // 年限电损失电量
+
+    public static final String FCCFTFS10 = "FCCFTFS10";// 测风塔10米风速
+    public static final String FCCFTFS30 = "FCCFTFS30";// 测风塔30米风速
+    public static final String FCCFTFS50 = "FCCFTFS50";// 测风塔50米风速
+    public static final String FCCFTFS60 = "FCCFTFS60";// 测风塔60米风速
+    public static final String FCCFTFS70 = "FCCFTFS70";// 测风塔70米风速
+    public static final String FCCFTFS80 = "FCCFTFS80";// 测风塔80米风速
+
+    public static final String FCCFTFX10 = "FCCFTFX10";// 测风塔10米风向
+    public static final String FCCFTFX30 = "FCCFTFX30";// 测风塔30米风向
+    public static final String FCCFTFX50 = "FCCFTFX50";// 测风塔50米风向
+    public static final String FCCFTFX60 = "FCCFTFX60";// 测风塔60米风向
+    public static final String FCCFTFX70 = "FCCFTFX70";// 测风塔70米风向
+    public static final String FCCFTFX80 = "FCCFTFX80";// 测风塔80米风向
+
+    public static final String FCCFTWD = "FCCFTWD";// 测风塔温度
+    public static final String FCCFTSD = "FCCFTSD";// 测风塔湿度
+    public static final String FCCFTYQ = "FCCFTYQ";// 测风塔压强
+    
+    public static final String FJJKJL = "JKJL001";//风机健康状态值
+    public static final String CLXJKJL = "JKJL002";//齿轮箱健康状态值
+    public static final String FDJJKJL = "JKJL003";//发电机健康状态值
+    public static final String BJJKJL = "JKJL004";//变桨健康值
+    public static final String ZKJKJL = "JKJL005";//主控健康状态值
+    
+    public static final String FJLHSL = "JKSLLH001";//风机良好健康状态数量
+    public static final String FJZCSL = "JKSLHG001";//风机正常健康状态数量
+    public static final String FJZYSL = "JKSLZY001";//风机注意健康状态数量
+    public static final String FJYZSL = "JKSLYZ001";//风机严重健康状态数量
+    
+    public static final String YCFJJKZT4HOUR = "JKYC001";//风机健康状态未来4小时
+    public static final String YCFJJKZT1DAY = "JKYC006";//风机健康状态未来1天
+    public static final String YCFJJKZT3DAY = "JKYC011";//风机健康状态未来3天
+    public static final String YCFJJKZT7DAY = "JKYC016";//风机健康状态未来7天
+    public static final String YCFJJKZT1MONTH = "JKYC021";//风机健康状态未来1个月
+    
+    public static final String FJJKZZ = "JKZT100";//风机健康总状态得分
+    
+    public static final String FJJKZT = "JKZT001";//风机健康状态
+    public static final String CLXJKZT = "JKZT002";//齿轮箱健康状态
+    public static final String FDJJKZT = "JKZT003";//发电机健康状态
+    public static final String BJJKZT = "JKZT004";//变桨健康
+    public static final String ZKJKZT = "JKZT005";//主控健康状态
+    
+    
+    public static final String D4_GZYC = "D4_GZYC";//第四范式故障预测
+    public static final String D4_1TXNXJ= "D4_1TXNXJ";//第四范式1天性能下降
+    public static final String D4_3TXNXJ = "D4_3TXNXJ";//第四范式3天性能下降
+}

+ 342 - 0
src/com/gyee/ConstantTR.java

@@ -0,0 +1,342 @@
+package com.gyee;
+
+/**
+ * 
+ * 
+ * 项目名称:nxfd 类名称:Constant 类描述: 创建人:石林 创建时间:2014-3-4 上午10:07:03 修改人:shilinno1
+ * 修改时间:2014-3-4 上午10:07:03 修改备注:
+ * 
+ * @version
+ * 
+ */
+public class ConstantTR {
+
+
+
+
+	public static final String QSZSWDL = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0136"; // 全省上网电量
+	public static final String AQTS = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0220"; // 全省安全天数
+	public static final String QSZZGL = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0135"; // 全省总功率
+	public static final String QSZRFDL = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0088"; // 全省日累计发电量
+	public static final String QSZYFDL = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0146"; // 全省月累计发电量
+	public static final String QSZNFDL = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0037"; // 全省年累计发电量
+
+	public static final String FCRFDL = "JSFW.NX_GD_FDC_XX_XX_XXX_XXX_CI0088"; // 风场日累计发电量
+	public static final String FCYFDL = "JSFW.NX_GD_FDC_XX_XX_XXX_XXX_CI0146"; // 风场月累计发电量
+	public static final String FCNFDL = "JSFW.NX_GD_FDC_XX_XX_XXX_XXX_CI0037"; // 风场年累计发电量
+	public static final String GFRFDL = "JSFW.NX_GD_GDC_XX_XX_XXX_XXX_CI0088"; // 光伏日累计发电量
+	public static final String GFYFDL = "JSFW.NX_GD_GDC_XX_XX_XXX_XXX_CI0146"; // 光伏月累计发电量
+	public static final String GFNFDL = "JSFW.NX_GD_GDC_XX_XX_XXX_XXX_CI0037"; // 光伏年累计发电量
+	public static final String JPEYHT = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0216"; // 减排二氧化碳
+	public static final String JYBM = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0217"; // 节约标煤
+	public static final String JPEYHL = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0218"; // 减排二氧化硫
+	public static final String JYS = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0219"; // 节约水
+	public static final String FCSWDL = "JSFW.NX_GD_FDC_XX_XX_XXX_XXX_CI0136"; // 风场上网电量
+	public static final String FCZGL = "JSFW.NX_GD_FDC_XX_XX_XXX_XXX_CI0135"; // 风场总功率
+	public static final String FCFS = "JSFW.NX_GD_FDC_XX_XX_XXX_XXX_CI0134"; // 风场风速
+	public static final String GFSWDL = "JSFW.NX_GD_GDC_XX_XX_XXX_XXX_CI0136"; // 光伏上网电量
+	public static final String GFZGL = "JSFW.NX_GD_GDC_XX_XX_XXX_XXX_CI0135"; // 光伏总功率
+	public static final String FCQFDL = "JSFW.NX_GD_FDC_XX_XX_XXX_XXX_CI0110"; // 风电日欠发损失电
+
+	/******************************************** 麻黄山风电场 *****************************************/
+	public static final String JSFW_MHRFDLB = "MHSFCJSFW.NX_GD_MHSF_XX_XX_XXX_XXX_CI0088"; // 麻黄山日发电量
+	public static final String JSFW_MHYFDLB = "MHSFCJSFW.NX_GD_MHSF_XX_XX_XXX_XXX_CI0146"; // 麻黄山月发电量
+	public static final String JSFW_MHNFDLB = "MHSFCJSFW.NX_GD_MHSF_XX_XX_XXX_XXX_CI0037"; // 麻黄山年发电量
+	public static final String JSFW_MHSWDLB = "MHSFCJSFW.NX_GD_MHSF_XX_XX_XXX_XXX_CI0136"; // 麻黄山上网电量
+	public static final String JSFW_MHSSZGL = "MHSFCJSFW.NX_GD_MHSF_XX_XX_XXX_XXX_CI0135"; // 麻黄山总功率
+	public static final String JSFW_MHSSFS = "MHSFCJSFW.NX_GD_MHSF_XX_XX_XXX_XXX_CI0134"; // 麻黄山风速
+	public static final String JSFW_MHRQFSS = "MHSFCJSFW.NX_GD_MHSF_XX_XX_XXX_XXX_CI0110"; // 麻黄山日欠发损失电量
+	public static final String MHSFGL_AI000305 = "MHSFGL.NX_GD_MHSF_YC_P1_L1_001_FGLTEM"; // 麻黄山测风塔温度
+	public static final String MHSFGL_AI000306 = "MHSFGL.NX_GD_MHSF_YC_P1_L1_001_FGLHUM"; // 麻黄山测风塔湿度
+	public static final String MHSFGL_AI000307 = "MHSFGL.NX_GD_MHSF_YC_P1_L1_001_FGLPRE"; // 麻黄山测风塔压强
+	public static final String MHSDQ_DI000006 = "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_DI0006"; // 111断路器位置
+	public static final String MHSDQ_DI000141 = "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_DI0141"; // 301断路器合闸位置
+	public static final String MHSDQ_DI000363 = "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_DI0363"; // [风场Ⅰ线9611CS]断路器位置
+	public static final String MHSDQ_DI000423 = "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_DI0423"; // [风场Ⅱ线9611CS]断路器位置
+	public static final String MHSDQ_DI000483 = "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_DI0483"; // [风场Ⅲ线9611CS]断路器位置
+
+	public static final String MHSDQ_101DLQ = "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_DI0006"; // 101断路器位置
+	public static final String MHSDQ_102DLQ = "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_DI0006"; // 102断路器位置
+	public static final String MHSDQ_302DLQ = "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_DI0141"; // 302断路器合闸位置
+	public static final String MHSDQ_321DLQ = "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_DI0984"; // 321断路器合闸位置
+
+	public static final String MHSFGL_AI000314 = "MHSFGL.NX_GD_MHSF_YC_P1_L1_001_FGLS70";// 麻黄山70m风速
+	public static final String MHSFGL_AI000315 = "MHSFGL.NX_GD_MHSF_YC_P1_L1_001_FGLD70";// 麻黄山70m风向
+	/******************************************** 麻黄山风电场 *****************************************/
+
+	/******************************************** 石板泉风电场 *****************************************/
+	public static final String JSFW_SBRFDLB = "SBQFCJSFW.NX_GD_SBQF_XX_XX_XXX_XXX_CI0088"; // 石板泉日发电量
+	public static final String JSFW_SBYFDLB = "SBQFCJSFW.NX_GD_SBQF_XX_XX_XXX_XXX_CI0146"; // 石板泉月发电量
+	public static final String JSFW_SBNFDLB = "SBQFCJSFW.NX_GD_SBQF_XX_XX_XXX_XXX_CI0037"; // 石板泉年发电量
+	public static final String JSFW_SBSWDLB = "SBQFCJSFW.NX_GD_SBQF_XX_XX_XXX_XXX_CI0136"; // 石板泉上网电量
+	public static final String JSFW_SBSSZGL = "SBQFCJSFW.NX_GD_SBQF_XX_XX_XXX_XXX_CI0135"; // 石板泉总功率
+	public static final String JSFW_SBSSFS = "SBQFCJSFW.NX_GD_SBQF_XX_XX_XXX_XXX_CI0134"; // 石板泉风速
+	public static final String JSFW_SBRQFSS = "SBQFCJSFW.NX_GD_SBQF_XX_XX_XXX_XXX_CI0110"; // 石板泉日欠发损失电量
+	public static final String SBQFGL_AI000305 = "SBQFGL.NX_GD_SBQF_YC_P1_L1_001_FGLTEM"; // 石板泉测风塔温度
+	public static final String SBQFGL_AI000319 = "SBQFGL.NX_GD_SBQF_YC_P1_L1_001_FGLHUM"; // 石板泉测风塔湿度
+	public static final String SBQFGL_AI000320 = "SBQFGL.NX_GD_SBQF_YC_P1_L1_001_FGLPRE"; // 石板泉测风塔压强
+
+	public static final String SBQDQ_DI000001 = "SBQDQ.NX_GD_SBQF_DQ_P1_L1_001_DI0001"; // 1#进线路测控装置断路器111
+	public static final String SBQDQ_DI000161 = "SBQDQ.NX_GD_SBQF_DQ_P1_L1_001_DI0161"; // 1号主变测控装置高压侧断路器101
+	public static final String SBQDQ_DI000175 = "SBQDQ.NX_GD_SBQF_DQ_P1_L1_001_DI0175"; // 1号主变测控装置低压侧断路器301
+	public static final String SBQDQ_DI000966 = "SBQDQ.NX_GD_SBQF_DQ_P1_L1_001_DI0966"; // 35kV1A出线保护断路器312
+	public static final String SBQDQ_DI001030 = "SBQDQ.NX_GD_SBQF_DQ_P1_L1_001_DI1030"; // 35kV1B出线保护断路器313
+	public static final String SBQDQ_DI001158 = "SBQDQ.NX_GD_SBQF_DQ_P1_L1_001_DI1158"; // 35kV1C出线保护断路器314
+
+	public static final String SBQDQ_DI000081 = "SBQDQ.NX_GD_SBQF_DQ_P1_L1_001_DI0081"; // 2#进线路测控装置断路器121合闸
+	public static final String SBQDQ_DI000241 = "SBQDQ.NX_GD_SBQF_DQ_P1_L1_001_DI0241"; // 2号主变测控装置高压侧断路器102合闸
+	public static final String SBQDQ_DI000255 = "SBQDQ.NX_GD_SBQF_DQ_P1_L1_001_DI0255"; // 2号主变测控装置低压侧断路器302合位
+	public static final String SBQDQ_DI001419 = "SBQDQ.NX_GD_SBQF_DQ_P1_L1_001_DI1419"; // 35kV2A出线保护321断路器合位
+	public static final String SBQDQ_DI001483 = "SBQDQ.NX_GD_SBQF_DQ_P1_L1_001_DI1483"; // 35kV2B出线保护322断路器合位
+	public static final String SBQDQ_DI001611 = "SBQDQ.NX_GD_SBQF_DQ_P1_L1_001_DI1611"; // 35kV2C出线保护323断路器合位
+
+	public static final String SBQDQ_DI002536 = "SBQDQ.NX_GD_SBQF_DQ_P1_L1_001_DI2569"; // 35kV1A出线保护断路器331
+	public static final String SBQDQ_DI002600 = "SBQDQ.NX_GD_SBQF_DQ_P1_L1_001_DI2633"; // 35kV1B出线保护断路器332
+	public static final String SBQDQ_DI002915 = "SBQDQ.NX_GD_SBQF_DQ_P1_L1_001_DI2948"; // 2#进线路测控装置断路器151合闸
+	public static final String SBQDQ_DI000425 = "SBQDQ.NX_GD_SBQF_DQ_P1_L1_001_DI0425"; // 2号主变测控装置高压侧断路器105合闸
+	// public static final String SBQDQ_DI000255="SBQDQ_DI000255";
+	// //2号主变测控装置低压侧断路器305合位
+	public static final String SBQDQ_DI003272 = "SBQDQ.NX_GD_SBQF_DQ_P1_L1_001_DI3305"; // 35kV2A出线保护351断路器合位
+	public static final String SBQDQ_DI003336 = "SBQDQ.NX_GD_SBQF_DQ_P1_L1_001_DI3369"; // 35kV2B出线保护352断路器合位
+	public static final String SBQDQ_DI003400 = "SBQDQ.NX_GD_SBQF_DQ_P1_L1_001_DI3433"; // 35kV2C出线保护353断路器合位
+
+	public static final String SBQFGL_AI000327 = "SBQFGL.NX_GD_SBQF_YC_P1_L1_001_FGLS70";// 石板泉70m风速
+	public static final String SBQFGL_AI000328 = "SBQFGL.NX_GD_SBQF_YC_P1_L1_001_FGLD70";// 石板泉70m风向
+	/******************************************* 石板泉风电场 *****************************************/
+
+	/******************************************** 青山风电场 *****************************************/
+
+	public static final String QSRFDL = "QSFCJSFW.NX_GD_QSF_XX_XX_XXX_XXX_CI0088"; // 青山日发电量
+	public static final String QSYFDL = "QSFCJSFW.NX_GD_QSF_XX_XX_XXX_XXX_CI0146"; // 青山月发电量
+	public static final String QSNFDL = "QSFCJSFW.NX_GD_QSF_XX_XX_XXX_XXX_CI0037"; // 青山年发电量
+	public static final String QSSWDL = "QSFCJSFW.NX_GD_QSF_XX_XX_XXX_XXX_CI0136"; // 青山上网电量
+	public static final String QSZGL = "QSFCJSFW.NX_GD_QSF_XX_XX_XXX_XXX_CI0135"; // 青山总功率
+	public static final String QSFS = "QSFCJSFW.NX_GD_QSF_XX_XX_XXX_XXX_CI0134"; // 青山风速
+	public static final String QSQFDL = "QSFCJSFW.NX_GD_QSF_XX_XX_XXX_XXX_CI0110"; // 青山日欠发损失电量
+	public static final String QSWD = "QSFGL.NX_GD_QSF_YC_P1_L1_001_CFT019"; // 青山测风塔温度
+	// public static final String QSWD = "QSFGL_AI000323"; // 青山测风塔湿度
+	public static final String QSFGL_AI000324 = "QSFGL.NX_GD_QSF_YC_P1_L1_001_CFT020"; // 青山测风塔压强
+	public static final String QSPJFS = "QSFCJSFW.NX_GD_QSF_XX_XX_XXX_XXX_CI0134"; // 青山平均风速
+
+	public static final String QSDQ_DI000377 = "QSDQ.NX_GD_QSF_DQ_P1_L1_001_DI0377"; // 110kV线路测控隔刀111-1分位
+	public static final String QSDQ_DI000530 = "QSDQ.NX_GD_QSF_DQ_P1_L1_001_DI0530"; // 1#主变测控断路器101分
+	public static final String QSDQ_DI000858 = "QSDQ.NX_GD_QSF_DQ_P1_L1_001_DI0858"; // 2#主变测控断路器102
+	public static final String QSDQ_DI000193 = "QSDQ.NX_GD_QSF_DQ_P1_L1_001_DI0193"; // 35kV公用测控1#主变35KV手车分
+	public static final String QSDQ_DI000195 = "QSDQ.NX_GD_QSF_DQ_P1_L1_001_DI0195"; // 35kV公用测控2#主变35KV手车分
+	public static final String QSDQ_DI001186 = "QSDQ.NX_GD_QSF_DQ_P1_L1_001_DI1186"; // 35kVI段集线线路1A311断路器
+	public static final String QSDQ_DI001232 = "QSDQ.NX_GD_QSF_DQ_P1_L1_001_DI1232"; // 35kVI段集线线路1B312断路器
+	public static final String QSDQ_DI001278 = "QSDQ.NX_GD_QSF_DQ_P1_L1_001_DI1278"; // 35kVI段集线线路1C313断路器
+	public static final String QSDQ_DI001416 = "QSDQ.NX_GD_QSF_DQ_P1_L1_001_DI1416"; // 35kV分段300断路器
+	public static final String QSDQ_DI001462 = "QSDQ.NX_GD_QSF_DQ_P1_L1_001_DI1462"; // 35kVII段集线线路2A323断路器
+	public static final String QSDQ_DI001508 = "QSDQ.NX_GD_QSF_DQ_P1_L1_001_DI1508"; // 35kVII段集线线路2B324断路器
+	public static final String QSDQ_DI001554 = "QSDQ.NX_GD_QSF_DQ_P1_L1_001_DI1554"; // 35kVII段集线线路2C325断路器
+
+	public static final String QSFGL_AI000313 = "QSFGL.NX_GD_QSF_YC_P1_L1_001_CFT009";// 青山70m风速
+	public static final String QSFGL_AI000314 = "QSFGL.NX_GD_QSF_YC_P1_L1_001_CFT010";// 青山70m风向
+	/******************************************** 青山风电场 *****************************************/
+
+	/******************************************** 牛首山风电场 *****************************************/
+	public static final String NSSRFDL = "NSSFCJSFW.NX_GD_NSSF_XX_XX_XXX_XXX_CI0088"; // 牛首山日发电量
+	public static final String NSSYFDL = "NSSFCJSFW.NX_GD_NSSF_XX_XX_XXX_XXX_CI0146"; // 牛首山月发电量
+	public static final String NSSNFDL = "NSSFCJSFW.NX_GD_NSSF_XX_XX_XXX_XXX_CI0037"; // 牛首山年发电量
+	public static final String NSSSWDL = "NSSFCJSFW.NX_GD_NSSF_XX_XX_XXX_XXX_CI0136"; // 牛首山上网电量
+	public static final String NSSZGL = "NSSFCJSFW.NX_GD_NSSF_XX_XX_XXX_XXX_CI0135"; // 牛首山总功率
+	public static final String NSSFS = "NSSFCJSFW.NX_GD_NSSF_XX_XX_XXX_XXX_CI0134"; // 牛首山风速
+	public static final String NSSQFDL = "NSSFCJSFW.NX_GD_NSSF_XX_XX_XXX_XXX_CI0110"; // 牛首山日欠发损失电量
+	public static final String NSSWD = "NSSFGL.NX_GD_NSSF_YC_P1_L1_001_FGLTEM"; // 牛首山测风塔温度
+	public static final String NSSFGL_AI000306 = "NSSFGL.NX_GD_NSSF_YC_P1_L1_001_FGLHUM"; // 牛首山测风塔湿度
+	public static final String NSSFGL_AI000307 = "NSSFGL.NX_GD_NSSF_YC_P1_L1_001_FGLPRE"; // 牛首山测风塔压强
+	public static final String NSSPJFS = "NSSFCJSFW.NX_GD_NSSF_XX_XX_XXX_XXX_CI0134"; // 牛首山平均风速
+
+	public static final String NSSZ111 = "NSSDQ.NX_GD_NSSF_DQ_P1_L1_001_DI0003"; // 首风II甲线111开关位置
+	public static final String NSSZ101 = "NSSDQ.NX_GD_NSSF_DQ_P1_L1_001_DI0019"; // 101开关位置
+	public static final String NSSZ102 = "NSSDQ.NX_GD_NSSF_DQ_P1_L1_001_DI0034"; // 102开关位置
+	public static final String NSSZ301 = "NSSDQ.NX_GD_NSSF_DQ_P1_L1_001_DI0025"; // 301开关位置
+	public static final String NSSZ302 = "NSSDQ.NX_GD_NSSF_DQ_P1_L1_001_DI0040"; // 302开关位置
+	public static final String NSSZ312 = "NSSDQ.NX_GD_NSSF_DQ_P1_L1_001_DI0070"; // 集电线路一312开关位置
+	public static final String NSSZ313 = "NSSDQ.NX_GD_NSSF_DQ_P1_L1_001_DI0076"; // 集电线路二313开关位置
+	public static final String NSSZ314 = "NSSDQ.NX_GD_NSSF_DQ_P1_L1_001_DI0082"; // 集电线路三314开关位置
+	public static final String NSSZ321 = "NSSDQ.NX_GD_NSSF_DQ_P1_L1_001_DI0098"; // 集电线路四321开关位置
+	public static final String NSSZ322 = "NSSDQ.NX_GD_NSSF_DQ_P1_L1_001_DI0104"; // 集电线路五322开关位置
+	public static final String NSSZ323 = "NSSDQ.NX_GD_NSSF_DQ_P1_L1_001_DI0110"; // 集电线路六323开关位置
+	public static final String NSSZ121 = "NSSDQ.NX_GD_NSSF_DQ_P1_L1_001_DI0011"; // 首风II乙线121开关位置
+	public static final String NSSZ103 = "NSSDQ.NX_GD_NSSF_DQ_P1_L1_001_DI0049"; // 103开关位置
+	public static final String NSSZ303 = "NSSDQ.NX_GD_NSSF_DQ_P1_L1_001_DI0055"; // 303开关位置
+	public static final String NSSZ351 = "NSSDQ.NX_GD_NSSF_DQ_P1_L1_001_DI0126"; // 集电线路七351开关位置
+	public static final String NSSZ353 = "NSSDQ.NX_GD_NSSF_DQ_P1_L1_001_DI0132"; // 集电线路八353开关位置
+	public static final String NSSZ354 = "NSSDQ.NX_GD_NSSF_DQ_P1_L1_001_DI0138"; // 集电线路九354开关位置
+
+	public static final String NSSDQ_AI000703 = "NSSFGL.NX_GD_NSSF_YC_P1_L1_001_FGLS70";// 牛首山70m风速
+	public static final String NSSDQ_AI000704 = "NSSFGL.NX_GD_NSSF_YC_P1_L1_001_FGLD70";// 牛首山70m风向
+	/******************************************** 牛首山风电场 *****************************************/
+
+	/******************************************** 大武口风电场 *****************************************/
+	public static final String DWKRFDL = "DWKGDCJSFW.NX_GD_DWKG_XX_XX_XXX_XXX_CI0088"; // 大武口日发电量
+	public static final String DWKYFDL = "DWKGDCJSFW.NX_GD_DWKG_XX_XX_XXX_XXX_CI0146"; // 大武口月发电量
+	public static final String DWKNFDL = "DWKGDCJSFW.NX_GD_DWKG_XX_XX_XXX_XXX_CI0037"; // 大武口年发电量
+	public static final String DWKSWDL = "DWKGDCJSFW.NX_GD_DWKG_XX_XX_XXX_XXX_CI0136"; // 大武口上网电量
+	public static final String DWKZGL = "DWKGDCJSFW.NX_GD_DWKG_XX_XX_XXX_XXX_CI0135"; // 大武口总功率
+	public static final String DWKFS = "DWKGF.NX_GD_DWKG_GF_P1_L2_010_AI0672";// "JSFW_DWSSFS";
+																				// //
+	// 大武口日照强度
+	public static final String DWKWD = "DWKGGL.NX_GD_DWKG_YC_P1_L1_001_QXZ004"; // 大武口测风塔温度
+	public static final String DWKPJFS = "DWKGDCJSFW.NX_GD_DWKG_XX_XX_XXX_XXX_CI0134"; // 大武口平均风速
+
+	public static final String DWKZ310 = "DWKDQ.NX_GD_DWKG_DQ_P1_L1_001_DI0024"; // 35kV出线柜310开关位置
+	public static final String DWKZ314 = "DWKDQ.NX_GD_DWKG_DQ_P1_L1_001_DI0027"; // 35kV#1光伏进线柜314开关位置
+	public static final String DWKZ315 = "DWKDQ.NX_GD_DWKG_DQ_P1_L1_001_DI0028"; // 35kV#2光伏进线柜315开关位置
+	/******************************************** 大武口风电场 *****************************************/
+
+	/******************************************** 平罗电场 *****************************************/
+	public static final String PLRFDL = "PLGDCJSFW.NX_GD_PLG_XX_XX_XXX_XXX_CI0088"; // 平罗日发电量
+	public static final String PLYFDL = "PLGDCJSFW.NX_GD_PLG_XX_XX_XXX_XXX_CI0146"; // 平罗月发电量
+	public static final String PLNFDL = "PLGDCJSFW.NX_GD_PLG_XX_XX_XXX_XXX_CI0037"; // 平罗年发电量
+	public static final String PLSWDL = "PLGDCJSFW.NX_GD_PLG_XX_XX_XXX_XXX_CI0136"; // 平罗上网电量
+	public static final String PLZGL = "PLGDCJSFW.NX_GD_PLG_XX_XX_XXX_XXX_CI0135"; // 平罗总功率
+	public static final String PLFS = "PLGDCJSFW.NX_GD_PLG_XX_XX_XXX_XXX_CI0134"; // 平罗日照强度
+	public static final String PLWD = "PLGGL.NX_GD_PLG_YC_P1_L1_001_QXZ004"; // 平罗测风塔温度
+	public static final String PLPJFS = "PLGDCJSFW.NX_GD_PLG_XX_XX_XXX_XXX_CI0134"; // 平罗平均风速
+
+	// 平罗1
+	public static final String PLZ1310 = "PLSJ1.NX_GD_PLG_DQ_P1_L1_001_DI0001"; // 35kV出线柜310开关位置
+	public static final String PLZ1313 = "PLSJ1.NX_GD_PLG_DQ_P1_L1_001_DI0005"; // I期313开关断路器合位
+	public static final String PLZ1314 = "PLSJ1.NX_GD_PLG_DQ_P1_L1_001_DI0007"; // I期314开关断路器合位
+	public static final String PLZ1315 = "PLSJ1.NX_GD_PLG_DQ_P1_L1_001_DI0009"; // I期315开关断路器合位
+	public static final String PLZ1316 = "PLSJ1.NX_GD_PLG_DQ_P1_L1_001_DI0011"; // I期316开关断路器合位
+	public static final String PLZ1317 = "PLSJ1.NX_GD_PLG_DQ_P1_L1_001_DI0013"; // I期317开关断路器合位
+	// 平罗2
+	public static final String PLZ2310 = "PLSJ2.NX_GD_PLG_DD_P1_L1_001_DI0001"; // 20#逆变器电网交流过压
+	public static final String PLZ2322 = "PLSJ2.NX_GD_PLG_DD_P1_L1_001_DI0017"; // 20#逆变器防雷器故障
+	public static final String PLZ2323 = "PLSJ2.NX_GD_PLG_DD_P1_L1_001_DI0019"; // 20#逆变器防反放电保护
+	/******************************************** 平罗电场 *****************************************/
+
+	/******************************************** 马场湖风电场 *****************************************/
+
+	public static final String MCHRFDL = "JSFW_MCRFDLB"; // 马场湖日发电量
+	public static final String MCHYFDL = "JSFW_MCYFDLB"; // 马场湖月发电量
+	public static final String MCHNFDL = "JSFW_MCNFDLB"; // 马场湖年发电量
+	public static final String MCHSWDL = "JSFW_MCSWDLB"; // 马场湖上网电量
+	public static final String MCHZGL = "JSFW_MCSSZGL"; // 马场湖总功率
+	public static final String MCHFS = "JSFW_MCSSFSX"; // 马场湖日照强度
+	public static final String MCHWD = "MCHGGL_AI000308"; // 马场湖测风塔温度
+	public static final String MCHPJFS = "JSFW_MCSSFS"; // 马场湖平均风速
+
+	public static final String MCHZ511 = "MCHDQ_DI110749"; // 马场湖光伏开关站xj-断路器位置
+	public static final String MCHZ510 = "MCHDQ_DI110027"; // 马场湖光伏开关站10ah-3
+	// 1#进线柜-断路器位置
+	public static final String MCHZ512 = "MCHDQ_DI110317"; // 马场湖光伏开关站10ah-4
+	// 2#进线-断路器位置
+	public static final String MCHZ513 = "MCHDQ_DI110197"; // 马场湖光伏开关站10ah-5
+	// 3#进线-断路器位置
+	public static final String MCHZ514 = "MCHDQ_DI110080"; // 马场湖光伏开关站10ah-14
+	// 电容器-断路器位置
+	public static final String MCHZ515 = "MCHDQ_DI110137"; // 马场湖光伏开关站10ah-7
+	// 5#进线-断路器位置
+	public static final String MCHZ516 = "MCHDQ_DI110377"; // 马场湖光伏开关站10ah-8
+	// 6#进线-断路器位置
+	public static final String MCHZ517 = "MCHDQ_DI110437"; // 马场湖光伏开关站10ah-9
+	// 7#进线-断路器位置
+	public static final String MCHZ518 = "MCHDQ_DI110497"; // 马场湖光伏开关站10ah-10
+	// 8#进线-断路器位置
+	public static final String MCHZ519 = "MCHDQ_DI110557"; // 马场湖光伏开关站10ah-11
+	// 9#进线-断路器位置
+	public static final String MCHZ520 = "MCHDQ_DI110617"; // 马场湖光伏开关站10ah-12
+	// 10#进线-断路器位置
+	/******************************************** 马场湖风电场 *****************************************/
+
+	/******************************************** 宣和风电场 *****************************************/
+	public static final String XHRFDL = "XHGDCJSFW.NX_GD_XHG_XX_XX_XXX_XXX_CI0088"; // 宣和日发电量
+	public static final String XHYFDL = "XHGDCJSFW.NX_GD_XHG_XX_XX_XXX_XXX_CI0146"; // 宣和月发电量
+	public static final String XHNFDL = "XHGDCJSFW.NX_GD_XHG_XX_XX_XXX_XXX_CI0037"; // 宣和年发电量
+	public static final String XHSWDL = "XHGDCJSFW.NX_GD_XHG_XX_XX_XXX_XXX_CI0136"; // 宣和上网电量
+	public static final String XHZGL = "XHGDCJSFW.NX_GD_XHG_XX_XX_XXX_XXX_CI0135"; // 宣和总功率
+	public static final String XHFS = "XHGDCJSFW.NX_GD_XHG_XX_XX_XXX_XXX_CI0134"; // 宣和日照强度
+	public static final String XHWD = "XHGGL.NX_GD_XHG_YC_P1_L1_001_QXZ004"; // 宣和测风塔温度
+	public static final String XHPJFS = "XHGDCJSFW.NX_GD_XHG_XX_XX_XXX_XXX_CI0134"; // 宣和平均风速
+
+	public static final String XHZ311 = "XHDQ.NX_GD_XHG_DQ_P1_L1_001_DI0001"; // 35kV草光I线开关位置
+	public static final String XHZ313 = "XHDQ.NX_GD_XHG_DQ_P1_L1_001_DI0025"; // 35kV1#进线313开关位置
+	public static final String XHZ314 = "XHDQ.NX_GD_XHG_DQ_P1_L1_001_DI0027"; // 35kV2#进线314开关位置
+	public static final String XHZ316 = "XHDQ.NX_GD_XHG_DQ_P1_L1_001_DI0031"; // 35kV4#进线316开关位置
+	public static final String XHZ315 = "XHDQ.NX_GD_XHG_DQ_P1_L1_001_DI0029"; // 35kV3#进线315开关位置
+	/******************************************** 宣和风电场 *****************************************/
+
+	/******************************************** 香山风电场 *****************************************/
+	public static final String XSRFDL = "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0088"; // 香山日发电量
+	public static final String XSYFDL = "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0146"; // 香山月发电量
+	public static final String XSNFDL = "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0037"; // 香山年发电量
+	public static final String XSSWDL = "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0136"; // 香山上网电量
+	public static final String XSZGL = "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0135"; // 香山总功率
+	public static final String XSFS = "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0134"; // 香山风速
+	public static final String XSQFDL = "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0110"; // 香山日欠发损失电量
+
+	public static final String XSWD = "XSFGL.NX_GD_XSF_YC_P1_L1_001_FGLTEM"; // 香山测风塔温度
+	public static final String XSFGL_AI000007 = "XSFGL.NX_GD_XSF_YC_P1_L1_001_FGLHUM"; // 香山测风塔湿度
+	public static final String XSFGL_AI000008 = "XSFGL.NX_GD_XSF_YC_P1_L1_001_FGLPRE"; // 香山测风塔压强
+	public static final String XSPJFS = "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0134"; // 香山平均风速
+
+	public static final String XSDQ_DI000034 = "XSDQ.NX_GD_XSF_DQ_P1_L1_001_DI0034"; // #111断路器
+	public static final String XSDQ_DI000169 = "XSDQ.NX_GD_XSF_DQ_P1_L1_001_DI0169"; // 101断路器
+	public static final String XSDQ_DI000308 = "XSDQ.NX_GD_XSF_DQ_P1_L1_001_DI0308"; // 102断路器
+	public static final String XSDQ_DI000192 = "XSDQ.NX_GD_XSF_DQ_P1_L1_001_DI0192"; // 301断路器
+	public static final String XSDQ_DI000331 = "XSDQ.NX_GD_XSF_DQ_P1_L1_001_DI0331"; // 302断路器
+	// 香山电气点没有,采用类似点,目前不一定准确
+	public static final String XSDQ_DI000850 = "XSDQ.NX_GD_XSF_DQ_P1_L1_001_DI0850"; // 311断路器
+	public static final String XSDQ_DI000915 = "XSDQ.NX_GD_XSF_DQ_P1_L1_001_DI0915"; // 312断路器
+	public static final String XSDQ_DI001210 = "XSDQ.NX_GD_XSF_DQ_P1_L1_001_DI1210"; // 323断路器
+	public static final String XSDQ_DI001145 = "XSDQ.NX_GD_XSF_DQ_P1_L1_001_DI1145"; // 322断路器
+
+	public static final String XSFGL_AI000003 = "XSFGL.NX_GD_XSF_YC_P1_L1_001_FGLS70";// 香山70m风速
+	public static final String XSFGL_AI000005 = "XSFGL.NX_GD_XSF_YC_P1_L1_001_FGLD70";// 香山70m风向
+	/******************************************** 香山风电场 *****************************************/
+
+	public static final String DWKGDCJSFW_CI0195 = "DWKGDCJSFW.NX_GD_DWKG_XX_XX_XXX_XXX_CI0195"; // 风机设备在线状态
+	public static final String DWKGDCJSFW_CI0196 = "DWKGDCJSFW.NX_GD_DWKG_XX_XX_XXX_XXX_CI0196"; // 升压站在线状态
+	public static final String DWKGDCJSFW_CI0197 = "DWKGDCJSFW.NX_GD_DWKG_XX_XX_XXX_XXX_CI0197"; // 电计量在线状态
+	public static final String DWKGDCJSFW_CI0198 = "DWKGDCJSFW.NX_GD_DWKG_XX_XX_XXX_XXX_CI0198"; // 测风塔在线状态
+	public static final String DWKGDCJSFW_CI0199 = "DWKGDCJSFW.NX_GD_DWKG_XX_XX_XXX_XXX_CI0199"; // agc在线状态
+
+	public static final String MHSFCJSFW_CI0215 = "MHSFCJSFW.NX_GD_MHSF_XX_XX_XXX_XXX_CI0215"; // 风机设备在线状态
+	public static final String MHSFCJSFW_CI0216 = "MHSFCJSFW.NX_GD_MHSF_XX_XX_XXX_XXX_CI0216"; // 升压站在线状态
+	public static final String MHSFCJSFW_CI0217 = "MHSFCJSFW.NX_GD_MHSF_XX_XX_XXX_XXX_CI0217"; // 电计量在线状态
+	public static final String MHSFCJSFW_CI0218 = "MHSFCJSFW.NX_GD_MHSF_XX_XX_XXX_XXX_CI0218"; // 测风塔在线状态
+	public static final String MHSFCJSFW_CI0219 = "MHSFCJSFW.NX_GD_MHSF_XX_XX_XXX_XXX_CI0219"; // agc在线状态
+
+	public static final String NSSFCJSFW_CI0215 = "NSSFCJSFW_NX_GD_NSSF_XX_XX_XXX_XXX_CI0215"; // 风机设备在线状态
+	public static final String NSSFCJSFW_CI0216 = "NSSFCJSFW_NX_GD_NSSF_XX_XX_XXX_XXX_CI0216"; // 升压站在线状态
+	public static final String NSSFCJSFW_CI0217 = "NSSFCJSFW_NX_GD_NSSF_XX_XX_XXX_XXX_CI0217"; // 电计量在线状态
+	public static final String NSSFCJSFW_CI0218 = "NSSFCJSFW_NX_GD_NSSF_XX_XX_XXX_XXX_CI0218"; // 测风塔在线状态
+	public static final String NSSFCJSFW_CI0219 = "NSSFCJSFW_NX_GD_NSSF_XX_XX_XXX_XXX_CI0219"; // agc在线状态
+
+	public static final String PLGDCJSFW_CI0195 = "PLGDCJSFW.NX_GD_PLG_XX_XX_XXX_XXX_CI0195"; // 风机设备在线状态
+	public static final String PLGDCJSFW_CI0196 = "PLGDCJSFW.NX_GD_PLG_XX_XX_XXX_XXX_CI0196"; // 升压站在线状态
+	public static final String PLGDCJSFW_CI0197 = "PLGDCJSFW.NX_GD_PLG_XX_XX_XXX_XXX_CI0197"; // 电计量在线状态
+	public static final String PLGDCJSFW_CI0198 = "PLGDCJSFW.NX_GD_PLG_XX_XX_XXX_XXX_CI0198"; // 测风塔在线状态
+	public static final String PLGDCJSFW_CI0199 = "PLGDCJSFW.NX_GD_PLG_XX_XX_XXX_XXX_CI0199"; // agc在线状态
+
+	public static final String QSFCJSFW_CI0215 = "QSFCJSFW.NX_GD_QSF_XX_XX_XXX_XXX_CI0215"; // 风机设备在线状态
+	public static final String QSFCJSFW_CI0216 = "QSFCJSFW.NX_GD_QSF_XX_XX_XXX_XXX_CI0216"; // 升压站在线状态
+	public static final String QSFCJSFW_CI0217 = "QSFCJSFW.NX_GD_QSF_XX_XX_XXX_XXX_CI0217"; // 电计量在线状态
+	public static final String QSFCJSFW_CI0218 = "QSFCJSFW.NX_GD_QSF_XX_XX_XXX_XXX_CI0218"; // 测风塔在线状态
+	public static final String QSFCJSFW_CI0219 = "QSFCJSFW.NX_GD_QSF_XX_XX_XXX_XXX_CI0219"; // agc在线状态
+
+	public static final String SBQFCJSFW_CI0215 = "SBQFCJSFW.NX_GD_SBQF_XX_XX_XXX_XXX_CI0215"; // 风机设备在线状态
+	public static final String SBQFCJSFW_CI0216 = "SBQFCJSFW.NX_GD_SBQF_XX_XX_XXX_XXX_CI0216"; // 升压站在线状态
+	public static final String SBQFCJSFW_CI0217 = "SBQFCJSFW.NX_GD_SBQF_XX_XX_XXX_XXX_CI0217"; // 电计量在线状态
+	public static final String SBQFCJSFW_CI0218 = "SBQFCJSFW.NX_GD_SBQF_XX_XX_XXX_XXX_CI0218"; // 测风塔在线状态
+	public static final String SBQFCJSFW_CI0219 = "SBQFCJSFW.NX_GD_SBQF_XX_XX_XXX_XXX_CI0219"; // agc在线状态
+
+	public static final String XHGDCJSFW_CI0195 = "XHGDCJSFW.NX_GD_XHG_XX_XX_XXX_XXX_CI0195"; // 风机设备在线状态
+	public static final String XHGDCJSFW_CI0196 = "XHGDCJSFW.NX_GD_XHG_XX_XX_XXX_XXX_CI0196"; // 升压站在线状态
+	public static final String XHGDCJSFW_CI0197 = "XHGDCJSFW.NX_GD_XHG_XX_XX_XXX_XXX_CI0197"; // 电计量在线状态
+	public static final String XHGDCJSFW_CI0198 = "XHGDCJSFW.NX_GD_XHG_XX_XX_XXX_XXX_CI0198"; // 测风塔在线状态
+	public static final String XHGDCJSFW_CI0199 = "XHGDCJSFW.NX_GD_XHG_XX_XX_XXX_XXX_CI0199"; // agc在线状态
+
+	public static final String XSFCJSFW_CI0215 = "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0215"; // 风机设备在线状态
+	public static final String XSFCJSFW_CI0216 = "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0216"; // 升压站在线状态
+	public static final String XSFCJSFW_CI0217 = "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0217"; // 电计量在线状态
+	public static final String XSFCJSFW_CI0218 = "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0218"; // 测风塔在线状态
+	public static final String XSFCJSFW_CI0219 = "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0219"; // agc在线状态
+	
+
+}

+ 116 - 0
src/com/gyee/MainConstant.java

@@ -0,0 +1,116 @@
+package com.gyee;
+
+/**
+ * 
+ * 
+ * 项目名称:nxfd 类名称:MainConstant 类描述: 创建人:xieshengjie 创建时间:2018-5-10 上午10:07:03
+ * 
+ * @version
+ * 
+ */
+public class MainConstant {
+
+	public static final String JSFW_SSSWDLB = "JSFW_SSSWDLB"; // 上网电量
+	public static final String CALC_TIANSHU = "CALC_TIANSHU"; // 安全天数
+	public static final String JSFW_SSSSZGL = "JSFW_SSSSZGL"; // 总功率
+	public static final String JSFW_SSRFDLB = "JSFW_SSRFDLB"; // 日累计电量
+	public static final String JSFW_SSYFDLB = "JSFW_SSYFDLB"; // 月累计电量
+	public static final String JSFW_SSNFDLB = "JSFW_SSNFDLB"; // 年发电量
+	public static final String JSFW_FJYFDLB = "JSFW_FJYFDLB"; // 风场月累计电量
+	public static final String JSFW_FJYFDL = "JSFW_FJYFDL"; //
+	public static final String JSFW_FJNFDLB = "JSFW_FJNFDLB"; // 风场年累计小时
+	public static final String CALC_GSJPEYHT = "CALC_GSJPEYHT"; // 减排二氧化碳
+	public static final String CALC_GSJYBZML = "CALC_GSJYBZML"; // 节约标煤
+	public static final String JSFW_GFYFDLB = "JSFW_GFYFDLB"; // 光伏月累计电量
+	public static final String JSFW_GFNFDLB = "JSFW_GFNFDLB"; // 光伏年累计电量
+	public static final String CALC_GSJPEYHL = "CALC_GSJPEYHL"; // 减排二氧化硫
+	public static final String CALC_GSJYSNLJ = "CALC_GSJYSNLJ"; // 节约水
+	public static final String JSFW_NSRFDLB = "JSFW_NSRFDLB"; // 牛首山日发电量
+	public static final String JSFW_NSSWDLB = "JSFW_NSSWDLB"; // 牛首山上网电量
+	public static final String JSFW_NSSSZGL = "JSFW_NSSSZGL"; // 牛首山总功率
+	public static final String JSFW_NSSSFS = "JSFW_NSSSFS"; // 牛首山风速
+	public static final String JSFW_NSYFDL = "JSFW_NSYFDL"; //
+	public static final String JSFW_MHRFDLB = "JSFW_MHRFDLB"; // 麻黄山日发电量
+	public static final String JSFW_MHSWDLB = "JSFW_MHSWDLB"; // 麻黄山上网电量
+	public static final String JSFW_MHSSZGL = "JSFW_MHSSZGL"; // 麻黄山总功率
+	public static final String JSFW_MHSSFS = "JSFW_MHSSFS"; // 麻黄山风速
+	public static final String JSFW_MHYFDL = "JSFW_MHYFDL"; //
+	public static final String JSFW_QSRFDLB = "JSFW_QSRFDLB"; // 青山日发电量
+	public static final String JSFW_QSSWDLB = "JSFW_QSSWDLB"; // 青山上网电量
+	public static final String JSFW_QSSSZGL = "JSFW_QSSSZGL"; // 青山总功率
+	public static final String JSFW_QSSSFS = "JSFW_QSSSFS"; // 青山风速
+	public static final String JSFW_QSYFDL = "JSFW_QSYFDL"; //
+	public static final String JSFW_SBRFDLB = "JSFW_SBRFDLB"; // 石板泉日发电量
+	public static final String JSFW_SBSWDLB = "JSFW_SBSWDLB"; // 石板泉上网电量
+	public static final String JSFW_SBSSZGL = "JSFW_SBSSZGL"; // 石板泉总功率
+	public static final String JSFW_SBSSFS = "JSFW_SBSSFS"; // 石板泉风速
+	public static final String JSFW_SBYFDL = "JSFW_SBYFDL"; //
+	public static final String JSFW_DWRFDLB = "JSFW_DWRFDLB"; // 大武口日发电量
+	public static final String JSFW_DWSWDLB = "JSFW_DWSWDLB"; // 大武口上网电量
+	public static final String JSFW_DWSSZGL = "JSFW_DWSSZGL"; // 大武口总功率
+	public static final String JSFW_DWSSFS = "JSFW_DWSSFS"; //
+	public static final String DWKGF_AI110015 = "DWKGF_AI110015"; // 大武口日照强度
+	public static final String JSFW_DWYFDL = "JSFW_DWYFDL"; //
+	public static final String JSFW_PLRFDLB = "JSFW_PLRFDLB"; // 平罗日发电量
+	public static final String JSFW_PLSWDLB = "JSFW_PLSWDLB"; // 平罗上网电量
+	public static final String JSFW_PLSSZGL = "JSFW_PLSSZGL"; // 平罗总功率
+	public static final String JSFW_PLSSFS = "JSFW_PLSSFS"; //
+	public static final String JSFW_PLYFDL = "JSFW_PLYFDL"; //
+	public static final String JSFW_MCRFDLB = "JSFW_MCRFDLB"; // 马场湖日发电量
+	public static final String JSFW_MCSWDLB = "JSFW_MCSWDLB"; // 马场湖上网电量
+	public static final String JSFW_MCSSZGL = "JSFW_MCSSZGL"; // 马场湖总功率
+	public static final String JSFW_MCSSFSX = "JSFW_MCSSFSX"; //
+	public static final String MCHDQ_AI110289 = "MCHDQ_AI110289"; // 马场湖日照强度
+	public static final String JSFW_XHRFDLB = "JSFW_XHRFDLB"; // 宣和日发电量
+	public static final String JSFW_XHSWDLB = "JSFW_XHSWDLB"; // 宣和上网电量
+	public static final String JSFW_XHSSZGL = "JSFW_XHSSZGL"; // 宣和总功率
+	public static final String JSFW_XHSSFS = "JSFW_XHSSFS"; // 宣和日照强度
+	public static final String JSFW_XHYFDLB = "JSFW_XHYFDLB"; //
+	public static final String JSFW_MCYFDL = "JSFW_MCYFDL"; //
+	public static final String JSFW_FJRFDLB = "JSFW_FJRFDLB"; // 风场日发电量合计
+	public static final String JSFW_FJSWDLB = "JSFW_FJSWDLB"; // 上网电量合计
+	public static final String JSFW_FJSSZGL = "JSFW_FJSSZGL"; // 总功率合计
+	public static final String JSFW_FJSSFS = "JSFW_FJSSFS"; // 风速合计
+	public static final String JSFW_FJRFDL = "JSFW_FJRFDL"; //
+	public static final String JSFW_GFRFDLB = "JSFW_GFRFDLB"; // 光伏日发电量合计
+	public static final String JSFW_GFSWDLB = "JSFW_GFSWDLB"; // 上网电量合计
+	public static final String JSFW_GFSSZGL = "JSFW_GFSSZGL"; // 总功率合计
+	public static final String JSFW_GFYFDL = "JSFW_GFYFDL"; //
+	public static final String JSFW_FJRQFSS = "JSFW_FJRQFSS"; //
+	public static final String JSFW_MHRQFSS = "JSFW_MHRQFSS"; //
+	public static final String JSFW_NSRQFSS = "JSFW_NSRQFSS"; //
+	public static final String JSFW_QSRQFSS = "JSFW_QSRQFSS"; //
+	public static final String JSFW_SBRQFSS = "JSFW_SBRQFSS"; //
+	public static final String JSFW_XSRFDLB = "JSFW_XSRFDLB"; // 香山日发电量
+	public static final String JSFW_XSSWDLB = "JSFW_XSSWDLB"; // 香山上网电量
+	public static final String JSFW_XSSSZGL = "JSFW_XSSSZGL"; // 香山总功率
+	public static final String JSFW_XSSSFS = "JSFW_XSSSFS"; // 香山风速
+	public static final String JSFW_XSYFDLB = "JSFW_XSYFDLB"; //
+	public static final String JSFW_XSRQFSS = "JSFW_XSRQFSS"; // 香山日欠发损失电量
+	public static final String JSFW_SBYFDLB = "JSFW_SBYFDLB";
+	public static final String JSFW_DWYFDLB = "JSFW_DWYFDLB";
+	public static final String JSFW_PLYFDLB = "JSFW_PLYFDLB";
+	public static final String JSFW_MCYFDLB = "JSFW_MCYFDLB";
+	public static final String JSFW_NSYFDLB = "JSFW_NSYFDLB";
+	public static final String JSFW_MHYFDLB = "JSFW_MHYFDLB";
+	public static final String JSFW_QSYFDLB = "JSFW_QSYFDLB";
+	public static final String JSFW_NSRGZSS = "JSFW_NSRGZSS";
+	public static final String JSFW_MHRGZSS = "JSFW_MHRGZSS";
+
+	public static final String JSFW_QSRGZSS = "JSFW_QSRGZSS";
+	public static final String JSFW_SBRGZSS = "JSFW_SBRGZSS";
+	public static final String JSFW_XSRGZSS = "JSFW_XSRGZSS";
+
+	public static final String JSFW_NSRJXSS = "JSFW_NSRJXSS";
+	public static final String JSFW_MHRJXSS = "JSFW_MHRJXSS";
+	public static final String JSFW_QSRJXSS = "JSFW_QSRJXSS";
+	public static final String JSFW_SBRJXSS = "JSFW_SBRJXSS";
+	public static final String JSFW_XSRJXSS = "JSFW_XSRJXSS";
+
+	public static final String JSFW_NSRXDSS = "JSFW_NSRXDSS";
+	public static final String JSFW_MHRXDSS = "JSFW_MHRXDSS";
+	public static final String JSFW_QSRXDSS = "JSFW_QSRXDSS";
+	public static final String JSFW_SBRXDSS = "JSFW_SBRXDSS";
+	public static final String JSFW_XSRXDSS = "JSFW_XSRXDSS";
+
+}

+ 47 - 0
src/com/gyee/dao/GenericDao.java

@@ -0,0 +1,47 @@
+package com.gyee.dao;
+
+import java.io.Serializable;
+import java.util.List;
+
+
+public interface GenericDao<T> {
+	
+	/**
+	 * 获取泛型对象
+	 * @param id
+	 * @return
+	 * @throws JdbcDaoException
+	 */
+	T get(String tableName,Object[] pks) throws JdbcDaoException;
+	
+	/**
+	 * 保存泛型对象
+	 * @param t
+	 * @throws JdbcDaoException
+	 */
+	T save(T t) throws JdbcDaoException;
+	
+	/**
+	 * 更新对象
+	 * @param t
+	 * @throws JdbcDaoException
+	 */
+	void update(T t) throws JdbcDaoException;
+	
+	
+	/**
+	 * 删除泛型对象
+	 * @param pk 泛型主键
+	 * @throws JdbcDaoException
+	 */
+	void delete(Serializable pk) throws JdbcDaoException;
+	
+	/**
+	 * 获取所有泛型对象
+	 * @return
+	 * @throws JdbcDaoException
+	 */
+	List<T> findAll() throws JdbcDaoException;
+	
+
+}

+ 382 - 0
src/com/gyee/dao/GenericJdbcDao.java

@@ -0,0 +1,382 @@
+/**
+ * 
+ */
+package com.gyee.dao;
+
+import java.beans.IntrospectionException;
+import java.io.Serializable;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.util.List;
+import java.util.Map;
+
+import javax.sql.DataSource;
+
+import org.springframework.jdbc.core.RowMapper;
+import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;
+import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
+import org.springframework.jdbc.core.namedparam.SqlParameterSource;
+import org.springframework.jdbc.support.GeneratedKeyHolder;
+import org.springframework.jdbc.support.KeyHolder;
+import org.springframework.jdbc.support.nativejdbc.NativeJdbcExtractor;
+
+import com.gyee.util.PaginationList;
+import com.gyee.util.QueryOrder;
+
+
+
+/**
+ * 
+ * @author shilinno1
+ *
+ * @param <T>
+ */
+public class GenericJdbcDao<T> implements GenericDao<T> {
+
+	protected final JdbcDaoTemplate operate = new JdbcDaoTemplate();
+
+	protected final NamedParameterJdbcTemplate namedOperate = new NamedParameterJdbcTemplate(operate);
+
+	protected final SimpleJdbcDaoTemplate simpleOperate = new SimpleJdbcDaoTemplate(namedOperate);
+
+	private final static JdbcDaoExceptionTranslator exceptionTranslator = new JdbcDaoExceptionTranslator();
+
+	public int addOracleObject(String sql, Object bean) {
+		SqlParameterSource param = new BeanPropertySqlParameterSource(bean);
+		KeyHolder keyHolder = new GeneratedKeyHolder();
+		simpleOperate.getNamedParameterJdbcOperations().update(sql, param, keyHolder);
+		return keyHolder.getKey().intValue();
+	}
+
+	public void addOracleObject(String sql) {
+		SqlParameterSource param = new BeanPropertySqlParameterSource(new Object());
+		KeyHolder keyHolder = new GeneratedKeyHolder();
+		simpleOperate.getNamedParameterJdbcOperations().update(sql, param, keyHolder);
+
+	}
+
+	/**
+	 * 通过命名方式sql查询
+	 * 
+	 * @param sql
+	 * @param params
+	 * @param rowMapper
+	 * @param orders
+	 * @return
+	 */
+	@SuppressWarnings("unchecked")
+	public List findNativeBySql(String sql, Map<String, Object> params, RowMapper rowMapper, QueryOrder... orders) {
+		return simpleOperate.findNativeBySql(sql, params, rowMapper, orders);
+	}
+
+	/**
+	 * 通过命名方式sql 查询 分页
+	 * 
+	 * @param sql
+	 * @param params
+	 * @param offset
+	 * @param maxResults
+	 * @param rowMapper
+	 * @return
+	 */
+	@SuppressWarnings("unchecked")
+	public List findNativeBySql(String sql, Map<String, Object> params, int offset, int maxResults, RowMapper rowMapper,
+			QueryOrder... orders) {
+		return simpleOperate.findNativeBySql(sql, params, offset, maxResults, rowMapper, orders);
+	}
+
+	/**
+	 * 通过占位符方式sql 查询分页
+	 * 
+	 * @param sql
+	 * @param objects
+	 * @param offset
+	 * @param maxResults
+	 * @param rowMapper
+	 * @param orders
+	 * @return
+	 */
+	@SuppressWarnings("unchecked")
+	public List findNativeBySql(String sql, Object[] objects, int offset, int maxResults, RowMapper rowMapper,
+			QueryOrder... orders) {
+		return operate.findNativeBySql(sql, objects, offset, maxResults, rowMapper, orders);
+	}
+
+	/**
+	 * 通过占位符方式sql 查询
+	 * 
+	 * @param sql
+	 * @param objects
+	 * @param rowMapper
+	 * @param orders
+	 * @return
+	 */
+	@SuppressWarnings("unchecked")
+	public List findNativeBySql(String sql, Object[] objects, RowMapper rowMapper, QueryOrder... orders) {
+		return operate.findNativeBySql(sql, objects, rowMapper);
+	}
+
+	/**
+	 * 获取当前泛型对应的实体表,按条件查询
+	 * 
+	 * @param params
+	 * @param orders
+	 * @return
+	 */
+	@SuppressWarnings("unchecked")
+	public List<T> findByProperties(final Map<String, Object> params, final QueryOrder... orders) {
+		return simpleOperate.findByProperties(getEntityClass(), params, orders);
+	}
+
+	/**
+	 * 获取当前泛型对应的实体表,按条件查询分页
+	 * 
+	 * @param params
+	 * @param offset
+	 * @param maxResults
+	 * @param orders
+	 * @return
+	 */
+	@SuppressWarnings("unchecked")
+	public List<T> findByProperties(final Map<String, Object> params, int offset, int maxResults,
+			final QueryOrder... orders) {
+		return simpleOperate.findByProperties(getEntityClass(), params, offset, maxResults, orders);
+	}
+
+	/**
+	 * 获取当前泛型对应的实体表,按条件查询分页
+	 * 
+	 * @param params
+	 * @param offset
+	 * @param maxResults
+	 * @param orders
+	 * @return
+	 * @throws Exception
+	 */
+	@SuppressWarnings("unchecked")
+	public PaginationList findByProperties(String orderId, String order, final Map<String, Object> params, int offset,
+			int maxResults, final String... ascending) throws Exception {
+		return simpleOperate.findByProperties(getEntityClass(), orderId, order, params, offset, maxResults, ascending);
+	}
+
+	public void save(String prefix, List<String> list) {
+		operate.save(prefix, list);
+	}
+
+	// ================================================================
+
+	/**
+	 * @return 返回泛型对象
+	 * @param id
+	 *            pk主键
+	 */
+	@SuppressWarnings("unchecked")
+	public T get(String tableName, Object[] pks) {
+		return (T) operate.get(tableName, getEntityClass(), pks);
+	}
+
+	@SuppressWarnings("unchecked")
+	public T get(Serializable id) {
+		return (T) operate.get(getEntityClass(), id);
+	}
+
+	/**
+	 * @return 新增对象的主键
+	 * @param T
+	 */
+	@SuppressWarnings("unchecked")
+	public T save(T t) {
+		Object result = -1;
+
+		try {
+			result = operate.save(t, true);
+		} catch (IllegalArgumentException e) {
+			e.printStackTrace();
+		} catch (IntrospectionException e) {
+			e.printStackTrace();
+		} catch (IllegalAccessException e) {
+			e.printStackTrace();
+		} catch (InvocationTargetException e) {
+			e.printStackTrace();
+		}
+
+		return (T) result;
+	}
+
+	@SuppressWarnings("unchecked")
+	public T save(T t, boolean flag) {
+		Object result = -1;
+
+		try {
+			result = operate.save(t, flag);
+		} catch (IllegalArgumentException e) {
+			e.printStackTrace();
+		} catch (IntrospectionException e) {
+			e.printStackTrace();
+		} catch (IllegalAccessException e) {
+			e.printStackTrace();
+		} catch (InvocationTargetException e) {
+			e.printStackTrace();
+		}
+
+		return (T) result;
+	}
+
+	public Object save(String tableName, Object o) {
+		try {
+			return operate.save(tableName, o);
+		} catch (JdbcDaoException e) {
+			e.printStackTrace();
+		} catch (IllegalArgumentException e) {
+			e.printStackTrace();
+		} catch (IntrospectionException e) {
+			e.printStackTrace();
+		} catch (IllegalAccessException e) {
+			e.printStackTrace();
+		} catch (InvocationTargetException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+	/**
+	 * 删除对象
+	 * 
+	 * @param 表的主键
+	 */
+	@Override
+	public void delete(Serializable pk) {
+		operate.delete(getEntityClass(), pk);
+	}
+
+	/**
+	 * 查询当前泛型对象 对应表的所有记录
+	 * 
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public List<T> findAll() throws JdbcDaoException {
+		return operate.findAll(getEntityClass());
+	}
+
+	@SuppressWarnings("unchecked")
+	public List<T> findAll(QueryOrder... orders) {
+		return operate.findAll(getEntityClass(), orders);
+	}
+
+	@SuppressWarnings("unchecked")
+	public PaginationList<T> findAll(int offset, int maxResults, QueryOrder... orders) {
+		return operate.findAll(getEntityClass(), offset, maxResults, orders);
+	}
+
+	@Override
+	public void update(T t) {
+		try {
+			operate.update(t);
+		} catch (IllegalArgumentException e) {
+			e.printStackTrace();
+		} catch (IntrospectionException e) {
+			e.printStackTrace();
+		} catch (IllegalAccessException e) {
+			e.printStackTrace();
+		} catch (InvocationTargetException e) {
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * 获取泛型类按条件查询记录总数
+	 * 
+	 * @param properties
+	 * @return
+	 */
+	public long count(Map<String, Object> properties) {
+		return simpleOperate.count(getEntityClass(), properties);
+	}
+
+	/**
+	 * 
+	 * @return
+	 */
+	public long count() {
+		return simpleOperate.count(getEntityClass(), null);
+	}
+
+	@SuppressWarnings("unchecked")
+	protected static Type getGenericAncestralType(Type t) {
+		if (!(t instanceof Class))
+			return null;
+		Class clazz = (Class) t;
+		Type superClass = clazz.getGenericSuperclass();
+		if (superClass instanceof ParameterizedType) {
+			return superClass;
+		} else if (superClass instanceof Class) {
+			return getGenericAncestralType(superClass);
+		} else {
+			return null;
+		}
+	}
+
+	/**
+	 * 获取泛型参数对象
+	 * 
+	 * @return
+	 */
+	@SuppressWarnings("unchecked")
+	protected final Class getEntityClass() {
+		Type clazz = getGenericAncestralType(getClass());
+		if (clazz instanceof ParameterizedType) {
+			return (Class) ((ParameterizedType) clazz).getActualTypeArguments()[0];
+		}
+		throw new JdbcDaoException("This method can only be invoked for parameterized dao class.");
+	}
+
+	/**
+	 * 设置数据源
+	 * 
+	 * @param dataSource
+	 */
+	public void setDataSource(DataSource dataSource) {
+		operate.setDataSource(dataSource);
+		operate.afterPropertiesSet();
+		operate.setExceptionTranslator(exceptionTranslator);
+	}
+
+	protected DataSource getDataSource() {
+		return operate.getDataSource();
+	}
+
+	protected void setNativeJdbcExtractor(NativeJdbcExtractor extractor) {
+		operate.setNativeJdbcExtractor(extractor);
+	}
+
+	protected void setIgnoreWarnings(boolean ignoreWarnings) {
+		operate.setIgnoreWarnings(ignoreWarnings);
+	}
+
+	public void setFetchSize(int fetchSize) {
+		operate.setFetchSize(fetchSize);
+	}
+
+	public void setMaxRows(int maxRows) {
+		operate.setMaxRows(maxRows);
+	}
+
+	public void setQueryTimeout(int queryTimeout) {
+		operate.setQueryTimeout(queryTimeout);
+	}
+
+	public void setSkipResultsProcessing(boolean skipResultsProcessing) {
+		operate.setSkipResultsProcessing(skipResultsProcessing);
+	}
+
+	public void setSkipUndeclaredResults(boolean skipUndeclaredResults) {
+		operate.setSkipUndeclaredResults(skipUndeclaredResults);
+	}
+
+	public void setResultsMapCaseInsensitive(boolean resultsMapCaseInsensitive) {
+		operate.setResultsMapCaseInsensitive(resultsMapCaseInsensitive);
+	}
+
+}

+ 18 - 0
src/com/gyee/dao/JdbcDaoException.java

@@ -0,0 +1,18 @@
+package com.gyee.dao;
+
+import org.springframework.dao.DataAccessException;
+
+
+public class JdbcDaoException extends DataAccessException {
+	
+	private static final long serialVersionUID = 1L;
+	
+	public JdbcDaoException(String msg) {
+		super(msg);
+	}
+	
+	public JdbcDaoException(String msg, Throwable cause) {
+		super(msg, cause);
+	}
+
+}

+ 29 - 0
src/com/gyee/dao/JdbcDaoExceptionTranslator.java

@@ -0,0 +1,29 @@
+/**
+ * 
+ */
+package com.gyee.dao;
+
+import java.sql.SQLException;
+
+import org.springframework.dao.DataAccessException;
+import org.springframework.jdbc.support.SQLExceptionTranslator;
+
+
+public class JdbcDaoExceptionTranslator implements SQLExceptionTranslator {
+
+	/* (non-Javadoc)
+	 * @see org.springframework.jdbc.support.SQLExceptionTranslator#translate(java.lang.String, java.lang.String, java.sql.SQLException)
+	 */
+	public DataAccessException translate(String task, String sql, SQLException ex) {
+		if(task == null)
+			task = "";
+		
+		return new JdbcDaoException(buildMessage(task, sql), ex);
+	}
+	
+	private String buildMessage(String task, String sql){
+		String messageFormat = "数据库操作异常: Failed to execute the task [%s], and the executed sql is : '%s'. ";
+		return String.format(messageFormat, task, sql);
+	}
+
+}

+ 942 - 0
src/com/gyee/dao/JdbcDaoTemplate.java

@@ -0,0 +1,942 @@
+package com.gyee.dao;
+
+import java.beans.IntrospectionException;
+import java.beans.PropertyDescriptor;
+import java.io.Serializable;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Types;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.core.PreparedStatementCreator;
+import org.springframework.jdbc.core.RowMapper;
+import org.springframework.jdbc.core.simple.ParameterizedBeanPropertyRowMapper;
+import org.springframework.jdbc.support.GeneratedKeyHolder;
+import org.springframework.jdbc.support.KeyHolder;
+import org.springframework.jdbc.support.incrementer.OracleSequenceMaxValueIncrementer;
+
+import com.gyee.util.BeanFactoryUtils;
+import com.gyee.util.DataBaseHelper;
+import com.gyee.util.EntitySQLHelper;
+import com.gyee.util.PaginationList;
+import com.gyee.util.QueryOrder;
+import com.gyee.util.StringUtils;
+import com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException;
+
+
+
+/**
+ * 
+ * @author shilinno1
+ *
+ */
+public class JdbcDaoTemplate extends JdbcTemplate {
+
+    protected final Log logger = LogFactory.getLog(getClass());
+
+   public OracleSequenceMaxValueIncrementer sequence = BeanFactoryUtils.getBean("sequence", OracleSequenceMaxValueIncrementer.class);
+
+    public void save(String prefix, List<String> list) {
+
+        if (!list.isEmpty()) {
+            for (String str : list) {
+                try {
+                    // 保存sql后缀
+                    StringBuffer suffix = new StringBuffer();
+                    Connection conn = getDataSource().getConnection();
+                    // 设置事务为非自动提交
+                    conn.setAutoCommit(false);
+                    // Statement st = conn.createStatement();
+                    // 比起st,pst会更好些
+                    PreparedStatement pst = conn.prepareStatement("");
+                    // 外层循环,总提交事务次数
+                    for (int i = 0; i < list.size(); i++) {
+
+                        suffix.append(list.get(i));
+                        // 构建完整sql
+                        String sql = prefix + suffix.substring(0, suffix.length() - 1);
+                        // 添加执行sql
+                        pst.addBatch(sql);
+                        // 执行操作
+                        pst.executeBatch();
+                        // 提交事务
+                        conn.commit();
+                        // 清空上一次添加的数据
+                        suffix = new StringBuffer();
+                    }
+                    // 头等连接
+                    pst.close();
+                    conn.close();
+                } catch (SQLException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+
+    }
+
+    /**
+     * 按主键删除对象
+     * 
+     * @param clazz
+     * @param id
+     */
+    @SuppressWarnings("unchecked")
+    public void delete(Class clazz, Serializable id) {
+        String pk = null;
+        ResultSet resultSet = null;
+        Connection conn = null;
+        try {
+            conn = getDataSource().getConnection();
+            resultSet = conn.getMetaData().getPrimaryKeys(null, null, clazz.getSimpleName().toUpperCase());
+            if (!resultSet.isAfterLast()) {
+                resultSet.next();
+                pk = resultSet.getString("COLUMN_NAME");
+            }
+        } catch (SQLException e) {
+            try {
+                conn.close();
+            } catch (SQLException e1) {
+                e1.printStackTrace();
+            }
+            logger.debug("数据库连接异常,获取数据库元数据MetaData出错!");
+            e.printStackTrace();
+        } finally {
+            try {
+                conn.close();
+            } catch (SQLException e) {
+                e.printStackTrace();
+            }
+            resultSet = null;
+        }
+        String sql = String.format("delete from %1$s where %2$s = ?", clazz.getSimpleName().toUpperCase(), pk);
+        update(sql, new Object[] { id });
+    }
+
+    /**
+     * 按多主键删除表
+     * 
+     * @param tableName
+     * @param pks
+     */
+    @Deprecated
+    public void delete(String tableName, Object[] pks) {
+        String sql = EntitySQLHelper.generateDeleteByPKSql(tableName.toUpperCase(), DataBaseHelper.getTablePrimaryKeyFieldNames(tableName, getDataSource()));
+        update(sql, pks);
+    }
+
+    /**
+     * 分页查询当前Class对应的实体表所有记录
+     * 
+     * @param clazz
+     * @param offset
+     * @param maxResults
+     * @param orders
+     * @return
+     * @throws JdbcDaoException
+     */
+    @SuppressWarnings("unchecked")
+    public PaginationList findAll(Class clazz, int offset, int maxResults, QueryOrder... orders) throws JdbcDaoException {
+        StringBuilder sb = new StringBuilder();
+        sb.append(String.format("select * from %1$s", clazz.getSimpleName().toUpperCase()));
+        int total = queryForInt(String.format("select count(0) from %1$s", clazz.getSimpleName().toUpperCase()));
+        if (orders.length > 1) {
+            for (int i = 0; i < orders.length; i++) {
+                if (orders[i] != null)
+                    orders[i].appendSqlOrder(sb);
+            }
+        }
+        setLimitResult(sb, offset, maxResults);
+        return new PaginationList(query(sb.toString(), ParameterizedBeanPropertyRowMapper.newInstance(clazz)), total);
+    }
+
+    // =====================================
+
+    /**
+     * 查询当前Class对应的实体表所有记录
+     * 
+     * @param clazz
+     * @param orders
+     * @return
+     * @throws JdbcDaoException
+     */
+    @SuppressWarnings("unchecked")
+    public List findAll(Class clazz, QueryOrder... orders) {
+        StringBuilder sb = new StringBuilder();
+        sb.append(String.format("select * from %1$s", clazz.getSimpleName().toUpperCase()));
+        int total = queryForInt(String.format("select count(0) from %1$s", clazz.getSimpleName().toUpperCase()));
+        if (orders.length > 0) {
+            for (int i = 0; i < orders.length; i++) {
+                if (orders[i] != null)
+                    orders[i].appendSqlOrder(sb);
+            }
+        }
+        return new PaginationList(query(sb.toString(), ParameterizedBeanPropertyRowMapper.newInstance(clazz)), total);
+    }
+
+    /**
+     * 占位符sql查询分页
+     * 
+     * @param sql
+     * @param objects
+     * @param offset
+     * @param maxResults
+     * @param rowMapper
+     * @param orders
+     * @return
+     */
+    @SuppressWarnings("unchecked")
+    public PaginationList findNativeBySql(String sql, Object[] objects, int offset, int maxResults, RowMapper rowMapper, QueryOrder... orders) {
+        StringBuilder sb = new StringBuilder(sql);
+        int total = -1;
+        StringBuilder totalSQL = new StringBuilder(" SELECT count(*) FROM ( ");
+        totalSQL.append(sb.toString());
+        totalSQL.append(" ) totalTable ");
+        total = queryForInt(totalSQL.toString(), objects);
+        if (orders.length > 1) {
+            for (int i = 0; i < orders.length; i++) {
+                if (orders[i] != null)
+                    orders[i].appendSqlOrder(sb);
+            }
+        }
+        setLimitResult(sb, offset, maxResults); // 添加数据抓取
+        return new PaginationList(query(sb.toString(), objects, rowMapper), total);
+    }
+
+    /**
+     * @param sql
+     * @param objects
+     * @param rowMapper
+     * @return
+     * @throws JdbcDaoException
+     */
+    @SuppressWarnings("unchecked")
+    public List findNativeBySql(String sql, Object[] objects, RowMapper rowMapper) throws JdbcDaoException {
+        List queryList = query(sql, objects, rowMapper);
+        return new PaginationList(queryList, queryList.size());
+    }
+
+    /**
+     * 占位符sql查询
+     * 
+     * @param sql
+     * @param objects
+     * @param rowMapper
+     * @param orders
+     * @return
+     */
+    @SuppressWarnings("unchecked")
+    public List findNativeBySql(String sql, Object[] objects, RowMapper rowMapper, QueryOrder... orders) {
+        StringBuilder sb = new StringBuilder(sql);
+        if (orders.length > 1) {
+            for (int i = 0; i < orders.length; i++) {
+                if (orders[i] != null)
+                    orders[i].appendSqlOrder(sb);
+            }
+        }
+        return query(sb.toString(), objects, rowMapper);
+    }
+
+    /**
+     * 获取单主键对象(数据库表名与类名,数据库字段名与类属性相同)
+     * 
+     * @param clazz
+     * @param id
+     * @return
+     */
+    @SuppressWarnings("unchecked")
+    public Object get(Class clazz, Serializable id) {
+        String pk = null;
+        Connection conn = null;
+        ResultSet resultSet = null;
+        try {
+            conn = getDataSource().getConnection();
+            resultSet = conn.getMetaData().getPrimaryKeys(null, null, clazz.getSimpleName().toUpperCase());
+            if (!resultSet.isAfterLast()) {
+                resultSet.next();
+                pk = resultSet.getString("COLUMN_NAME");
+            }
+        } catch (MySQLSyntaxErrorException e) {
+            try {
+                conn.close();
+            } catch (SQLException e1) {
+                e1.printStackTrace();
+            }
+            throw new JdbcDaoException("根据主键获取对象失败,当前对象的类名 '" + clazz.getSimpleName().toUpperCase() + "' 与对应的数据库表名不一致!");
+        } catch (SQLException e) {
+            try {
+                conn.close();
+            } catch (SQLException e2) {
+                e2.printStackTrace();
+            }
+            throw new JdbcDaoException("通过元数据操作数据库异常:", new Throwable(e));
+        } finally {
+            resultSet = null;
+            try {
+                conn.close();
+            } catch (SQLException e2) {
+                e2.printStackTrace();
+            }
+        }
+        Set<String> set = new HashSet<String>();
+        set.add(pk);
+        String sql = EntitySQLHelper.generateSelectByPKSql(clazz.getSimpleName().toUpperCase(), set);
+        // String sql = String.format("select * from %1$s where %2$s = ?" ,
+        // clazz.getSimpleName(),pk);
+        logger.info("通过主键获取对象的sql语句: " + sql);
+        return queryForObject(sql, new Object[] { id }, ParameterizedBeanPropertyRowMapper.newInstance(clazz));
+    }
+
+    // /**
+    // * 保存
+    // * @param tableName
+    // * @param paramValues
+    // * @return
+    // */
+    // public long save(String tableName,final Object[] paramValues){
+    // Set<String> columns = getTableFieldNames(tableName);
+    // Set<String> pks = getTablePrimaryKeyFieldNames(tableName);
+    // final String sql = EntitySQLHelper.generateInsertSql(columns, tableName,
+    // true, pks);
+    //
+    // KeyHolder key = new GeneratedKeyHolder();
+    // update(new PreparedStatementCreator() {
+    //
+    // @Override
+    // public PreparedStatement createPreparedStatement(Connection con) throws
+    // SQLException {
+    //
+    // PreparedStatement ps =
+    // con.prepareStatement(sql,PreparedStatement.RETURN_GENERATED_KEYS);
+    //
+    // for (int i = 0; i < paramValues.length; ++i) {
+    // Object obj = paramValues[i];
+    // if (null == obj) {
+    // ps.setNull(i + 1, Types.CHAR);
+    // } else if (obj instanceof java.sql.Date) {
+    // ps.setDate(i + 1, (java.sql.Date) obj);
+    // } else if (obj instanceof java.sql.Timestamp) {
+    // ps.setTimestamp(i + 1, (java.sql.Timestamp) obj);
+    // } else {
+    // ps.setObject(i + 1, obj);
+    // }
+    // }
+    // return ps;
+    // }
+    //
+    // },key);
+    // return key.getKey().intValue();
+    // }
+
+    /**
+     * 多主键,或者单主键获取指定类型的对象
+     * 
+     * @param clazz
+     * @param id
+     * @return
+     */
+    @SuppressWarnings("unchecked")
+    public Object get(String tableName, Class clazz, Object[] pk) {
+        Set<String> pks = DataBaseHelper.getTablePrimaryKeyFieldNames(tableName.toUpperCase(), getDataSource());
+        String sql = EntitySQLHelper.generateSelectByPKSql(tableName.toUpperCase(), pks);
+        logger.info("通过主键获取对象的sql语句: " + sql);
+        return queryForObject(sql, pk, ParameterizedBeanPropertyRowMapper.newInstance(clazz));
+    }
+
+    /**
+     * 获取单主键对象(数据库字段名与类属性相同)
+     * 
+     * @param tableName
+     * @param clazz
+     * @param id
+     * @return
+     */
+    @SuppressWarnings("unchecked")
+    public Object get(String tableName, Class clazz, Serializable id) {
+        String pk = null;
+        Connection conn = null;
+        ResultSet resultSet = null;
+        try {
+            conn = getDataSource().getConnection();
+            resultSet = conn.getMetaData().getPrimaryKeys(null, null, tableName.toUpperCase());
+            if (!resultSet.isAfterLast()) {
+                resultSet.next();
+                pk = resultSet.getString("COLUMN_NAME");
+            }
+        } catch (MySQLSyntaxErrorException e) {
+            try {
+                conn.close();
+            } catch (SQLException e1) {
+                e1.printStackTrace();
+            }
+            throw new JdbcDaoException("根据主键获取对象失败,当前对象的类名 '" + clazz.getSimpleName().toUpperCase() + "' 与对应的数据库表名不一致!");
+        } catch (SQLException e) {
+            try {
+                conn.close();
+            } catch (SQLException e1) {
+                e1.printStackTrace();
+            }
+            throw new JdbcDaoException("通过元数据操作数据库异常:", new Throwable(e));
+        } finally {
+            resultSet = null;
+            try {
+                conn.close();
+            } catch (SQLException e1) {
+                e1.printStackTrace();
+            }
+        }
+        Set<String> set = new HashSet<String>();
+        set.add(pk);
+        String sql = EntitySQLHelper.generateSelectByPKSql(clazz.getSimpleName().toUpperCase(), set);
+        // String sql = String.format("select * from %1$s where %2$s = ?" ,
+        // clazz.getSimpleName(),pk);
+        logger.info("通过主键获取对象的sql语句: " + sql);
+        return queryForObject(sql, new Object[] { id }, ParameterizedBeanPropertyRowMapper.newInstance(clazz));
+    }
+
+    /**
+     * 多主键,或者单主键获取对象
+     * 
+     * @param tableName
+     * @param pk
+     * @param rowMapper
+     * @return
+     */
+    public Object get(String tableName, Object[] pk, RowMapper rowMapper) {
+        Set<String> pks = DataBaseHelper.getTablePrimaryKeyFieldNames(tableName.toUpperCase(), getDataSource());
+        String sql = EntitySQLHelper.generateSelectByPKSql(tableName.toUpperCase(), pks);
+        logger.info("通过主键获取对象的sql语句: " + sql);
+        return queryForObject(sql, pk, rowMapper);
+    }
+
+    /**
+     * 获取单主键对象
+     * 
+     * @param tableName
+     * @param id
+     * @param rowMapper
+     * @return
+     */
+    public Object get(String tableName, Serializable id, RowMapper rowMapper) {
+        String pk = null;
+        Connection conn = null;
+        ResultSet resultSet = null;
+        try {
+            conn = getDataSource().getConnection();
+            resultSet = conn.getMetaData().getPrimaryKeys(null, null, tableName.toUpperCase());
+            if (!resultSet.isAfterLast()) {
+                resultSet.next();
+                pk = resultSet.getString("COLUMN_NAME");
+            }
+        } catch (SQLException e) {
+            try {
+                conn.close();
+            } catch (SQLException e1) {
+                e1.printStackTrace();
+            }
+            throw new JdbcDaoException("通过元数据操作数据库异常:", new Throwable(e));
+        } finally {
+            resultSet = null;
+            try {
+                conn.close();
+            } catch (SQLException e1) {
+                e1.printStackTrace();
+            }
+        }
+        Set<String> set = new HashSet<String>();
+        set.add(pk);
+        String sql = EntitySQLHelper.generateSelectByPKSql(tableName.toUpperCase(), set);
+        // String sql = String.format("select * from %1$s where %2$s = ?" ,
+        // tableName, pk);
+        logger.info("通过主键获取对象的sql语句: " + sql);
+        return queryForObject(sql, new Object[] { id }, rowMapper);
+    }
+
+    /**
+     * 增加并且获取主键
+     * 
+     * @param sql
+     * @param params
+     * @return
+     */
+    public Number insertAndGetKey(final String sql) {
+        logger.debug("Executing SQL update and returning generated keys");
+        final KeyHolder key = new GeneratedKeyHolder();
+        update(new PreparedStatementCreator() {
+            public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
+                PreparedStatement ps = con.prepareStatement(sql, PreparedStatement.RETURN_GENERATED_KEYS);
+                return ps;
+            }
+        }, key);
+        return key.getKey();
+    }
+
+    /**
+     * 保存对象
+     * 
+     * @param o
+     * @return
+     * @throws JdbcDaoException
+     * @throws IntrospectionException
+     * @throws IllegalArgumentException
+     * @throws IllegalAccessException
+     * @throws InvocationTargetException
+     */
+    public Object save(Object o, boolean flagAcr) throws JdbcDaoException, IntrospectionException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {
+        String pk = null;
+        ResultSet resultSet = null;
+        Connection conn = null;
+
+        try {
+            conn = getDataSource().getConnection();
+            resultSet = conn.getMetaData().getColumns(null, null, o.getClass().getSimpleName().toUpperCase(), null);
+            if (!resultSet.isAfterLast()) {
+                resultSet.next();
+                pk = resultSet.getString("COLUMN_NAME");
+            }
+        } catch (SQLException e) {
+            try {
+                conn.close();
+            } catch (SQLException e1) {
+                e1.printStackTrace();
+            }
+            throw new JdbcDaoException("数据库连接异常,获取数据库元数据MetaData出错!");
+            // e.printStackTrace();
+        } finally {
+            resultSet = null;
+            try {
+                conn.close();
+            } catch (SQLException e1) {
+                e1.printStackTrace();
+            }
+        }
+
+        String obj = new String();
+        Field[] fields = o.getClass().getDeclaredFields();
+        StringBuilder fieldBuffer = new StringBuilder();
+        StringBuilder valueBuilder = new StringBuilder();
+        final List<Object> valueObjects = new ArrayList<Object>();
+        fieldBuffer.append("insert into " + o.getClass().getSimpleName().toUpperCase() + " (");
+        valueBuilder.append(") values(");
+
+        for (Field field : fields) {
+            if (flagAcr) {
+                // if (!field.getName().toUpperCase().equals(pk.toUpperCase())
+
+                // ) {
+                // PropertyDescriptor pd = null;
+                try {
+                    // pd = new PropertyDescriptor(field.getName(),
+                    // o.getClass());
+                    StringBuilder getMethodName = new StringBuilder();
+
+                    getMethodName.append("get");
+                    getMethodName.append(field.getName().substring(0, 1).toUpperCase());
+                    getMethodName.append(field.getName().substring(1));
+
+                    Method getMethod = o.getClass().getMethod(String.valueOf(getMethodName), new Class[] {});
+                    // Method getMethod = pd.getReadMethod();
+                    if (field.getName().toUpperCase().equals(pk.toUpperCase())) {
+                        fieldBuffer.append(field.getName().toUpperCase() + ",");
+                        valueBuilder.append("? ,");
+
+                        if (field.getType() == Long.class) {
+                            Long temp = sequence.nextLongValue();
+                            obj = String.valueOf(temp);
+                            valueObjects.add(temp);
+                        } else if (field.getType() == Integer.class) {
+                            Integer temp = sequence.nextIntValue();
+                            obj = String.valueOf(temp);
+                            valueObjects.add(temp);
+
+                        } else if (field.getType() == String.class) {
+
+                            if (StringUtils.notEmp(getMethod.invoke(o))) {
+                                valueObjects.add(getMethod.invoke(o));
+
+                            } else {
+                                // String temp=GeneralUUIDHelper.newId();
+                                // //String temp=sequence.nextStringValue();
+                                // obj=temp;
+                                Long temp = sequence.nextLongValue();
+                                obj = String.valueOf(temp);
+                                valueObjects.add(obj);
+                            }
+
+                        }
+
+                    } else {
+                        // if (getMethod.invoke(o) != null) {
+                        fieldBuffer.append(field.getName().toUpperCase() + ",");
+                        valueBuilder.append("? ,");
+                        valueObjects.add(getMethod.invoke(o));
+                        // }
+                    }
+
+                } catch (Exception e) {
+                    logger.debug("调用反射获取PropertyDescriptor时抛出异常:");
+                    // e.printStackTrace();
+                    continue;
+                }
+                // }
+                /*
+                 * else if
+                 * (field.getName().toUpperCase().equals(pk.toUpperCase())) {
+                 * PropertyDescriptor pd = null; try { pd = new
+                 * PropertyDescriptor(pk, o.getClass()); Method getMethod =
+                 * pd.getReadMethod(); if (getMethod.invoke(o) != null) {
+                 * fieldBuffer.append(field.getName().toUpperCase() + ",");
+                 * valueBuilder.append("? ,");
+                 * 
+                 * if (field.getType() == Long.class) {
+                 * valueObjects.add(sequence.nextLongValue());; } else if
+                 * (field.getType() == Integer.class) {
+                 * valueObjects.add(sequence.nextIntValue());; } else if
+                 * (field.getType() == String.class) {
+                 * valueObjects.add(sequence.nextStringValue());; } } } catch
+                 * (Exception e) {
+                 * logger.debug("调用反射获取PropertyDescriptor时抛出异常:"); //
+                 * e.printStackTrace(); continue; } }
+                 */
+            } else {
+                PropertyDescriptor pd = null;
+                try {
+                    pd = new PropertyDescriptor(field.getName(), o.getClass());
+                    Method getMethod = pd.getReadMethod();
+                    if (getMethod.invoke(o) != null) {
+                        fieldBuffer.append(field.getName() + ",");
+                        valueBuilder.append("? ,");
+                        valueObjects.add(getMethod.invoke(o));
+                    }
+                } catch (Exception e) {
+                    logger.debug("调用反射获取PropertyDescriptor时抛出异常:");
+                    // e.printStackTrace();
+                    continue;
+                }
+            }
+
+        }
+        final String sql = fieldBuffer.toString().substring(0, fieldBuffer.toString().lastIndexOf(",")) + valueBuilder.toString().substring(0, valueBuilder.toString().lastIndexOf(",")) + " )";
+
+        if (flagAcr) {
+            KeyHolder key = new GeneratedKeyHolder();
+
+            update(new PreparedStatementCreator() {
+
+                @Override
+                public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
+
+                    PreparedStatement ps = con.prepareStatement(sql, PreparedStatement.RETURN_GENERATED_KEYS);
+
+                    Object[] params = valueObjects.toArray();
+                    for (int i = 0; i < params.length; ++i) {
+                        Object obj = params[i];
+                        if (null == obj) {
+                            ps.setNull(i + 1, Types.CHAR);
+                        } else if (obj instanceof java.sql.Date) {
+                            ps.setDate(i + 1, (java.sql.Date) obj);
+                        } else if (obj instanceof java.sql.Timestamp) {
+                            ps.setTimestamp(i + 1, (java.sql.Timestamp) obj);
+                        } else if (obj instanceof java.util.Date) {
+
+                            java.util.Date date = (java.util.Date) obj;
+                            ps.setTimestamp(i + 1, new java.sql.Timestamp(date.getTime()));
+                        } else {
+                            ps.setObject(i + 1, obj);
+                        }
+                    }
+                    return ps;
+                }
+
+            }, key);
+
+            Field pkField = null;
+            for (Field field : fields) {
+                if (field.getName().toUpperCase().equals(pk.toUpperCase())) {
+                    pk = field.getName();
+                    pkField = field;
+                }
+            }
+
+            PropertyDescriptor pd1 = new PropertyDescriptor(pk, o.getClass());
+            Method setMethod = pd1.getWriteMethod();
+            if (pkField.getType() == Long.class) {
+                setMethod.invoke(o, Long.valueOf(obj));
+            } else if (pkField.getType() == Integer.class) {
+                setMethod.invoke(o, Integer.valueOf(obj));
+            } else if (pkField.getType() == String.class) {
+                setMethod.invoke(o, String.valueOf(obj));
+            }
+            return o;
+        } else {
+            update(new PreparedStatementCreator() {
+
+                @Override
+                public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
+
+                    PreparedStatement ps = con.prepareStatement(sql, PreparedStatement.RETURN_GENERATED_KEYS);
+
+                    Object[] params = valueObjects.toArray();
+                    for (int i = 0; i < params.length; ++i) {
+                        Object obj = params[i];
+                        if (null == obj) {
+                            ps.setNull(i + 1, Types.CHAR);
+                        } else if (obj instanceof java.sql.Date) {
+                            ps.setDate(i + 1, (java.sql.Date) obj);
+                        } else if (obj instanceof java.sql.Timestamp) {
+                            ps.setTimestamp(i + 1, (java.sql.Timestamp) obj);
+                        } else if (obj instanceof java.util.Date) {
+
+                            java.util.Date date = (java.util.Date) obj;
+
+                            ps.setDate(i + 1, new java.sql.Date(date.getTime()));
+                        } else {
+                            ps.setObject(i + 1, obj);
+                        }
+                    }
+                    return ps;
+                }
+
+            });
+
+            for (Field field : fields) {
+                if (field.getName().toUpperCase().equals(pk.toUpperCase())) {
+                    pk = field.getName();
+                }
+            }
+
+            PropertyDescriptor pd1 = new PropertyDescriptor(pk, o.getClass());
+            Method getMethod = pd1.getReadMethod();
+            return get(o.getClass(), (Serializable) getMethod.invoke(o));
+        }
+
+    }
+
+    /**
+     * 保存对象,适用类名与表名不匹配,但是字段和属性匹配。
+     * 
+     * @param tableName
+     * @param o
+     * @return
+     * @throws JdbcDaoException
+     * @throws IntrospectionException
+     * @throws IllegalArgumentException
+     * @throws IllegalAccessException
+     * @throws InvocationTargetException
+     */
+    public Object save(String tableName, Object o) throws JdbcDaoException, IntrospectionException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {
+        String pk = null;
+        Connection conn = null;
+        ResultSet resultSet = null;
+        try {
+            conn = getDataSource().getConnection();
+            resultSet = conn.getMetaData().getColumns(null, null, tableName.toUpperCase(), null);
+            if (!resultSet.isAfterLast()) {
+                resultSet.next();
+                pk = resultSet.getString("COLUMN_NAME");
+            }
+        } catch (SQLException e) {
+            try {
+                conn.close();
+            } catch (SQLException e1) {
+                e1.printStackTrace();
+            }
+            throw new JdbcDaoException("数据库连接异常,获取数据库元数据MetaData出错!");
+            // e.printStackTrace();
+        } finally {
+            resultSet = null;
+            try {
+                conn.close();
+            } catch (SQLException e1) {
+                e1.printStackTrace();
+            }
+        }
+
+        Field[] fields = o.getClass().getDeclaredFields();
+        StringBuilder fieldBuffer = new StringBuilder();
+        StringBuilder valueBuilder = new StringBuilder();
+        final List<Object> valueObjects = new ArrayList<Object>();
+        fieldBuffer.append("insert into " + tableName.toUpperCase() + " (");
+        valueBuilder.append(") values(");
+        for (Field field : fields) {
+            if (!field.getName().toUpperCase().equals(pk.toUpperCase())) {
+                PropertyDescriptor pd;
+                try {
+                    pd = new PropertyDescriptor(field.getName(), o.getClass());
+                    Method getMethod = pd.getReadMethod();
+                    if (getMethod.invoke(o) != null) {
+                        fieldBuffer.append(field.getName() + ",");
+                        valueBuilder.append("? ,");
+                        valueObjects.add(getMethod.invoke(o));
+                    }
+                } catch (IntrospectionException e) {
+                    logger.debug("调用反射获取PropertyDescriptor时抛出异常:");
+                    // e.printStackTrace();
+                    continue;
+                }
+            }
+        }
+        final String sql = fieldBuffer.toString().substring(0, fieldBuffer.toString().lastIndexOf(",")) + valueBuilder.toString().substring(0, valueBuilder.toString().lastIndexOf(",")) + " )";
+
+        KeyHolder key = new GeneratedKeyHolder();
+        update(new PreparedStatementCreator() {
+
+            @Override
+            public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
+
+                PreparedStatement ps = con.prepareStatement(sql, PreparedStatement.RETURN_GENERATED_KEYS);
+
+                Object[] params = valueObjects.toArray();
+                for (int i = 0; i < params.length; ++i) {
+                    Object obj = params[i];
+                    if (null == obj) {
+                        ps.setNull(i + 1, Types.CHAR);
+                    } else if (obj instanceof java.sql.Date) {
+                        ps.setDate(i + 1, (java.sql.Date) obj);
+                    } else if (obj instanceof java.sql.Timestamp) {
+                        ps.setTimestamp(i + 1, (java.sql.Timestamp) obj);
+                    } else if (obj instanceof java.util.Date) {
+
+                        java.util.Date date = (java.util.Date) obj;
+                        ps.setTimestamp(i + 1, new java.sql.Timestamp(date.getTime()));
+                    } else {
+                        ps.setObject(i + 1, obj);
+                    }
+                }
+                return ps;
+            }
+
+        }, key);
+
+        for (Field field : fields) {
+            if (field.getName().toUpperCase().equals(pk.toUpperCase())) {
+                pk = field.getName();
+            }
+        }
+
+        PropertyDescriptor pd = new PropertyDescriptor(pk, o.getClass());
+        Method setMethod = pd.getWriteMethod();
+        setMethod.invoke(o, sequence.nextStringValue());
+        return o;
+    }
+
+    /**
+     * 设置抓取记录
+     * 
+     * @param sb
+     * @param offset
+     * @param maxResults
+     */
+    public void setLimitResult(StringBuilder sb, int offset, int maxResults) {
+        if (sb != null)
+            sb.append(" Limit ").append(offset).append(", ").append(maxResults);
+    }
+
+    /**
+     * 更新对象
+     * 
+     * @param o
+     * @return
+     * @throws JdbcDaoException
+     * @throws IntrospectionException
+     * @throws IllegalArgumentException
+     * @throws IllegalAccessException
+     * @throws InvocationTargetException
+     */
+    public void update(Object o) throws JdbcDaoException, IntrospectionException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {
+        String pk = null;
+        Object pkValue = null;
+        ResultSet resultSet = null;
+        Connection conn = null;
+        try {
+            conn = getDataSource().getConnection();
+            resultSet = conn.getMetaData().getColumns(null, null, o.getClass().getSimpleName().toUpperCase(), null);
+            if (!resultSet.isAfterLast()) {
+                resultSet.next();
+                pk = resultSet.getString("COLUMN_NAME");
+            }
+        } catch (SQLException e) {
+            try {
+                conn.close();
+            } catch (SQLException e1) {
+                e1.printStackTrace();
+            }
+            e.printStackTrace();
+        } finally {
+            try {
+                conn.close();
+            } catch (SQLException e1) {
+                e1.printStackTrace();
+            }
+            resultSet = null;
+        }
+
+        Field[] fields = o.getClass().getDeclaredFields();
+        StringBuilder sqlBuffer = new StringBuilder();
+        final List<Object> valueObjects = new ArrayList<Object>();
+        sqlBuffer.append("UPDATE " + o.getClass().getSimpleName().toUpperCase() + " SET ");
+        for (Field field : fields) {
+            PropertyDescriptor pd = null;
+            try {
+                pd = new PropertyDescriptor(field.getName(), o.getClass());
+                Method getMethod = pd.getReadMethod();
+                if (!field.getName().toUpperCase().equals(pk.toUpperCase())) {
+                    if (getMethod.invoke(o) != null) {
+                        sqlBuffer.append(field.getName() + " = ? ,");
+                        valueObjects.add(getMethod.invoke(o));
+                    }
+                } else {
+                    pkValue = getMethod.invoke(o);
+                }
+            } catch (Exception e) {
+                logger.debug("调用反射获取PropertyDescriptor时抛出异常:");
+                // e.printStackTrace();
+                continue;
+            }
+
+        }
+        valueObjects.add(pkValue);
+
+        final String sql = sqlBuffer.toString().substring(0, sqlBuffer.toString().length() - 1) + "where " + pk + " = ?";
+
+        update(new PreparedStatementCreator() {
+            @Override
+            public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
+                PreparedStatement ps = con.prepareStatement(sql);
+
+                Object[] params = valueObjects.toArray();
+                for (int i = 0; i < params.length; ++i) {
+                    Object obj = params[i];
+                    if (null == obj) {
+                        ps.setNull(i + 1, Types.CHAR);
+                    } else if (obj instanceof java.sql.Date) {
+                        ps.setDate(i + 1, (java.sql.Date) obj);
+                    } else if (obj instanceof java.sql.Timestamp) {
+                        ps.setTimestamp(i + 1, (java.sql.Timestamp) obj);
+                    } else if (obj instanceof java.util.Date) {
+
+                        java.util.Date date = (java.util.Date) obj;
+                        ps.setTimestamp(i + 1, new java.sql.Timestamp(date.getTime()));
+                        // ps.setDate(i + 1, new java.sql.Date(date.getTime()));
+                    } else {
+                        ps.setObject(i + 1, obj);
+                    }
+                }
+                return ps;
+            }
+
+        });
+    }
+
+}

+ 690 - 0
src/com/gyee/dao/SimpleJdbcDaoTemplate.java

@@ -0,0 +1,690 @@
+package com.gyee.dao;
+
+import java.io.Serializable;
+import java.lang.reflect.Field;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import javax.sql.DataSource;
+
+import org.apache.log4j.Logger;
+import org.springframework.jdbc.core.JdbcOperations;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.core.RowMapper;
+import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations;
+import org.springframework.jdbc.core.simple.ParameterizedBeanPropertyRowMapper;
+import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
+
+import com.gyee.util.PaginationList;
+import com.gyee.util.QueryOrder;
+import com.gyee.util.StringUtils;
+
+
+
+
+public class SimpleJdbcDaoTemplate extends SimpleJdbcTemplate {
+
+	private static Logger log = Logger.getLogger(SimpleJdbcDaoTemplate.class);
+
+	/**
+	 * 按命名方式的sql 查询 分页
+	 * 
+	 * @param sql
+	 * @param params
+	 * @param offset
+	 * @param maxResults
+	 * @param rowMapper
+	 * @return
+	 */
+	@SuppressWarnings("unchecked")
+	public PaginationList findNativeBySql(String sql, Map<String, Object> params, int offset, int maxResults, RowMapper rowMapper, QueryOrder... orders) {
+		StringBuilder sb = new StringBuilder(sql);
+		int total = -1;
+		StringBuilder totalSQL = new StringBuilder(" SELECT   count(*) FROM ( ");
+		totalSQL.append(sb.toString());
+		totalSQL.append(" ) totalTable ");
+		total = queryForInt(totalSQL.toString(), params);
+		if (orders.length > 1) {
+			for (int i = 0; i < orders.length; i++) {
+				if (orders[i] != null)
+					orders[i].appendSqlOrder(sb);
+			}
+		}
+		setLimitResult(sb, offset, maxResults); // 添加数据抓取
+
+		return new PaginationList(getNamedParameterJdbcOperations().query(sb.toString(), params, rowMapper), total);
+	}
+	/**
+	 * 按命名方式的sql 查询 分页
+	 * 
+	 * @param sql
+	 * @param params
+	 * @param offset
+	 * @param maxResults
+	 * @param rowMapper
+	 * @return
+	 */
+	@SuppressWarnings("unchecked")
+	public PaginationList findNativeBySql(String countsql,String querysql, Map<String, Object> params, int offset, int maxResults, RowMapper rowMapper) {
+
+		if(StringUtils.notEmp(countsql) && StringUtils.notEmp(querysql) )
+		{
+			int total = -1;
+			StringBuilder totalSQL = new StringBuilder(" SELECT   count(*) FROM ( ");
+			totalSQL.append(String.valueOf(countsql));
+			totalSQL.append(" ) totalTable ");
+			total = queryForInt(totalSQL.toString(), params);
+
+			return new PaginationList(getNamedParameterJdbcOperations().query(String.valueOf(querysql), params, rowMapper), total);
+
+		}
+		return new PaginationList(new ArrayList(),0);
+	}
+	/**
+	 * 按命名方式的sql 查询
+	 * 
+	 * @param sql
+	 * @param params
+	 * @param rowMapper
+	 * @param orders
+	 * @return
+	 */
+	@SuppressWarnings("unchecked")
+	public List findNativeBySql(String sql, Map<String, Object> params, RowMapper rowMapper, QueryOrder... orders) {
+		StringBuilder sb = new StringBuilder(sql);
+		if (orders.length > 1) {
+			for (int i = 0; i < orders.length; i++) {
+				if (orders[i] != null)
+					orders[i].appendSqlOrder(sb);
+			}
+		}
+		return getNamedParameterJdbcOperations().query(sb.toString(), params, rowMapper);
+	}
+
+	/**
+	 * 按属性查询
+	 * 
+	 * @param tableName
+	 * @param params
+	 *            表字段和值
+	 * @param rowMapper
+	 * @param orders
+	 * @return
+	 */
+	@SuppressWarnings("unchecked")
+	public List findByProperties(Class clazz, final Map<String, Object> params, final QueryOrder... orders) {
+		StringBuilder sb = new StringBuilder();
+		sb.append("select * from " + clazz.getSimpleName().toUpperCase());
+		List<String> keyList = operateParams(params, sb);
+		if (!keyList.isEmpty()) {
+			for (String key : keyList) {
+				params.remove(key);
+			}
+		}
+		// if(params != null && params.size()>0){
+		// sb.append(" where ");
+		// int i=0;
+		// for (Map.Entry<String, ?> entry : params.entrySet()) {
+		// if(i==0){
+		// sb.append(entry.getKey()).append(" = :").append(entry.getKey());
+		// }else {
+		// sb.append(" and ").append(entry.getKey()).append(" =:").append(entry.getKey());
+		// }
+		// i++;
+		// }
+		// }
+
+		if (orders.length > 0) {
+			for (int i = 0; i < orders.length; i++) {
+				if (orders[i] != null)
+					orders[i].appendSqlOrder(sb,true);
+			}
+			String temp=sb.substring(0,sb.lastIndexOf(","));
+			sb.setLength(0);
+			sb.append(temp);
+		}
+		return getNamedParameterJdbcOperations().query(sb.toString(), params, ParameterizedBeanPropertyRowMapper.newInstance(clazz));
+	}
+
+	/**
+	 * 按属性查询分页
+	 * 
+	 * @param clazz
+	 * @param params
+	 * @param offset
+	 * @param maxResults
+	 * @param orders
+	 * @return
+	 */
+	@SuppressWarnings("unchecked")
+	public PaginationList findByProperties(Class clazz, final Map<String, Object> params, int offset, int maxResults, final QueryOrder... orders) {
+		StringBuilder sb = new StringBuilder();
+		sb.append("select * from " + clazz.getSimpleName().toUpperCase());
+		List<String> keyList = operateParams(params, sb);
+		if (!keyList.isEmpty()) {
+			for (String key : keyList) {
+				params.remove(key);
+			}
+		}
+		/*if (params != null && params.size() > 0) {
+			sb.append(" where ");
+			int i = 0;
+			for (Map.Entry<String, ?> entry : params.entrySet()) {
+				if (i == 0) {
+					if (entry.getKey().startsWith("@")) {
+
+						String temp = entry.getKey().substring(1);
+						sb.append(temp).append(" >=:").append(entry.getKey());
+					} else if (entry.getKey().startsWith("$")) {
+						String temp = entry.getKey().substring(1);
+						sb.append(temp).append(" <=:").append(entry.getKey());
+					} else {
+						sb.append(entry.getKey()).append(" =:").append(entry.getKey());
+					}
+
+				} else {
+					if (entry.getKey().startsWith("@")) {
+
+						String temp = entry.getKey().substring(1);
+						sb.append(" and ").append(temp).append(" >=:").append(entry.getKey());
+					} else if (entry.getKey().startsWith("$")) {
+						String temp = entry.getKey().substring(1);
+						sb.append(" and ").append(temp).append(" <=:").append(entry.getKey());
+					} else {
+						sb.append(" and ").append(entry.getKey()).append(" =:").append(entry.getKey());
+					}
+					sb.append(" and ").append(entry.getKey()).append(" =:").append(entry.getKey());
+				}
+				i++;
+			}
+		}*/
+
+		int total = -1;
+		StringBuilder totalSQL = new StringBuilder(" SELECT count(*) FROM ( ");
+		totalSQL.append(sb.toString());
+		totalSQL.append(" ) totalTable ");
+		total = queryForInt(totalSQL.toString(), params);
+		if (orders != null && orders.length > 0) {
+			sb.append(" order by ");
+			for (int i = 0; i < orders.length; i++) {
+				if (orders[i] != null) {
+					if (i == 0) {
+						sb.append(orders[i].toString());
+					} else {
+						sb.append(",").append(orders[i].toString());
+					}
+					// orders[i].appendSqlOrder(sb);
+				} else {
+					sb.append("''");
+				}
+			}
+		}
+		setLimitResult(sb, offset, maxResults); // 添加数据抓取
+		log.info("sql: " + sb.toString());
+		return new PaginationList(getNamedParameterJdbcOperations().query(sb.toString(), params, ParameterizedBeanPropertyRowMapper.newInstance(clazz)), total);
+	}
+	
+	/**
+	 * 按属性查询分页
+	 * 
+	 * @param clazz
+	 * @param params
+	 * @param offset
+	 * @param maxResults
+	 * @param orders
+	 * @return
+	 * @throws Exception 
+	 */
+	@SuppressWarnings("unchecked")
+	public PaginationList findByProperties(Class clazz,String orderId,String order, final Map<String, Object> params, int offset, int maxResults, final String... ascending) throws Exception {
+		StringBuilder sb = new StringBuilder();
+		
+	
+		sb.append(" SELECT   * from ").append(clazz.getSimpleName().toUpperCase());
+			//	.append(" where 1=1 ");
+
+		operateParams(params, sb);
+	
+		int total = -1;
+		StringBuilder totalSQL = new StringBuilder(" SELECT count(*) FROM ( ");
+		totalSQL.append(sb.toString());
+		totalSQL.append(" ) totalTable ");
+		total = queryForInt(totalSQL.toString(), params);
+		
+		sb.setLength(0);
+		sb.append("SELECT * FROM (SELECT  ROW_NUMBER() Over(order by ")
+		.append(orderId.toUpperCase());
+		if(null !=ascending && ascending.length>0)
+		{
+			sb.append(" ").append(ascending[0]);
+		}
+		sb.append(")");
+		
+		sb.append("  num   ");
+		sb.append(querField(clazz));
+		sb.append(" from ");
+		sb.append(clazz.getSimpleName().toUpperCase());
+	//	sb.append(" where 1=1 ");
+		operateParams(params, sb);
+		if(StringUtils.notEmp(order))
+		{
+			sb.append(" order by ").append(order);
+			if(null !=ascending && ascending.length>0)
+			{
+				sb.append(" ").append(ascending[0]);
+			}
+		}
+		sb.append(" )  t where num>=")
+		.append(offset)
+		.append(" and num<=")
+		.append(maxResults)
+		.append(" ");
+		
+		operateAppendParams(params, sb);
+		
+		if(StringUtils.notEmp(order))
+		{
+			sb.append(" order by ").append(order);
+			if(null !=ascending && ascending.length>0)
+			{
+				sb.append(" ").append(ascending[0]);
+			}
+		}
+		
+		
+		
+		log.info("sql: " + sb.toString());
+		return new PaginationList(getNamedParameterJdbcOperations().query(String.valueOf(sb), params, ParameterizedBeanPropertyRowMapper.newInstance(clazz)), total);
+	}
+	
+	protected String querField(Class<?> classType) throws Exception {
+
+		if (null != classType) {
+
+			// 获得对象的所有属性
+			Field fields[] = classType.getDeclaredFields();
+
+			
+			StringBuilder sb=new StringBuilder(" ,");
+			for (int i = 0; i < fields.length; i++) {
+				Field field = fields[i];
+					if(!field.getName().equals("serialVersionUID"))
+					{
+						sb.append(field.getName()).append(",");
+					}
+			}
+
+			return String.valueOf(sb.substring(0, sb.lastIndexOf(",")));
+		}
+
+		return null;
+	}
+	private void setParams(final Map<String, Object> params, StringBuilder sb) {
+	    if (params != null && params.size() > 0) {
+		
+			int i = 0;
+			for (Map.Entry<String, Object> entry : params.entrySet()) {
+
+				String paramKey = entry.getKey();
+				Object paramValue = entry.getValue();
+				
+				sb.append(" and ");
+			
+				if (paramValue instanceof List) {
+					List<Object> list = (List<Object>) paramValue;
+					if (!list.isEmpty()) {
+						if (paramKey.startsWith("!")) {
+							sb.append(entry.getKey()).append(" not in (").append(covertParamToString(list)).append(") ");
+						} else {
+							sb.append(entry.getKey()).append(" in (").append(covertParamToString(list)).append(") ");
+						}
+					}
+				
+				} else if (paramValue instanceof Object[]) {
+					Object[] arrays = (Object[]) paramValue;
+					if (arrays.length > 0) {
+						if (paramKey.startsWith("!")) {
+							sb.append(entry.getKey()).append(" not in (").append(covertParamToString(arrays)).append(") ");
+						} else {
+							sb.append(entry.getKey()).append(" in (").append(covertParamToString(arrays)).append(") ");
+						}
+					}
+					
+				} else if (paramKey.startsWith("@")) {
+
+					String temp = paramKey.substring(1);
+					sb.append(temp).append(" >=:").append(entry.getKey());
+				} else if (paramKey.startsWith("$")) {
+					String temp = paramKey.substring(1);
+					sb.append(temp).append(" <=:").append(entry.getKey());
+				}
+				else if (paramKey.startsWith("#")) {
+					String temp = paramKey.substring(1);
+					sb.append(temp).append(" <:").append(entry.getKey());
+				}
+				else {
+					sb.append(entry.getKey()).append(" =:").append(entry.getKey());
+				}
+				i++;
+			}
+		}
+    }
+
+	@SuppressWarnings("unchecked")
+	private List<String> operateParams(Map<String, Object> params, StringBuilder sb) {
+		List<String> keyList = new ArrayList<String>();
+		if (params != null && params.size() > 0) {
+			sb.append(" where ");
+			int i = 0;
+			for (Map.Entry<String, Object> entry : params.entrySet()) {
+
+				String paramKey = entry.getKey();
+				Object paramValue = entry.getValue();
+				if (i != 0) {
+					sb.append(" and ");
+				}
+
+				if (paramValue instanceof List) {
+					List<Object> list = (List<Object>) paramValue;
+					if (!list.isEmpty()) {
+						
+						if (paramKey.startsWith("!")) {
+							String temp = paramKey.substring(1).toUpperCase();
+							
+							sb.append(temp).append(" not in (").append(covertParamToString(list)).append(") ");
+						} else {
+							sb.append(paramKey).append(" in (").append(covertParamToString(list)).append(") ");
+						}
+					}
+					keyList.add(paramKey);
+				} else if (paramValue instanceof Object[]) {
+					Object[] arrays = (Object[]) paramValue;
+					if (arrays.length > 0) {
+						
+						if (paramKey.startsWith("!")) {
+							String temp = paramKey.substring(1).toUpperCase();
+							sb.append(temp).append(" not in (").append(covertParamToString(arrays)).append(") ");
+						} else {
+							sb.append(paramKey).append(" in (").append(covertParamToString(arrays)).append(") ");
+						}
+					}
+					keyList.add(paramKey);
+				} else if (paramKey.startsWith("@")) {
+
+					String temp = paramKey.substring(1).toUpperCase();
+					sb.append(temp).append(" >=:").append(entry.getKey());
+				} else if (paramKey.startsWith("$")) {
+					String temp = paramKey.substring(1).toUpperCase();
+					sb.append(temp).append(" <=:").append(entry.getKey());
+				}
+				else if (paramKey.startsWith("#")) {
+					String temp = paramKey.substring(1).toUpperCase();
+					sb.append(temp).append(" <:").append(entry.getKey());
+				}
+				else if (paramKey.startsWith("%")) {
+					String temp = paramKey.substring(1).toUpperCase();
+					sb.append(temp).append(" like '%").append(entry.getValue()).append("%'");
+					keyList.add(paramKey);
+				}else if (paramKey.startsWith("!")) {
+					String temp = paramKey.substring(1).toUpperCase();
+					sb.append(temp).append(" IS NOT NULL");
+					keyList.add(paramKey);
+				}
+				else {
+					sb.append(entry.getKey().toUpperCase()).append(" =:").append(entry.getKey());
+				}
+				i++;
+			}
+		}
+		return keyList;
+	}
+
+	@SuppressWarnings("unchecked")
+	private List<String> operateAppendParams(Map<String, Object> params, StringBuilder sb) {
+		List<String> keyList = new ArrayList<String>();
+		if (params != null && params.size() > 0) {
+	
+			for (Map.Entry<String, Object> entry : params.entrySet()) {
+
+				String paramKey = entry.getKey();
+				Object paramValue = entry.getValue();
+				sb.append(" and ");
+				if (paramValue instanceof List) {
+					List<Object> list = (List<Object>) paramValue;
+					if (!list.isEmpty()) {
+						
+						if (paramKey.startsWith("!")) {
+							String temp = paramKey.substring(1).toUpperCase();
+							
+							sb.append(temp).append(" not in (").append(covertParamToString(list)).append(") ");
+						} else {
+							sb.append(paramKey).append(" in (").append(covertParamToString(list)).append(") ");
+						}
+					}
+					keyList.add(paramKey);
+				} else if (paramValue instanceof Object[]) {
+					Object[] arrays = (Object[]) paramValue;
+					if (arrays.length > 0) {
+						
+						if (paramKey.startsWith("!")) {
+							String temp = paramKey.substring(1).toUpperCase();
+							sb.append(temp).append(" not in (").append(covertParamToString(arrays)).append(") ");
+						} else {
+							sb.append(paramKey).append(" in (").append(covertParamToString(arrays)).append(") ");
+						}
+					}
+					keyList.add(paramKey);
+				} else if (paramKey.startsWith("@")) {
+
+					String temp = paramKey.substring(1).toUpperCase();
+					sb.append(temp).append(" >=:").append(entry.getKey());
+				} else if (paramKey.startsWith("$")) {
+					String temp = paramKey.substring(1).toUpperCase();
+					sb.append(temp).append(" <=:").append(entry.getKey());
+				}else if (paramKey.startsWith("#")) {
+					String temp = paramKey.substring(1).toUpperCase();
+					sb.append(temp).append(" <:").append(entry.getKey());
+				}
+				else if (paramKey.startsWith("%")) {
+					String temp = paramKey.substring(1).toUpperCase();
+					sb.append(temp).append(" like '%").append(entry.getValue()).append("%'");
+					keyList.add(paramKey);
+				}else if (paramKey.startsWith("!")) {
+					String temp = paramKey.substring(1).toUpperCase();
+					sb.append(temp).append(" IS NOT NULL");
+					keyList.add(paramKey);
+				}
+				else {
+					sb.append(entry.getKey().toUpperCase()).append(" =:").append(entry.getKey());
+				}
+			
+			}
+		}
+		return keyList;
+	}
+	/**
+	 * 
+	 * @param list
+	 * @return
+	 */
+	@SuppressWarnings("unchecked")
+	public String covertParamToString(Object o) {
+		StringBuilder sb = new StringBuilder();
+		if (o instanceof List) {
+			List<Object> list = (List) o;
+			if (!list.isEmpty()) {
+				for (int i = 0; i < list.size(); i++) {
+					
+					if(list.get(i)instanceof String)
+					{
+						if (i == list.size() - 1)
+							sb.append("'").append(list.get(i).toString()).append("'");
+						else
+							sb.append("'").append(list.get(i).toString()).append("'").append(" , ");
+					}else if(list.get(i)instanceof Integer)
+					{
+						if (i == list.size() - 1)
+							sb.append(list.get(i).toString());
+						else
+							sb.append(list.get(i).toString()).append(" , ");
+					}
+					
+				}
+				return sb.toString();
+			}
+		}
+
+		if (o instanceof Object[]) {
+			Object[] arrs = (Object[]) o;
+			if (arrs.length > 0) {
+				for (int i = 0; i < arrs.length; i++) {
+					if(arrs[i] instanceof String)
+					{
+						if (i == arrs.length - 1)
+							sb.append("'").append(arrs[i].toString()).append("'");
+						else
+							sb.append("'").append(arrs[i].toString()).append("'").append(" , ");
+					}else if(arrs[i] instanceof Integer)
+					{
+						if (i == arrs.length - 1)
+							sb.append(arrs[i].toString());
+						else
+							sb.append(arrs[i].toString()).append(" , ");
+					}
+					
+				}
+				return sb.toString();
+			}
+		}
+		return null;
+	}
+
+	// ===================================================
+
+	/**
+	 * 通过命名方式获取 数据库记录 并转换为对象
+	 * 
+	 * @param clazz
+	 * @param id
+	 * @return
+	 */
+	@SuppressWarnings("unchecked")
+	public Object get(Class clazz, Serializable id) {
+		String pk = null;
+		ResultSet resultSet = null;
+		Connection conn = null;
+		try {
+			conn = ((JdbcTemplate) getJdbcOperations()).getDataSource().getConnection();
+			resultSet = conn.getMetaData().getPrimaryKeys(null, null, clazz.getSimpleName().toUpperCase());
+			if (!resultSet.isAfterLast()) {
+				resultSet.next();
+				pk = resultSet.getString("COLUMN_NAME");
+			}
+		} catch (SQLException e) {
+			try {
+				conn.close();
+			} catch (SQLException e1) {
+				e1.printStackTrace();
+			}
+			e.printStackTrace();
+		} finally {
+			try {
+				conn.close();
+			} catch (SQLException e1) {
+				e1.printStackTrace();
+			}
+			resultSet = null;
+		}
+		String sql = String.format("select * from  %1$s where %2$s = :pk", clazz.getSimpleName().toUpperCase(), pk);
+		return getNamedParameterJdbcOperations().queryForObject(sql, Collections.singletonMap("pk", id), ParameterizedBeanPropertyRowMapper.newInstance(clazz));
+	}
+
+	/**
+	 * 获取指定对象对应的数据库表 指定条件的记录数
+	 * 
+	 * @param clazz
+	 * @param properties
+	 * @return
+	 */
+	public long count(Class<?> clazz, Map<String, ?> properties) {
+		StringBuilder sql = new StringBuilder();
+		sql.append("select count(0) from ").append(clazz.getSimpleName().toUpperCase()).append(" ");
+		if (properties != null && !properties.isEmpty()) {
+			sql.append("where ");
+			for (Map.Entry<String, ?> entry : properties.entrySet()) {
+				sql.append(entry.getKey()).append(" = :").append(entry.getKey()).append(" and ");
+			}
+
+		}
+		return queryForLong(sql.toString().lastIndexOf("and") == -1 ? sql.toString() : sql.toString().substring(0, sql.toString().lastIndexOf("and")), properties);
+	}
+
+	/**
+	 * 获取指定表的记录数
+	 * 
+	 * @param tableName
+	 * @param properties
+	 * @return
+	 */
+	public long count(String tableName, Map<String, ?> properties) {
+		StringBuilder sql = new StringBuilder();
+		sql.append("select count(0) from ").append(tableName.toUpperCase()).append(" ");
+		if (properties != null && !properties.isEmpty()) {
+			sql.append("where ");
+			for (Map.Entry<String, ?> entry : properties.entrySet()) {
+				sql.append(entry.getKey()).append(" = :").append(entry.getKey()).append(" and ");
+			}
+
+		}
+		return queryForLong(sql.toString().lastIndexOf("and") == -1 ? sql.toString() : sql.toString().substring(0, sql.toString().lastIndexOf("and")), properties);
+	}
+
+	/**
+	 * 求和
+	 * 
+	 * @param clazz
+	 * @param propertyName
+	 * @param properties
+	 * @return
+	 */
+	public Number sum(Class<?> clazz, String propertyName, final Map<String, ?> properties) {
+		StringBuilder sql = new StringBuilder();
+		sql.append("select sum(" + propertyName + ") from ").append(clazz.getSimpleName().toUpperCase()).append(" where ");
+		if (!properties.isEmpty()) {
+			for (Map.Entry<String, ?> entry : properties.entrySet()) {
+				sql.append(entry.getKey()).append(" = :").append(entry.getKey()).append(" and ");
+			}
+		}
+		return (Number) queryForLong(sql.toString().substring(0, sql.toString().lastIndexOf("and")), properties);
+	}
+
+	/**
+	 * 设置抓取记录
+	 * 
+	 * @param sb
+	 * @param offset
+	 * @param maxResults
+	 */
+	public void setLimitResult(StringBuilder sb, int offset, int maxResults) {
+		if (sb != null)
+			sb.append(" Limit ").append(offset).append(", ").append(maxResults);
+	}
+
+	public SimpleJdbcDaoTemplate(DataSource dataSource) {
+		super(dataSource);
+	}
+
+	public SimpleJdbcDaoTemplate(JdbcOperations classicJdbcTemplate) {
+		super(classicJdbcTemplate);
+	}
+
+	public SimpleJdbcDaoTemplate(NamedParameterJdbcOperations namedParameterJdbcTemplate) {
+		super(namedParameterJdbcTemplate);
+	}
+
+}

BIN
src/com/gyee/eDosProxyApi.dll


+ 417 - 0
src/com/gyee/intial/CacheContext.java

@@ -0,0 +1,417 @@
+package com.gyee.intial;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.gyee.model.Electricaltestingpointai;
+import com.gyee.model.Electricaltestingpointdi;
+import com.gyee.model.Meterpoint;
+import com.gyee.model.Modelpower;
+import com.gyee.model.Warning2;
+import com.gyee.model.WindPowerStationTestingPoint2;
+import com.gyee.model.WindTurbineTestingPointAi2;
+import com.gyee.model.WindTurbineTestingPointDi2;
+import com.gyee.model.Windpowerstation;
+import com.gyee.model.Windturbine;
+import com.gyee.service.ElectricaltestingpointaiService;
+import com.gyee.service.ElectricaltestingpointdiService;
+import com.gyee.service.WarningBaseService;
+import com.gyee.service.WindPowerStationService;
+import com.gyee.service.WindPowerStationTestingPointService;
+import com.gyee.service.WindTurbineService;
+import com.gyee.service.WindTurbineTestingPointAIService;
+import com.gyee.service.WindTurbineTestingPointDIService;
+import com.gyee.service.YjIdTransformService;
+import com.gyee.util.QueryOrder;
+
+
+
+@Component
+//public class CacheContext  {
+public class CacheContext implements InitializingBean {
+	
+
+	private Logger logger = Logger.getLogger(this.getClass().getName());
+	@Autowired
+	private QueryCacheServcie queryCacheServcie;
+	@Autowired
+	private WindPowerStationService windPowerStationService;
+	@Autowired
+	private WindTurbineService windTurbineService;
+	@Autowired
+	private WindPowerStationTestingPointService windPowerStationTestingPointService;
+	@Autowired
+	private ElectricaltestingpointaiService electricaltestingpointaiService;
+	@Autowired
+	private ElectricaltestingpointdiService electricaltestingpointdiService;
+	@Autowired
+	private WindTurbineTestingPointAIService windTurbineTestingPointAIService;
+	@Autowired
+	private WindTurbineTestingPointDIService windTurbineTestingPointDIService;
+	@Autowired
+	private YjIdTransformService yjIdTransformService;
+	@Autowired
+	private WarningBaseService warningBaseService;
+	
+	
+	public static Map<String, Map<String, Modelpower>> modelPowermap = new HashMap<String, Map<String, Modelpower>>();// 风电机类型对应功率表
+
+	public static Map<String, Windpowerstation> wpmap = new HashMap<String, Windpowerstation>(); // 风电场MAP
+	public static Map<String, Windturbine> wtmap = new HashMap<String, Windturbine>(); // 风电机MAP
+	public static Map<String, List<Windturbine>> wtsmap = new HashMap<String, List<Windturbine>>(); // 风电场MAP风电机LIST集合
+	public static Map<String, Map<String, WindPowerStationTestingPoint2>> stationPointmap = new HashMap<String, Map<String, WindPowerStationTestingPoint2>>();//场站测点
+	public static Map<String, Map<String, WindTurbineTestingPointAi2>> wtpAimap = new HashMap<String, Map<String, WindTurbineTestingPointAi2>>();// 风电机测点AI表
+	public static Map<String, Map<String, WindTurbineTestingPointDi2>> wtpDimap = new HashMap<String, Map<String, WindTurbineTestingPointDi2>>();// 风电机测点AI表
+
+	public static Map<String, List<WindPowerStationTestingPoint2>> wppointsmap = new HashMap<String, List<WindPowerStationTestingPoint2>>(); // 风电场MAP风电机LIST集合
+	public static Map<String, List<WindTurbineTestingPointAi2>> wtaipointsmap = new HashMap<String, List<WindTurbineTestingPointAi2>>(); // 风电场MAP风电机LIST集合
+	public static Map<String, List<WindTurbineTestingPointDi2>> wtdipointsmap = new HashMap<String, List<WindTurbineTestingPointDi2>>(); // 风电场MAP风电机LIST集合
+	public static Map<String, List<Electricaltestingpointai>> eleaipointsmap = new HashMap<String, List<Electricaltestingpointai>>(); // 风电场MAP风电机LIST集合
+	public static Map<String, List<Electricaltestingpointdi>> eledipointsmap = new HashMap<String, List<Electricaltestingpointdi>>(); // 风电场MAP风电机LIST集合
+	public static List<Warning2> warnls = new ArrayList<Warning2>(); // 报警LIST集合
+	public static Map<String, Warning2> warnnamemap = new HashMap<String, Warning2>(); // 报警按中文描述map
+	public static Map<String, Warning2> warnmap = new HashMap<String, Warning2>(); // 报警
+	public static List<Windpowerstation> wpls = new ArrayList<Windpowerstation>(); // 风电场LIST集合
+	public static List<Windturbine> wtls = new ArrayList<Windturbine>(); // 风电机LIST集合
+	
+	public static Map<String,String> gyeeidmap=new HashMap<String,String>();
+	public static Map<String,String> yjidmap=new HashMap<String,String>();
+	
+	public static List<WindPowerStationTestingPoint2> wppointls = new ArrayList<WindPowerStationTestingPoint2>();
+	public static List<WindPowerStationTestingPoint2> wpjsls = new ArrayList<WindPowerStationTestingPoint2>();
+	public static List<WindPowerStationTestingPoint2> wppowerls = new ArrayList<WindPowerStationTestingPoint2>();
+	public static List<Electricaltestingpointai>   etails=new ArrayList<Electricaltestingpointai>();
+	public static List<Electricaltestingpointdi> etdils = new ArrayList<Electricaltestingpointdi>();
+	public static  List<WindTurbineTestingPointAi2> wtails = new ArrayList<WindTurbineTestingPointAi2>();
+	public static List<WindTurbineTestingPointDi2> wtdils = new ArrayList<WindTurbineTestingPointDi2>();
+	public static List<Meterpoint> mpls = new ArrayList<Meterpoint>();
+
+	@Override
+	public void afterPropertiesSet() throws Exception {
+		logger.info("初始化关系型数据库基础数据开始!......");
+		//long startStamp = System.currentTimeMillis();
+		wpls = windPowerStationService.findAll(QueryOrder.asc("ordernum"));
+		
+		for(Windpowerstation wp:wpls)
+		{
+			if(wp.getId().equals("MCH_GDC"))
+			{
+				wpls.remove(wp);
+				break;
+			}
+		}
+		wtls = windTurbineService.findAll( QueryOrder.asc("id"));
+		if (!wtls.isEmpty()) {
+			List<Windturbine> list = null;
+			for (Windturbine wt : wtls) {
+				wtmap.put(wt.getId(), wt);
+				if (wtsmap.containsKey(wt.getWindpowerstationid())) {
+					list = wtsmap.get(wt.getWindpowerstationid());
+					list.add(wt);
+				} else {
+					list = new ArrayList<Windturbine>();
+					list.add(wt);
+					wtsmap.put(wt.getWindpowerstationid(), list);
+				}
+			}
+		}
+		
+//		wppointls = queryCacheServcie.findWpPointALL();
+//		etails=queryCacheServcie.findEtAiPointALL();
+//		etdils = queryCacheServcie.findEtDiPointALL();
+//		wtails = queryCacheServcie.findWtAiPointALL();
+//		wtdils = queryCacheServcie.findWtDiPointALL();
+//		mpls = queryCacheServcie.findMeterpointALL();
+//		for(WindPowerStationTestingPoint2 wppoint:wppointls)
+//		{
+//			if(wppoint.getRealtimeid().equals("GDNX.JSFW"))
+//			{
+//				wpjsls.add(wppoint);
+//			}else {
+//				wppowerls.add(wppoint);
+//			}
+//			
+//		}
+		warnls = warningBaseService.findAll();
+		if (!warnls.isEmpty()) {
+			for (Warning2 warn : warnls) {
+				warnmap.put(warn.getId(), warn);
+				warnnamemap.put(warn.getChinesetext(), warn);
+			}
+		}
+		modelPowermap = queryCacheServcie.findModelPowers();
+		
+//		stationPointmap = queryCacheServcie.findWpPointMap();
+		
+		
+		wtpAimap = queryCacheServcie.findWtAiPointMap();
+		wtpDimap= queryCacheServcie.findWtDiPointMap();
+		
+//		
+////		wppointsmap = queryCacheServcie.findWpPointList();
+////		wtaipointsmap = queryCacheServcie.findWtAiPointList();
+////		wtdipointsmap= queryCacheServcie.findWtDiPointList();
+////		
+////		eleaipointsmap = queryCacheServcie.findElectricaltestingpointAiList();
+////		eledipointsmap = queryCacheServcie.findElectricaltestingpointDiList();
+//		
+//		gyeeidmap=yjIdTransformService.getGyeeMapInfo();
+//		yjidmap=yjIdTransformService.getYjMapInfo();
+		
+		// 风机比武所用的数据封装结束
+        logger.info("初始化关系型数据库基础数据完毕!......");
+
+	}
+
+
+
+	public Logger getLogger() {
+		return logger;
+	}
+
+	public void setLogger(Logger logger) {
+		this.logger = logger;
+	}
+
+	public QueryCacheServcie getQueryCacheServcie() {
+		return queryCacheServcie;
+	}
+
+	public void setQueryCacheServcie(QueryCacheServcie queryCacheServcie) {
+		this.queryCacheServcie = queryCacheServcie;
+	}
+
+	public WindPowerStationService getWindPowerStationService() {
+		return windPowerStationService;
+	}
+
+	public void setWindPowerStationService(WindPowerStationService windPowerStationService) {
+		this.windPowerStationService = windPowerStationService;
+	}
+
+	public WindTurbineService getWindTurbineService() {
+		return windTurbineService;
+	}
+
+	public void setWindTurbineService(WindTurbineService windTurbineService) {
+		this.windTurbineService = windTurbineService;
+	}
+
+	public WindPowerStationTestingPointService getWindPowerStationTestingPointService() {
+		return windPowerStationTestingPointService;
+	}
+
+	public void setWindPowerStationTestingPointService(
+			WindPowerStationTestingPointService windPowerStationTestingPointService) {
+		this.windPowerStationTestingPointService = windPowerStationTestingPointService;
+	}
+
+	public ElectricaltestingpointaiService getElectricaltestingpointaiService() {
+		return electricaltestingpointaiService;
+	}
+
+	public void setElectricaltestingpointaiService(ElectricaltestingpointaiService electricaltestingpointaiService) {
+		this.electricaltestingpointaiService = electricaltestingpointaiService;
+	}
+
+	public ElectricaltestingpointdiService getElectricaltestingpointdiService() {
+		return electricaltestingpointdiService;
+	}
+
+	public void setElectricaltestingpointdiService(ElectricaltestingpointdiService electricaltestingpointdiService) {
+		this.electricaltestingpointdiService = electricaltestingpointdiService;
+	}
+
+	public WindTurbineTestingPointAIService getWindTurbineTestingPointAIService() {
+		return windTurbineTestingPointAIService;
+	}
+
+	public void setWindTurbineTestingPointAIService(WindTurbineTestingPointAIService windTurbineTestingPointAIService) {
+		this.windTurbineTestingPointAIService = windTurbineTestingPointAIService;
+	}
+
+	public WindTurbineTestingPointDIService getWindTurbineTestingPointDIService() {
+		return windTurbineTestingPointDIService;
+	}
+
+	public void setWindTurbineTestingPointDIService(WindTurbineTestingPointDIService windTurbineTestingPointDIService) {
+		this.windTurbineTestingPointDIService = windTurbineTestingPointDIService;
+	}
+
+	public YjIdTransformService getYjIdTransformService() {
+		return yjIdTransformService;
+	}
+
+	public void setYjIdTransformService(YjIdTransformService yjIdTransformService) {
+		this.yjIdTransformService = yjIdTransformService;
+	}
+
+	public static Map<String, Windpowerstation> getWpmap() {
+		return wpmap;
+	}
+
+	public static void setWpmap(Map<String, Windpowerstation> wpmap) {
+		CacheContext.wpmap = wpmap;
+	}
+
+	public static Map<String, Windturbine> getWtmap() {
+		return wtmap;
+	}
+
+	public static void setWtmap(Map<String, Windturbine> wtmap) {
+		CacheContext.wtmap = wtmap;
+	}
+
+	public static Map<String, List<Windturbine>> getWtsmap() {
+		return wtsmap;
+	}
+
+	public static void setWtsmap(Map<String, List<Windturbine>> wtsmap) {
+		CacheContext.wtsmap = wtsmap;
+	}
+
+	public static Map<String, Map<String, WindPowerStationTestingPoint2>> getStationPointmap() {
+		return stationPointmap;
+	}
+
+	public static void setStationPointmap(Map<String, Map<String, WindPowerStationTestingPoint2>> stationPointmap) {
+		CacheContext.stationPointmap = stationPointmap;
+	}
+
+	public static Map<String, Map<String, WindTurbineTestingPointAi2>> getWtpAimap() {
+		return wtpAimap;
+	}
+
+	public static void setWtpAimap(Map<String, Map<String, WindTurbineTestingPointAi2>> wtpAimap) {
+		CacheContext.wtpAimap = wtpAimap;
+	}
+
+	public static Map<String, Map<String, WindTurbineTestingPointDi2>> getWtpDimap() {
+		return wtpDimap;
+	}
+
+	public static void setWtpDimap(Map<String, Map<String, WindTurbineTestingPointDi2>> wtpDimap) {
+		CacheContext.wtpDimap = wtpDimap;
+	}
+
+	public static Map<String, List<WindPowerStationTestingPoint2>> getWppointsmap() {
+		return wppointsmap;
+	}
+
+	public static void setWppointsmap(Map<String, List<WindPowerStationTestingPoint2>> wppointsmap) {
+		CacheContext.wppointsmap = wppointsmap;
+	}
+
+	public static Map<String, List<WindTurbineTestingPointAi2>> getWtaipointsmap() {
+		return wtaipointsmap;
+	}
+
+	public static void setWtaipointsmap(Map<String, List<WindTurbineTestingPointAi2>> wtaipointsmap) {
+		CacheContext.wtaipointsmap = wtaipointsmap;
+	}
+
+	public static Map<String, List<WindTurbineTestingPointDi2>> getWtdipointsmap() {
+		return wtdipointsmap;
+	}
+
+	public static void setWtdipointsmap(Map<String, List<WindTurbineTestingPointDi2>> wtdipointsmap) {
+		CacheContext.wtdipointsmap = wtdipointsmap;
+	}
+
+	public static Map<String, List<Electricaltestingpointai>> getEleaipointsmap() {
+		return eleaipointsmap;
+	}
+
+	public static void setEleaipointsmap(Map<String, List<Electricaltestingpointai>> eleaipointsmap) {
+		CacheContext.eleaipointsmap = eleaipointsmap;
+	}
+
+	public static Map<String, List<Electricaltestingpointdi>> getEledipointsmap() {
+		return eledipointsmap;
+	}
+
+	public static void setEledipointsmap(Map<String, List<Electricaltestingpointdi>> eledipointsmap) {
+		CacheContext.eledipointsmap = eledipointsmap;
+	}
+
+	public static List<Windpowerstation> getWpls() {
+		return wpls;
+	}
+
+	public static void setWpls(List<Windpowerstation> wpls) {
+		CacheContext.wpls = wpls;
+	}
+
+	public static List<Windturbine> getWtls() {
+		return wtls;
+	}
+
+	public static void setWtls(List<Windturbine> wtls) {
+		CacheContext.wtls = wtls;
+	}
+
+	public static Map<String, String> getGyeeidmap() {
+		return gyeeidmap;
+	}
+
+	public static void setGyeeidmap(Map<String, String> gyeeidmap) {
+		CacheContext.gyeeidmap = gyeeidmap;
+	}
+
+	public static Map<String, String> getYjidmap() {
+		return yjidmap;
+	}
+
+	public static void setYjidmap(Map<String, String> yjidmap) {
+		CacheContext.yjidmap = yjidmap;
+	}
+
+	public static List<WindPowerStationTestingPoint2> getWppointls() {
+		return wppointls;
+	}
+
+	public static void setWppointls(List<WindPowerStationTestingPoint2> wppointls) {
+		CacheContext.wppointls = wppointls;
+	}
+
+	public static List<Electricaltestingpointai> getEtails() {
+		return etails;
+	}
+
+	public static void setEtails(List<Electricaltestingpointai> etails) {
+		CacheContext.etails = etails;
+	}
+
+	public static List<Electricaltestingpointdi> getEtdils() {
+		return etdils;
+	}
+
+	public static void setEtdils(List<Electricaltestingpointdi> etdils) {
+		CacheContext.etdils = etdils;
+	}
+
+	public static List<WindTurbineTestingPointAi2> getWtails() {
+		return wtails;
+	}
+
+	public static void setWtails(List<WindTurbineTestingPointAi2> wtails) {
+		CacheContext.wtails = wtails;
+	}
+
+	public static List<WindTurbineTestingPointDi2> getWtdils() {
+		return wtdils;
+	}
+
+	public static void setWtdils(List<WindTurbineTestingPointDi2> wtdils) {
+		CacheContext.wtdils = wtdils;
+	}
+	
+	
+}

+ 41 - 0
src/com/gyee/intial/PropertyCacheContext.java

@@ -0,0 +1,41 @@
+/**
+ * <p>文件名:	PropertyCacheContext.java</p>
+ * <p>版权:  </p>
+ * <p>公司:	company Co., Ltd.</p>
+ * <p>项目名:lnly</p>
+ * <p>作者:	刘厦(liusha.information@gmail.com)</p>
+ */
+package com.gyee.intial;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
+import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
+import org.springframework.stereotype.Service;
+@Service
+public class PropertyCacheContext extends PropertyPlaceholderConfigurer {
+
+	private static Map<String, Object> ctx=new  HashMap<String, Object>();
+
+	protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props) throws BeansException {
+		super.processProperties(beanFactoryToProcess, props);
+		
+		//ctx = new HashMap<String, Object>();
+		for (Object key : props.keySet()) {
+			String keyStr = key.toString();
+			String value = props.getProperty(keyStr);
+			ctx.put(keyStr, value);
+		}
+	}
+
+	public static boolean isPropertyExist(String name){
+		return ctx.containsKey(name);
+	}
+	public static String getContextProperty(String name) {
+		return (String)ctx.get(name);
+	}
+
+}

+ 285 - 0
src/com/gyee/intial/QueryCacheServcie.java

@@ -0,0 +1,285 @@
+
+package com.gyee.intial;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.jdbc.core.RowMapper;
+import org.springframework.stereotype.Service;
+
+import com.gyee.dao.GenericJdbcDao;
+import com.gyee.model.Electricaltestingpointai;
+import com.gyee.model.Electricaltestingpointdi;
+import com.gyee.model.Meterpoint;
+import com.gyee.model.Modelpower;
+import com.gyee.model.WindPowerStationTestingPoint2;
+import com.gyee.model.WindTurbineTestingPointAi2;
+import com.gyee.model.WindTurbineTestingPointDi2;
+import com.gyee.util.QueryOrder;
+
+@Service
+public class QueryCacheServcie extends GenericJdbcDao<WindTurbineTestingPointAi2> {
+	@SuppressWarnings("unchecked")
+	public List<WindPowerStationTestingPoint2> findWpPointALL() throws Exception {
+
+		List<WindPowerStationTestingPoint2> list = this.operate.findAll(WindPowerStationTestingPoint2.class);
+
+		return list;
+	}
+
+	@SuppressWarnings("unchecked")
+	public List<WindTurbineTestingPointAi2> findWtAiPointALL() throws Exception {
+
+		List<WindTurbineTestingPointAi2> list = this.operate.findAll(WindTurbineTestingPointAi2.class);
+
+		return list;
+	}
+
+	@SuppressWarnings("unchecked")
+	public List<WindTurbineTestingPointDi2> findWtDiPointALL() throws Exception {
+
+		List<WindTurbineTestingPointDi2> list = this.operate.findAll(WindTurbineTestingPointDi2.class);
+
+		return list;
+	}
+
+	@SuppressWarnings("unchecked")
+	public List<Electricaltestingpointai> findEtAiPointALL() throws Exception {
+
+		List<Electricaltestingpointai> list = this.operate.findAll(Electricaltestingpointai.class);
+
+		return list;
+	}
+
+	@SuppressWarnings("unchecked")
+	public List<Electricaltestingpointdi> findEtDiPointALL() throws Exception {
+
+		List<Electricaltestingpointdi> list = this.operate.findAll(Electricaltestingpointdi.class);
+
+		return list;
+	}
+
+	@SuppressWarnings("unchecked")
+	public List<Meterpoint> findMeterpointALL() throws Exception {
+
+		List<Meterpoint> list = this.operate.findAll(Meterpoint.class, QueryOrder.asc("id"));
+
+		return list;
+	}
+
+	public Map<String, Map<String, WindPowerStationTestingPoint2>> findWpPointMap() throws Exception {
+
+		@SuppressWarnings("unchecked")
+		List<WindPowerStationTestingPoint2> list = this.operate.findAll(WindPowerStationTestingPoint2.class);
+		Map<String, Map<String, WindPowerStationTestingPoint2>> retValue = new HashMap<String, Map<String, WindPowerStationTestingPoint2>>();
+		Map<String, WindPowerStationTestingPoint2> items = null;
+		if (list != null && !list.isEmpty()) {
+			for (int i = 0; i < list.size(); i++) {
+				WindPowerStationTestingPoint2 point = list.get(i);
+				if (retValue.containsKey(point.getWindpowerstationid())) {
+					items = retValue.get(point.getWindpowerstationid());
+					items.put(point.getUniformcode(), point);
+				} else {
+					items = new HashMap<String, WindPowerStationTestingPoint2>();
+					retValue.put(point.getWindpowerstationid(), items);
+					items.put(point.getUniformcode(), point);
+				}
+
+			}
+		}
+		return retValue;
+	}
+
+	public Map<String, Map<String, WindTurbineTestingPointAi2>> findWtAiPointMap() throws Exception {
+		List<WindTurbineTestingPointAi2> list = findAll();
+
+		Map<String, Map<String, WindTurbineTestingPointAi2>> res = new HashMap<String, Map<String, WindTurbineTestingPointAi2>>();
+		Map<String, WindTurbineTestingPointAi2> map = null;
+
+		if (list != null && !list.isEmpty()) {
+			for (WindTurbineTestingPointAi2 mp : list) {
+				if (res.containsKey(mp.getWindturbineid())) {
+					map = res.get(mp.getWindturbineid());
+					map.put(mp.getUniformcode(), mp);
+				} else {
+					map = new HashMap<String, WindTurbineTestingPointAi2>();
+					map.put(mp.getUniformcode(), mp);
+					res.put(mp.getWindturbineid(), map);
+				}
+			}
+		}
+		return res;
+	}
+
+	public Map<String, Map<String, WindTurbineTestingPointDi2>> findWtDiPointMap() throws Exception {
+		@SuppressWarnings("unchecked")
+		List<WindTurbineTestingPointDi2> list = this.operate.findAll(WindTurbineTestingPointDi2.class);
+
+		Map<String, Map<String, WindTurbineTestingPointDi2>> res = new HashMap<String, Map<String, WindTurbineTestingPointDi2>>();
+		Map<String, WindTurbineTestingPointDi2> map = null;
+
+		if (list != null && !list.isEmpty()) {
+			for (WindTurbineTestingPointDi2 mp : list) {
+				if (res.containsKey(mp.getWindturbineid())) {
+					map = res.get(mp.getWindturbineid());
+					map.put(mp.getUniformcode(), mp);
+				} else {
+					map = new HashMap<String, WindTurbineTestingPointDi2>();
+					map.put(mp.getUniformcode(), mp);
+					res.put(mp.getWindturbineid(), map);
+				}
+			}
+		}
+		return res;
+	}
+
+	public Map<String, List<WindPowerStationTestingPoint2>> findWpPointList() throws Exception {
+
+		@SuppressWarnings("unchecked")
+		List<WindPowerStationTestingPoint2> list = this.operate.findAll(WindPowerStationTestingPoint2.class);
+		Map<String, List<WindPowerStationTestingPoint2>> retValue = new HashMap<String, List<WindPowerStationTestingPoint2>>();
+		List<WindPowerStationTestingPoint2> items = null;
+		if (list != null && !list.isEmpty()) {
+			for (int i = 0; i < list.size(); i++) {
+				WindPowerStationTestingPoint2 point = list.get(i);
+				if (retValue.containsKey(point.getWindpowerstationid())) {
+					items = retValue.get(point.getWindpowerstationid());
+					items.add(point);
+				} else {
+					items = new ArrayList<WindPowerStationTestingPoint2>();
+					retValue.put(point.getWindpowerstationid(), items);
+					items.add(point);
+				}
+
+			}
+		}
+		return retValue;
+	}
+
+	public Map<String, List<WindTurbineTestingPointAi2>> findWtAiPointList() throws Exception {
+		List<WindTurbineTestingPointAi2> list = findAll();
+
+		Map<String, List<WindTurbineTestingPointAi2>> res = new HashMap<String, List<WindTurbineTestingPointAi2>>();
+		List<WindTurbineTestingPointAi2> items = null;
+
+		if (list != null && !list.isEmpty()) {
+			for (WindTurbineTestingPointAi2 mp : list) {
+				if (res.containsKey(mp.getWindturbineid())) {
+					items = res.get(mp.getWindturbineid());
+					items.add(mp);
+				} else {
+					items = new ArrayList<WindTurbineTestingPointAi2>();
+					items.add(mp);
+					res.put(mp.getWindturbineid(), items);
+				}
+			}
+		}
+		return res;
+	}
+
+	public Map<String, List<WindTurbineTestingPointDi2>> findWtDiPointList() throws Exception {
+		@SuppressWarnings("unchecked")
+		List<WindTurbineTestingPointDi2> list = this.operate.findAll(WindTurbineTestingPointDi2.class);
+
+		Map<String, List<WindTurbineTestingPointDi2>> res = new HashMap<String, List<WindTurbineTestingPointDi2>>();
+		List<WindTurbineTestingPointDi2> items = null;
+
+		if (list != null && !list.isEmpty()) {
+			for (WindTurbineTestingPointDi2 mp : list) {
+				if (res.containsKey(mp.getWindturbineid())) {
+					items = res.get(mp.getWindturbineid());
+					items.add(mp);
+				} else {
+					items = new ArrayList<WindTurbineTestingPointDi2>();
+					items.add(mp);
+					res.put(mp.getWindturbineid(), items);
+				}
+			}
+		}
+		return res;
+	}
+
+	public Map<String, List<Electricaltestingpointai>> findElectricaltestingpointAiList() throws Exception {
+
+		@SuppressWarnings("unchecked")
+		List<Electricaltestingpointai> list = this.operate.findAll(Electricaltestingpointai.class);
+		Map<String, List<Electricaltestingpointai>> retValue = new HashMap<String, List<Electricaltestingpointai>>();
+		List<Electricaltestingpointai> items = null;
+		if (list != null && !list.isEmpty()) {
+			for (int i = 0; i < list.size(); i++) {
+				Electricaltestingpointai point = list.get(i);
+				if (retValue.containsKey(point.getWindpowerstationid())) {
+					items = retValue.get(point.getWindpowerstationid());
+					items.add(point);
+				} else {
+					items = new ArrayList<Electricaltestingpointai>();
+					retValue.put(point.getWindpowerstationid(), items);
+					items.add(point);
+				}
+
+			}
+		}
+		return retValue;
+	}
+
+	public Map<String, List<Electricaltestingpointdi>> findElectricaltestingpointDiList() throws Exception {
+
+		@SuppressWarnings("unchecked")
+		List<Electricaltestingpointdi> list = this.operate.findAll(Electricaltestingpointdi.class);
+		Map<String, List<Electricaltestingpointdi>> retValue = new HashMap<String, List<Electricaltestingpointdi>>();
+		List<Electricaltestingpointdi> items = null;
+		if (list != null && !list.isEmpty()) {
+			for (int i = 0; i < list.size(); i++) {
+				Electricaltestingpointdi point = list.get(i);
+				if (retValue.containsKey(point.getWindpowerstationid())) {
+					items = retValue.get(point.getWindpowerstationid());
+					items.add(point);
+				} else {
+					items = new ArrayList<Electricaltestingpointdi>();
+					retValue.put(point.getWindpowerstationid(), items);
+					items.add(point);
+				}
+
+			}
+		}
+		return retValue;
+	}
+
+	@SuppressWarnings({ "unchecked", "rawtypes" })
+	public Map<String, Map<String, Modelpower>> findModelPowers() {
+		String sql = "select * from ModelPower";
+		List<Modelpower> list = operate.query(sql, new RowMapper() {
+			@Override
+			public Object mapRow(ResultSet rs, int arg1) throws SQLException {
+				Modelpower ai = new Modelpower();
+				ai.setId(rs.getString("id"));
+				ai.setModelid(rs.getString("modelId"));
+				ai.setSpeed(rs.getDouble("speed"));
+				ai.setTheorypower(rs.getDouble("theoryPower"));
+				ai.setEnsurepower(rs.getDouble("ensurePower"));
+				return ai;
+			}
+		});
+
+		Map<String, Map<String, Modelpower>> res = new HashMap<String, Map<String, Modelpower>>();
+		Map<String, Modelpower> map = null;
+
+		if (list != null && !list.isEmpty()) {
+			for (Modelpower mp : list) {
+				if (res.containsKey(mp.getModelid())) {
+					map = res.get(mp.getModelid());
+					map.put(String.valueOf(mp.getSpeed().doubleValue()), mp);
+				} else {
+					map = new HashMap<String, Modelpower>();
+					map.put(String.valueOf(mp.getSpeed().doubleValue()), mp);
+					res.put(mp.getModelid(), map);
+				}
+			}
+		}
+		return res;
+	}
+}

+ 151 - 0
src/com/gyee/main/StartUp.java

@@ -0,0 +1,151 @@
+package com.gyee.main;
+
+import java.util.Calendar;
+import java.util.List;
+
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+import com.gyee.model.Wttragetreport3;
+import com.gyee.model.Wttragetreportfnlyl3;
+import com.gyee.model.Wttragetreportkkxfx3;
+import com.gyee.model.Wttragetreportmain3;
+import com.gyee.model.Wttragetreportnhyd3;
+import com.gyee.model.Wttragetreportpart3;
+import com.gyee.model.Wttragetreportxndjpj3;
+import com.gyee.service.WtReportService;
+import com.gyee.service.WttragetreportService;
+import com.gyee.service.WttragetreportchartService;
+import com.gyee.service.WttragetreportfnlylService;
+import com.gyee.service.WttragetreportkkxfxService;
+import com.gyee.service.WttragetreportmainService;
+import com.gyee.service.WttragetreportnhydService;
+import com.gyee.service.WttragetreportpartService;
+import com.gyee.service.WttragetreportxndjpjService;
+import com.gyee.util.StringUtils;
+
+public class StartUp {
+
+	public static void main(String[] args) throws Exception {
+
+		ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath*:applicationContext.xml");
+		
+		WttragetreportService wttragetreportService = (WttragetreportService) ctx.getBean("wttragetreportService");		
+		WttragetreportchartService wttragetreportchartService = (WttragetreportchartService) ctx.getBean("wttragetreportchartService");	
+		
+		 WttragetreportpartService wttragetreportpartService = (WttragetreportpartService) ctx.getBean("wttragetreportpartService");	
+		 
+		 WttragetreportmainService wttragetreportmainService = (WttragetreportmainService) ctx.getBean("wttragetreportmainService");	
+		 WttragetreportfnlylService wttragetreportfnlylService = (WttragetreportfnlylService) ctx.getBean("wttragetreportfnlylService");	
+		 WttragetreportkkxfxService wttragetreportkkxfxService = (WttragetreportkkxfxService) ctx.getBean("wttragetreportkkxfxService");	
+		 
+		 WttragetreportnhydService wttragetreportnhydService = (WttragetreportnhydService) ctx.getBean("wttragetreportnhydService");	
+		 WttragetreportxndjpjService wttragetreportxndjpjService = (WttragetreportxndjpjService) ctx.getBean("wttragetreportxndjpjService");	
+		 WtReportService wtReportService = (WtReportService) ctx.getBean("wtReportService");	
+
+		 
+		 
+		 System.out.println("风机健康报告调度程序执行开始!........");
+
+			try {
+
+				Calendar cal = Calendar.getInstance();
+				cal.set(Calendar.HOUR_OF_DAY, 0);
+				cal.set(Calendar.MINUTE, 0);
+				cal.set(Calendar.SECOND, 0);
+
+				//Wttragetreport3 wtr = wttragetreportService.findTargetReportByDate(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH) + 1);
+				Wttragetreport3 wtr = wttragetreportService.findTargetReportByDate(cal.getTime());
+				if (StringUtils.notEmp(wtr)) {
+
+					wttragetreportService.deleteWttragetreport(wtr.getId());
+					wttragetreportmainService.deleteWttragetreportmain(wtr.getId());
+					wttragetreportchartService.deleteWttragetreportchart(wtr.getId());
+					wttragetreportfnlylService.deleteWttragetreportfnlyl(wtr.getId());
+					wttragetreportpartService.deleteWttragetreportpart(wtr.getId());
+					wttragetreportkkxfxService.deleteWttragetreportkkxfx(wtr.getId());
+					wttragetreportnhydService.deleteWttragetreportnhyd(wtr.getId());
+					wttragetreportxndjpjService.deleteWttragetreportxndjpj(wtr.getId());
+					wttragetreportService.deleteWttragetreport(wtr.getId());
+				}
+
+				// }
+
+				Wttragetreport3 ls0 = wttragetreportService.inistalWttragetreport();
+				System.out.println("主表数据初始化完成");
+				wttragetreportService.insertWttragetreport(ls0);
+				System.out.println("主表数据保存完成");
+				List<Wttragetreportmain3> ls1 = wttragetreportmainService.inistalWttragetreportmain(ls0.getId());
+				
+				System.out.println("重要指标表数据初始化完成");
+				if (!ls1.isEmpty()) {
+					for (Wttragetreportmain3 po : ls1) {
+						wttragetreportmainService.insertWttragetreportmain(po);
+					}
+				}
+				System.out.println("重要指标表数据保存完成");
+//				List<Wttragetreportchart3> ls2 = wttragetreportchartService.inistalWttragetreportchart(ls0.getId());
+//				System.out.println("图表数据初始化完成");
+//				if (!ls2.isEmpty()) {
+//					for (Wttragetreportchart3 po : ls2) {
+//						wttragetreportchartService.insertWttragetreportchart(po);
+//					}
+//				}
+				wttragetreportchartService.inistalWttragetreportchart(ls0.getId(),wttragetreportchartService);
+				System.out.println("图表数据保存完成");
+				List<Wttragetreportfnlyl3> ls3 = wttragetreportfnlylService.inistalWttragetreportfnlyl(ls0.getId());
+				System.out.println("风能利用率数据初始化完成");
+				if (!ls3.isEmpty()) {
+					for (Wttragetreportfnlyl3 po : ls3) {
+						wttragetreportfnlylService.insertWttragetreportfnlyl(po);
+					}
+				}
+				System.out.println("风能利用率数据保存完成");
+				List<Wttragetreportpart3> ls4 = wttragetreportpartService.inistalWttragetreportpart(ls0.getId());
+				System.out.println("部件数据数据初始化完成");
+				if (!ls4.isEmpty()) {
+					for (Wttragetreportpart3 po : ls4) {
+						wttragetreportpartService.insertWttragetreportpart(po);
+					}
+				}
+				System.out.println("部件数据数据保存完成");
+				List<Wttragetreportkkxfx3> ls5 = wttragetreportkkxfxService.inistalWttragetreportkkxfx(ls0.getId());
+				System.out.println("可靠性数据初始化完成");
+				if (!ls5.isEmpty()) {
+					for (Wttragetreportkkxfx3 po : ls5) {
+						wttragetreportkkxfxService.insertWttragetreportkkxfx(po);
+					}
+				}
+				System.out.println("可靠性数据保存完成");
+
+				List<Wttragetreportxndjpj3> ls7 = wttragetreportxndjpjService.inistalWttragetreportxndjpj(ls0.getId());
+				System.out.println("性能等级评级数据初始化完成");
+				if (!ls7.isEmpty()) {
+					for (Wttragetreportxndjpj3 po : ls7) {
+						wttragetreportxndjpjService.insertWttragetreportxndjpj(po);
+					}
+				}
+				System.out.println("性能等级评级数据保存完成");
+				
+				wtReportService.createWtReport(ls0.getId());;
+				System.out.println("存储故障检修完成");
+				System.out.println("/*************************************************************************************************************/");
+
+			} catch (Exception e) {
+
+				e.printStackTrace();
+			}
+
+			System.out.println("进行风机健康报告处理完成!........");
+//		
+		
+//		  System.out.println("风机健康报告调度程序执行开始!........");
+//		  
+//		  WtReportService wtReportService = (WtReportService) ctx.getBean("wtReportService"); wtReportService.createWtReport();
+//		 
+//		  System.out.println("进行风机健康报告处理完成!........");
+		
+		
+		
+	}
+}

+ 61 - 0
src/com/gyee/model/Alertrulefailure.java

@@ -0,0 +1,61 @@
+package com.gyee.model;
+// default package
+
+public class Alertrulefailure implements java.io.Serializable {
+
+	/** 
+    * @Fields serialVersionUID : TODO
+    */ 
+    
+    
+    private static final long serialVersionUID = 1L;
+	// Fields
+
+	private String id;
+	private String tid;
+	private String gzpc;
+	private String gzyy;
+	private String gqj;
+	private Double xqsc;
+
+
+	public String getId() {
+		return id;
+	}
+	public void setId(String id) {
+		this.id = id;
+	}
+	public String getTid() {
+		return tid;
+	}
+	public void setTid(String tid) {
+		this.tid = tid;
+	}
+	public String getGzpc() {
+		return gzpc;
+	}
+	public void setGzpc(String gzpc) {
+		this.gzpc = gzpc;
+	}
+	public String getGzyy() {
+		return gzyy;
+	}
+	public void setGzyy(String gzyy) {
+		this.gzyy = gzyy;
+	}
+	public String getGqj() {
+		return gqj;
+	}
+	public void setGqj(String gqj) {
+		this.gqj = gqj;
+	}
+	public Double getXqsc() {
+		return xqsc;
+	}
+	public void setXqsc(Double xqsc) {
+		this.xqsc = xqsc;
+	}
+	
+
+	
+}

+ 121 - 0
src/com/gyee/model/Curvefittingsub.java

@@ -0,0 +1,121 @@
+package com.gyee.model;
+// default package
+
+import java.util.Date;
+
+
+public class Curvefittingsub implements java.io.Serializable {
+
+	/** 
+    * @Fields serialVersionUID : TODO
+    */ 
+    
+    
+    private static final long serialVersionUID = 1L;
+	// Fields
+
+	private String id;
+	private String windturbineid;
+	private Double monthdeviationrate;
+	private Double yeardeviationrate;
+	private Double standarddeviationrate;
+	private Date recorddate;
+	private Double deviationrate1;
+	private Double deviationrate2;
+	private Double deviationrate3;
+	private Double speed;
+	// Constructors
+
+	
+	/** default constructor */
+	public Curvefittingsub() {
+	}
+
+	public Double getSpeed() {
+		return speed;
+	}
+
+	public void setSpeed(Double speed) {
+		this.speed = speed;
+	}
+
+	/** minimal constructor */
+	public Curvefittingsub(String id) {
+		this.id = id;
+	}
+
+	public String getId() {
+    	return id;
+    }
+
+	public void setId(String id) {
+    	this.id = id;
+    }
+
+	public String getWindturbineid() {
+    	return windturbineid;
+    }
+
+	public void setWindturbineid(String windturbineid) {
+    	this.windturbineid = windturbineid;
+    }
+
+	public Double getMonthdeviationrate() {
+    	return monthdeviationrate;
+    }
+
+	public void setMonthdeviationrate(Double monthdeviationrate) {
+    	this.monthdeviationrate = monthdeviationrate;
+    }
+
+	public Double getYeardeviationrate() {
+    	return yeardeviationrate;
+    }
+
+	public void setYeardeviationrate(Double yeardeviationrate) {
+    	this.yeardeviationrate = yeardeviationrate;
+    }
+
+	public Double getStandarddeviationrate() {
+    	return standarddeviationrate;
+    }
+
+	public void setStandarddeviationrate(Double standarddeviationrate) {
+    	this.standarddeviationrate = standarddeviationrate;
+    }
+
+	public Date getRecorddate() {
+    	return recorddate;
+    }
+
+	public void setRecorddate(Date recorddate) {
+    	this.recorddate = recorddate;
+    }
+
+	public Double getDeviationrate1() {
+    	return deviationrate1;
+    }
+
+	public void setDeviationrate1(Double deviationrate1) {
+    	this.deviationrate1 = deviationrate1;
+    }
+
+	public Double getDeviationrate2() {
+    	return deviationrate2;
+    }
+
+	public void setDeviationrate2(Double deviationrate2) {
+    	this.deviationrate2 = deviationrate2;
+    }
+
+	public Double getDeviationrate3() {
+    	return deviationrate3;
+    }
+
+	public void setDeviationrate3(Double deviationrate3) {
+    	this.deviationrate3 = deviationrate3;
+    }
+
+	
+
+}

+ 535 - 0
src/com/gyee/model/Earlywarningmain.java

@@ -0,0 +1,535 @@
+package com.gyee.model;
+
+import java.util.Date;
+
+public class Earlywarningmain  implements java.io.Serializable {
+
+    /**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+	// Fields
+
+    private Integer id;
+    private Date recodedate;
+    private String wpid;
+    private String wpname;
+    private String wtid;
+    private String wtname;
+    private Integer day3top1;
+    private Integer day3top2;
+    private Integer day3top3;
+    private Integer day7top1;
+    private Integer day7top2;
+    private Integer day7top3;
+    private Integer day15top1;
+    private Integer day15top2;
+    private Integer day15top3;
+    private Integer month1top1;
+    private Integer month1top2;
+    private Integer month1top3;
+    private String day3top1name;
+    private String day3top2name;
+    private String day3top3name;
+    private String day7top1name;
+    private String day7top2name;
+    private String day7top3name;
+    private String day15top1name;
+    private String day15top2name;
+    private String day15top3name;
+    private String month1top1name;
+    private String month1top2name;
+    private String month1top3name;
+    private Integer month1topnum;
+    private Integer day7topnum;
+    private Integer day15topnum;
+    private Integer day3topnum;
+    private Integer synthesistopnum;
+    
+    private Integer day1top1;
+    private Integer day1top2;
+    private Integer day1top3;
+    private String day1top1name;
+    private String day1top2name;
+    private String day1top3name;
+    private Integer day1topnum;
+    
+    
+    private String day3top1Id;
+    private String day3top2Id;
+    private String day3top3Id;
+    private String day7top1Id;
+    private String day7top2Id;
+    private String day7top3Id;
+    private String day15top1Id;
+    private String day15top2Id;
+    private String day15top3Id;
+    private String month1top1Id;
+    private String month1top2Id;
+    private String month1top3Id;
+    
+    private String day1top1Id;
+    private String day1top2Id;
+    private String day1top3Id;
+    // Constructors
+
+
+	public Integer getId() {
+		return id;
+	}
+
+	public Integer getDay1top1() {
+		return day1top1;
+	}
+
+	public void setDay1top1(Integer day1top1) {
+		this.day1top1 = day1top1;
+	}
+
+	public Integer getDay1top2() {
+		return day1top2;
+	}
+
+	public void setDay1top2(Integer day1top2) {
+		this.day1top2 = day1top2;
+	}
+
+	public Integer getDay1top3() {
+		return day1top3;
+	}
+
+	public void setDay1top3(Integer day1top3) {
+		this.day1top3 = day1top3;
+	}
+
+	public String getDay1top1name() {
+		return day1top1name;
+	}
+
+	public void setDay1top1name(String day1top1name) {
+		this.day1top1name = day1top1name;
+	}
+
+	public String getDay1top2name() {
+		return day1top2name;
+	}
+
+	public void setDay1top2name(String day1top2name) {
+		this.day1top2name = day1top2name;
+	}
+
+	public String getDay1top3name() {
+		return day1top3name;
+	}
+
+	public void setDay1top3name(String day1top3name) {
+		this.day1top3name = day1top3name;
+	}
+
+	public Integer getDay1topnum() {
+		return day1topnum;
+	}
+
+	public void setDay1topnum(Integer day1topnum) {
+		this.day1topnum = day1topnum;
+	}
+
+	public String getDay1top1Id() {
+		return day1top1Id;
+	}
+
+	public void setDay1top1Id(String day1top1Id) {
+		this.day1top1Id = day1top1Id;
+	}
+
+	public String getDay1top2Id() {
+		return day1top2Id;
+	}
+
+	public void setDay1top2Id(String day1top2Id) {
+		this.day1top2Id = day1top2Id;
+	}
+
+	public String getDay1top3Id() {
+		return day1top3Id;
+	}
+
+	public void setDay1top3Id(String day1top3Id) {
+		this.day1top3Id = day1top3Id;
+	}
+
+	public void setId(Integer id) {
+		this.id = id;
+	}
+
+	public Date getRecodedate() {
+		return recodedate;
+	}
+
+	public void setRecodedate(Date recodedate) {
+		this.recodedate = recodedate;
+	}
+
+	public String getWpid() {
+		return wpid;
+	}
+
+	public void setWpid(String wpid) {
+		this.wpid = wpid;
+	}
+
+	public String getWpname() {
+		return wpname;
+	}
+
+	public void setWpname(String wpname) {
+		this.wpname = wpname;
+	}
+
+	public String getWtid() {
+		return wtid;
+	}
+
+	public void setWtid(String wtid) {
+		this.wtid = wtid;
+	}
+
+	public String getWtname() {
+		return wtname;
+	}
+
+	public void setWtname(String wtname) {
+		this.wtname = wtname;
+	}
+
+	public Integer getDay3top1() {
+		return day3top1;
+	}
+
+	public void setDay3top1(Integer day3top1) {
+		this.day3top1 = day3top1;
+	}
+
+	public Integer getDay3top2() {
+		return day3top2;
+	}
+
+	public void setDay3top2(Integer day3top2) {
+		this.day3top2 = day3top2;
+	}
+
+	public Integer getDay3top3() {
+		return day3top3;
+	}
+
+	public void setDay3top3(Integer day3top3) {
+		this.day3top3 = day3top3;
+	}
+
+	public Integer getDay7top1() {
+		return day7top1;
+	}
+
+	public void setDay7top1(Integer day7top1) {
+		this.day7top1 = day7top1;
+	}
+
+	public Integer getDay7top2() {
+		return day7top2;
+	}
+
+	public void setDay7top2(Integer day7top2) {
+		this.day7top2 = day7top2;
+	}
+
+	public Integer getDay7top3() {
+		return day7top3;
+	}
+
+	public void setDay7top3(Integer day7top3) {
+		this.day7top3 = day7top3;
+	}
+
+	public Integer getDay15top1() {
+		return day15top1;
+	}
+
+	public void setDay15top1(Integer day15top1) {
+		this.day15top1 = day15top1;
+	}
+
+	public Integer getDay15top2() {
+		return day15top2;
+	}
+
+	public void setDay15top2(Integer day15top2) {
+		this.day15top2 = day15top2;
+	}
+
+	public Integer getDay15top3() {
+		return day15top3;
+	}
+
+	public void setDay15top3(Integer day15top3) {
+		this.day15top3 = day15top3;
+	}
+
+	public Integer getMonth1top1() {
+		return month1top1;
+	}
+
+	public void setMonth1top1(Integer month1top1) {
+		this.month1top1 = month1top1;
+	}
+
+	public Integer getMonth1top2() {
+		return month1top2;
+	}
+
+	public void setMonth1top2(Integer month1top2) {
+		this.month1top2 = month1top2;
+	}
+
+	public Integer getMonth1top3() {
+		return month1top3;
+	}
+
+	public void setMonth1top3(Integer month1top3) {
+		this.month1top3 = month1top3;
+	}
+
+	public String getDay3top1name() {
+		return day3top1name;
+	}
+
+	public void setDay3top1name(String day3top1name) {
+		this.day3top1name = day3top1name;
+	}
+
+	public String getDay3top2name() {
+		return day3top2name;
+	}
+
+	public void setDay3top2name(String day3top2name) {
+		this.day3top2name = day3top2name;
+	}
+
+	public String getDay3top3name() {
+		return day3top3name;
+	}
+
+	public void setDay3top3name(String day3top3name) {
+		this.day3top3name = day3top3name;
+	}
+
+	public String getDay7top1name() {
+		return day7top1name;
+	}
+
+	public void setDay7top1name(String day7top1name) {
+		this.day7top1name = day7top1name;
+	}
+
+	public String getDay7top2name() {
+		return day7top2name;
+	}
+
+	public void setDay7top2name(String day7top2name) {
+		this.day7top2name = day7top2name;
+	}
+
+	public String getDay7top3name() {
+		return day7top3name;
+	}
+
+	public void setDay7top3name(String day7top3name) {
+		this.day7top3name = day7top3name;
+	}
+
+	public String getDay15top1name() {
+		return day15top1name;
+	}
+
+	public void setDay15top1name(String day15top1name) {
+		this.day15top1name = day15top1name;
+	}
+
+	public String getDay15top2name() {
+		return day15top2name;
+	}
+
+	public void setDay15top2name(String day15top2name) {
+		this.day15top2name = day15top2name;
+	}
+
+	public String getDay15top3name() {
+		return day15top3name;
+	}
+
+	public void setDay15top3name(String day15top3name) {
+		this.day15top3name = day15top3name;
+	}
+
+	public String getMonth1top1name() {
+		return month1top1name;
+	}
+
+	public void setMonth1top1name(String month1top1name) {
+		this.month1top1name = month1top1name;
+	}
+
+	public String getMonth1top2name() {
+		return month1top2name;
+	}
+
+	public void setMonth1top2name(String month1top2name) {
+		this.month1top2name = month1top2name;
+	}
+
+	public String getMonth1top3name() {
+		return month1top3name;
+	}
+
+	public void setMonth1top3name(String month1top3name) {
+		this.month1top3name = month1top3name;
+	}
+
+	public Integer getMonth1topnum() {
+		return month1topnum;
+	}
+
+	public void setMonth1topnum(Integer month1topnum) {
+		this.month1topnum = month1topnum;
+	}
+
+	public Integer getDay7topnum() {
+		return day7topnum;
+	}
+
+	public void setDay7topnum(Integer day7topnum) {
+		this.day7topnum = day7topnum;
+	}
+
+	public Integer getDay15topnum() {
+		return day15topnum;
+	}
+
+	public void setDay15topnum(Integer day15topnum) {
+		this.day15topnum = day15topnum;
+	}
+
+	public Integer getDay3topnum() {
+		return day3topnum;
+	}
+
+	public void setDay3topnum(Integer day3topnum) {
+		this.day3topnum = day3topnum;
+	}
+
+	public Integer getSynthesistopnum() {
+		return synthesistopnum;
+	}
+
+	public void setSynthesistopnum(Integer synthesistopnum) {
+		this.synthesistopnum = synthesistopnum;
+	}
+
+	public String getDay3top1Id() {
+		return day3top1Id;
+	}
+
+	public void setDay3top1Id(String day3top1Id) {
+		this.day3top1Id = day3top1Id;
+	}
+
+	public String getDay3top2Id() {
+		return day3top2Id;
+	}
+
+	public void setDay3top2Id(String day3top2Id) {
+		this.day3top2Id = day3top2Id;
+	}
+
+	public String getDay3top3Id() {
+		return day3top3Id;
+	}
+
+	public void setDay3top3Id(String day3top3Id) {
+		this.day3top3Id = day3top3Id;
+	}
+
+	public String getDay7top1Id() {
+		return day7top1Id;
+	}
+
+	public void setDay7top1Id(String day7top1Id) {
+		this.day7top1Id = day7top1Id;
+	}
+
+	public String getDay7top2Id() {
+		return day7top2Id;
+	}
+
+	public void setDay7top2Id(String day7top2Id) {
+		this.day7top2Id = day7top2Id;
+	}
+
+	public String getDay7top3Id() {
+		return day7top3Id;
+	}
+
+	public void setDay7top3Id(String day7top3Id) {
+		this.day7top3Id = day7top3Id;
+	}
+
+	public String getDay15top1Id() {
+		return day15top1Id;
+	}
+
+	public void setDay15top1Id(String day15top1Id) {
+		this.day15top1Id = day15top1Id;
+	}
+
+	public String getDay15top2Id() {
+		return day15top2Id;
+	}
+
+	public void setDay15top2Id(String day15top2Id) {
+		this.day15top2Id = day15top2Id;
+	}
+
+	public String getDay15top3Id() {
+		return day15top3Id;
+	}
+
+	public void setDay15top3Id(String day15top3Id) {
+		this.day15top3Id = day15top3Id;
+	}
+
+	public String getMonth1top1Id() {
+		return month1top1Id;
+	}
+
+	public void setMonth1top1Id(String month1top1Id) {
+		this.month1top1Id = month1top1Id;
+	}
+
+	public String getMonth1top2Id() {
+		return month1top2Id;
+	}
+
+	public void setMonth1top2Id(String month1top2Id) {
+		this.month1top2Id = month1top2Id;
+	}
+
+	public String getMonth1top3Id() {
+		return month1top3Id;
+	}
+
+	public void setMonth1top3Id(String month1top3Id) {
+		this.month1top3Id = month1top3Id;
+	}
+
+ 
+
+}

+ 99 - 0
src/com/gyee/model/Earlywarningsub.java

@@ -0,0 +1,99 @@
+package com.gyee.model;
+
+import java.util.Date;
+
+public class Earlywarningsub  implements java.io.Serializable {
+
+    /**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+	// Fields
+
+    private Integer id;
+    private Integer tid;
+    private Date recodedate;
+    private String wpid;
+    private String wpname;
+    private String wtid;
+    private String wtname;
+    private String name;
+    private String eventid;
+
+
+	public Integer getId() {
+		return id;
+	}
+
+	public void setId(Integer id) {
+		this.id = id;
+	}
+
+
+
+	public Integer getTid() {
+		return tid;
+	}
+
+	public void setTid(Integer tid) {
+		this.tid = tid;
+	}
+
+	public Date getRecodedate() {
+		return recodedate;
+	}
+
+	public void setRecodedate(Date recodedate) {
+		this.recodedate = recodedate;
+	}
+
+	public String getWpid() {
+		return wpid;
+	}
+
+	public void setWpid(String wpid) {
+		this.wpid = wpid;
+	}
+
+	public String getWpname() {
+		return wpname;
+	}
+
+	public void setWpname(String wpname) {
+		this.wpname = wpname;
+	}
+
+	public String getWtid() {
+		return wtid;
+	}
+
+	public void setWtid(String wtid) {
+		this.wtid = wtid;
+	}
+
+	public String getWtname() {
+		return wtname;
+	}
+
+	public void setWtname(String wtname) {
+		this.wtname = wtname;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getEventid() {
+		return eventid;
+	}
+
+	public void setEventid(String eventid) {
+		this.eventid = eventid;
+	}
+
+   
+}

+ 148 - 0
src/com/gyee/model/Electricaltestingpointai.java

@@ -0,0 +1,148 @@
+package com.gyee.model;
+
+
+
+public class Electricaltestingpointai implements java.io.Serializable {
+
+	/** 
+     * 
+     * @since JDK 1.6 
+     */  
+    private static final long serialVersionUID = 1L;
+	// Constructors
+
+	/** default constructor */
+	public Electricaltestingpointai() {
+	}
+
+	private String id;
+	private String code;
+	private String name;
+	private String model;
+	private String valueunit;
+	private String englishname;
+	private String typeid;
+	private String modelid;
+	private Double maxval;
+	private Double minval;
+	private Double reasonablemaxval;
+	private Double reasonableminval;
+	private String electricalid;
+	private String uniformcode;
+	private String shortid;
+	private String longid;
+	private String windpowerstationid;
+	private String realtimeid;
+
+	public String getId() {
+    	return id;
+    }
+	public void setId(String id) {
+    	this.id = id;
+    }
+	public String getCode() {
+    	return code;
+    }
+	public void setCode(String code) {
+    	this.code = code;
+    }
+	public String getName() {
+    	return name;
+    }
+	public void setName(String name) {
+    	this.name = name;
+    }
+	public String getModel() {
+    	return model;
+    }
+	public void setModel(String model) {
+    	this.model = model;
+    }
+	public String getValueunit() {
+    	return valueunit;
+    }
+	public void setValueunit(String valueunit) {
+    	this.valueunit = valueunit;
+    }
+	public String getEnglishname() {
+    	return englishname;
+    }
+	public void setEnglishname(String englishname) {
+    	this.englishname = englishname;
+    }
+	public String getTypeid() {
+    	return typeid;
+    }
+	public void setTypeid(String typeid) {
+    	this.typeid = typeid;
+    }
+	public String getModelid() {
+    	return modelid;
+    }
+	public void setModelid(String modelid) {
+    	this.modelid = modelid;
+    }
+	public Double getMaxval() {
+    	return maxval;
+    }
+	public void setMaxval(Double maxval) {
+    	this.maxval = maxval;
+    }
+	public Double getMinval() {
+    	return minval;
+    }
+	public void setMinval(Double minval) {
+    	this.minval = minval;
+    }
+	public Double getReasonablemaxval() {
+    	return reasonablemaxval;
+    }
+	public void setReasonablemaxval(Double reasonablemaxval) {
+    	this.reasonablemaxval = reasonablemaxval;
+    }
+	public Double getReasonableminval() {
+    	return reasonableminval;
+    }
+	public void setReasonableminval(Double reasonableminval) {
+    	this.reasonableminval = reasonableminval;
+    }
+	public String getElectricalid() {
+    	return electricalid;
+    }
+	public void setElectricalid(String electricalid) {
+    	this.electricalid = electricalid;
+    }
+	public String getUniformcode() {
+    	return uniformcode;
+    }
+	public void setUniformcode(String uniformcode) {
+    	this.uniformcode = uniformcode;
+    }
+	public String getShortid() {
+    	return shortid;
+    }
+	public void setShortid(String shortid) {
+    	this.shortid = shortid;
+    }
+	public String getLongid() {
+    	return longid;
+    }
+	public void setLongid(String longid) {
+    	this.longid = longid;
+    }
+	public String getWindpowerstationid() {
+    	return windpowerstationid;
+    }
+	public void setWindpowerstationid(String windpowerstationid) {
+    	this.windpowerstationid = windpowerstationid;
+    }
+	public String getRealtimeid() {
+    	return realtimeid;
+    }
+	public void setRealtimeid(String realtimeid) {
+    	this.realtimeid = realtimeid;
+    }
+	
+	
+
+}

+ 147 - 0
src/com/gyee/model/Electricaltestingpointdi.java

@@ -0,0 +1,147 @@
+package com.gyee.model;
+
+
+public class Electricaltestingpointdi implements java.io.Serializable {
+
+	/** 
+     * 
+     * @since JDK 1.6 
+     */  
+    private static final long serialVersionUID = 1L;
+	// Constructors
+
+	/** default constructor */
+	public Electricaltestingpointdi() {
+	}
+
+	private String id;
+	private String code;
+	private String name;
+	private String model;
+	private String valueunit;
+	private String englishname;
+	private String typeid;
+	private String modelid;
+	private Double maxval;
+	private Double minval;
+	private Double reasonablemaxval;
+	private Double reasonableminval;
+	private String electricalid;
+	private String uniformcode;
+	private String shortid;
+	private String longid;
+	private String windpowerstationid;
+	private String realtimeid;
+
+	public String getId() {
+    	return id;
+    }
+	public void setId(String id) {
+    	this.id = id;
+    }
+	public String getCode() {
+    	return code;
+    }
+	public void setCode(String code) {
+    	this.code = code;
+    }
+	public String getName() {
+    	return name;
+    }
+	public void setName(String name) {
+    	this.name = name;
+    }
+	public String getModel() {
+    	return model;
+    }
+	public void setModel(String model) {
+    	this.model = model;
+    }
+	public String getValueunit() {
+    	return valueunit;
+    }
+	public void setValueunit(String valueunit) {
+    	this.valueunit = valueunit;
+    }
+	public String getEnglishname() {
+    	return englishname;
+    }
+	public void setEnglishname(String englishname) {
+    	this.englishname = englishname;
+    }
+	public String getTypeid() {
+    	return typeid;
+    }
+	public void setTypeid(String typeid) {
+    	this.typeid = typeid;
+    }
+	public String getModelid() {
+    	return modelid;
+    }
+	public void setModelid(String modelid) {
+    	this.modelid = modelid;
+    }
+	public Double getMaxval() {
+    	return maxval;
+    }
+	public void setMaxval(Double maxval) {
+    	this.maxval = maxval;
+    }
+	public Double getMinval() {
+    	return minval;
+    }
+	public void setMinval(Double minval) {
+    	this.minval = minval;
+    }
+	public Double getReasonablemaxval() {
+    	return reasonablemaxval;
+    }
+	public void setReasonablemaxval(Double reasonablemaxval) {
+    	this.reasonablemaxval = reasonablemaxval;
+    }
+	public Double getReasonableminval() {
+    	return reasonableminval;
+    }
+	public void setReasonableminval(Double reasonableminval) {
+    	this.reasonableminval = reasonableminval;
+    }
+	public String getElectricalid() {
+    	return electricalid;
+    }
+	public void setElectricalid(String electricalid) {
+    	this.electricalid = electricalid;
+    }
+	public String getUniformcode() {
+    	return uniformcode;
+    }
+	public void setUniformcode(String uniformcode) {
+    	this.uniformcode = uniformcode;
+    }
+	public String getShortid() {
+    	return shortid;
+    }
+	public void setShortid(String shortid) {
+    	this.shortid = shortid;
+    }
+	public String getLongid() {
+    	return longid;
+    }
+	public void setLongid(String longid) {
+    	this.longid = longid;
+    }
+	public String getWindpowerstationid() {
+    	return windpowerstationid;
+    }
+	public void setWindpowerstationid(String windpowerstationid) {
+    	this.windpowerstationid = windpowerstationid;
+    }
+	public String getRealtimeid() {
+    	return realtimeid;
+    }
+	public void setRealtimeid(String realtimeid) {
+    	this.realtimeid = realtimeid;
+    }
+	
+	
+
+}

+ 0 - 0
src/com/gyee/model/Failurestatisticsmain.java


Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels