十一月 09, 2018 6:36:27 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:hfits' did not find a matching property.
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server version: Apache Tomcat/7.0.86
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server built: Apr 9 2018 20:16:54 UTC
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server number: 7.0.86.0
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Name: Windows 7
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Version: 6.1
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Architecture: amd64
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Java Home: C:\Program Files\Java\jre1.8.0_171
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Version: 1.8.0_171-b11
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Vendor: Oracle Corporation
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_BASE: D:\Users\Administrator.XTM-01702051609\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_HOME: D:\下载\apache-tomcat-7.0.86
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.base=D:\Users\Administrator.XTM-01702051609\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.home=D:\下载\apache-tomcat-7.0.86
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dwtp.deploy=D:\Users\Administrator.XTM-01702051609\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.endorsed.dirs=D:\下载\apache-tomcat-7.0.86\endorsed
十一月 09, 2018 6:36:27 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dfile.encoding=GBK
十一月 09, 2018 6:36:27 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.8.0_171\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre1.8.0_171/bin/server;C:/Program Files/Java/jre1.8.0_171/bin;C:/Program Files/Java/jre1.8.0_171/lib/amd64;d:\app\Administrator\product\11.2.0\dbhome_1\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;D:\下载\Toad for Oracle 12.1;C:\Program Files\Java\jdk1.7.0_80\bin;C:\Program Files\Java\jdk1.7.0_80\jre\bin;D:\下载\eclipse;;.
十一月 09, 2018 6:36:27 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-bio-8080"]
十一月 09, 2018 6:36:28 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-bio-8009"]
十一月 09, 2018 6:36:28 下午 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 1596 ms
十一月 09, 2018 6:36:28 下午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
十一月 09, 2018 6:36:28 下午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.86
十一月 09, 2018 6:36:34 下午 org.apache.catalina.startup.TldConfig execute
信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
十一月 09, 2018 6:36:35 下午 org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
警告: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [1,628] milliseconds.
十一月 09, 2018 6:36:48 下午 org.apache.catalina.startup.TaglibUriRule body
信息: TLD skipped. URI: http://velocity.apache.org/velocity-view is already defined
十一月 09, 2018 6:36:48 下午 org.apache.catalina.startup.TaglibUriRule body
信息: TLD skipped. URI: http://velocity.apache.org/velocity-view is already defined
十一月 09, 2018 6:36:49 下午 org.apache.catalina.startup.TldConfig execute
信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
2018-11-09 18:36:49,835 [INFO][org.nutz.mvc.NutFilter] - NutFilter[nutz] starting ...
2018-11-09 18:36:50,542 [INFO][org.nutz.mvc.impl.NutLoading] - Nutz Version : 1.r.65
2018-11-09 18:36:50,543 [INFO][org.nutz.mvc.impl.NutLoading] - Nutz.Mvc[nutz] is initializing ...
2018-11-09 18:36:50,606 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > scan 'com.hfits'
2018-11-09 18:36:52,130 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'baseAction ' - com.hfits.common.action.BaseAction
2018-11-09 18:36:52,133 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'logInterceptor ' - com.hfits.common.aop.LogInterceptor
2018-11-09 18:36:52,140 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'baseService ' - com.hfits.common.service.BaseService
2018-11-09 18:36:52,147 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'comUtil ' - com.hfits.modules.com.comUtil
2018-11-09 18:36:52,155 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'demoAction ' - com.hfits.modules.compt.chart.DemoAction
2018-11-09 18:36:52,163 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'editorAction ' - com.hfits.modules.compt.editor.EditorAction
2018-11-09 18:36:52,177 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'editorService ' - com.hfits.modules.compt.editor.service.EditorService
2018-11-09 18:36:52,181 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'startSet ' - com.hfits.modules.compt.editor.StartSet
2018-11-09 18:36:52,185 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'formAction ' - com.hfits.modules.compt.form.FormAction
2018-11-09 18:36:52,194 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'formInitUtil ' - com.hfits.modules.compt.form.util.FormInitUtil
2018-11-09 18:36:52,195 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'yYFormAction ' - com.hfits.modules.compt.form.YYFormAction
2018-11-09 18:36:52,202 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'weiXinJob ' - com.hfits.modules.compt.qyhgl.job.WeiXinJob
2018-11-09 18:36:52,203 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'sys_qyhglService ' - com.hfits.modules.compt.qyhgl.service.Sys_qyhglService
2018-11-09 18:36:52,207 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'sys_qyhglAction ' - com.hfits.modules.compt.qyhgl.Sys_qyhglAction
2018-11-09 18:36:52,208 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'database_backupAction ' - com.hfits.modules.compt.sjkbf.Database_backupAction
2018-11-09 18:36:52,210 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'oracleDatabaseBackupJob ' - com.hfits.modules.compt.sjkbf.job.OracleDatabaseBackupJob
2018-11-09 18:36:52,220 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'displayBlob ' - com.hfits.modules.global.DisplayBlob
2018-11-09 18:36:52,221 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'downloadFile ' - com.hfits.modules.global.DownloadFile
2018-11-09 18:36:52,225 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'qRCode ' - com.hfits.modules.global.QRCode
2018-11-09 18:36:52,226 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'systemHelp ' - com.hfits.modules.global.SystemHelp
2018-11-09 18:36:52,227 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'uploader ' - com.hfits.modules.global.Uploader
2018-11-09 18:36:52,230 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'verificationCode ' - com.hfits.modules.global.VerificationCode
2018-11-09 18:36:52,239 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'dmjService ' - com.hfits.modules.sjygl.service.DmjService
2018-11-09 18:36:52,240 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 't_daimjbAction ' - com.hfits.modules.sjygl.T_daimjbAction
2018-11-09 18:36:52,243 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 't_dmjflAction ' - com.hfits.modules.sjygl.T_dmjflAction
2018-11-09 18:36:52,251 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'baseAjaxAction ' - com.hfits.modules.sys.ajax.BaseAjaxAction
2018-11-09 18:36:52,262 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'buttonAction ' - com.hfits.modules.sys.config.ButtonAction
2018-11-09 18:36:52,265 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'csglAction ' - com.hfits.modules.sys.config.CsglAction
2018-11-09 18:36:52,268 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'ftpConfigAction ' - com.hfits.modules.sys.config.FtpConfigAction
2018-11-09 18:36:52,275 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'sys_upload_configAction ' - com.hfits.modules.sys.config.Sys_upload_configAction
2018-11-09 18:36:52,276 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'indexAction ' - com.hfits.modules.sys.IndexAction
2018-11-09 18:36:52,278 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'loginAction ' - com.hfits.modules.sys.LoginAction
2018-11-09 18:36:52,280 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'regAction ' - com.hfits.modules.sys.RegAction
2018-11-09 18:36:52,290 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'resourceAction ' - com.hfits.modules.sys.ResourceAction
2018-11-09 18:36:52,292 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'roleAction ' - com.hfits.modules.sys.RoleAction
2018-11-09 18:36:52,296 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'safeAction ' - com.hfits.modules.sys.SafeAction
2018-11-09 18:36:52,297 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'resourceService ' - com.hfits.modules.sys.service.ResourceService
2018-11-09 18:36:52,298 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'roleService ' - com.hfits.modules.sys.service.RoleService
2018-11-09 18:36:52,299 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'sysBaseService ' - com.hfits.modules.sys.service.SysBaseService
2018-11-09 18:36:52,300 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'unitService ' - com.hfits.modules.sys.service.UnitService
2018-11-09 18:36:52,303 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'userService ' - com.hfits.modules.sys.service.UserService
2018-11-09 18:36:52,313 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'sys_zlglAction ' - com.hfits.modules.sys.Sys_zlglAction
2018-11-09 18:36:52,314 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'testJob ' - com.hfits.modules.sys.task.job.TestJob
2018-11-09 18:36:52,315 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'quartzExecute ' - com.hfits.modules.sys.task.quartz.QuartzExecute
2018-11-09 18:36:52,318 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'sysLoadTask ' - com.hfits.modules.sys.task.quartz.SysLoadTask
2018-11-09 18:36:52,321 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'sys_JobTaskAction ' - com.hfits.modules.sys.task.Sys_JobTaskAction
2018-11-09 18:36:52,323 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'testAction ' - com.hfits.modules.sys.TestAction
2018-11-09 18:36:52,326 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'unitAction ' - com.hfits.modules.sys.UnitAction
2018-11-09 18:36:52,329 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'userAction ' - com.hfits.modules.sys.UserAction
2018-11-09 18:36:52,332 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'userLogAction ' - com.hfits.modules.sys.UserLogAction
2018-11-09 18:36:52,333 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'mergeUtilts ' - com.hfits.modules.sys.utils.MergeUtilts
2018-11-09 18:36:52,333 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'sys_wxmsgService ' - com.hfits.modules.sys.utils.wx.Sys_wxmsgService
2018-11-09 18:36:52,334 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'wxMessage ' - com.hfits.modules.sys.utils.wx.WxMessage
2018-11-09 18:36:52,343 [INFO][org.nutz.ioc.impl.NutIoc] - ... NutIoc init complete
2018-11-09 18:36:52,358 [INFO][org.nutz.mvc.impl.NutLoading] - Build URL mapping by com.hfits.core.UrlMappingSet ...
License file instal successfully!
License file verify successfully!
2018-11-09 18:36:56,333 [INFO][org.nutz.dao.jdbc.Jdbcs] - Get Connection from DataSource for JdbcExpert, if you lock at here, check your database server and configure
2018-11-09 18:36:57,314 [INFO][com.alibaba.druid.pool.DruidDataSource] - {dataSource-1} inited
2018-11-09 18:36:57,792 [INFO][org.nutz.mvc.impl.processor.ModuleProcessor] - Create Module obj without Ioc --> class com.hfits.modules.compt.form.util.YYFormUtil
2018-11-09 18:36:57,802 [ERROR][org.nutz.mvc.impl.NutLoading] - Error happend during start serivce!
org.nutz.lang.born.BorningException: Fail to born or cast to 'org.nutz.dao.Dao'
by args: []
because: No suitable Constructor or Factory Method!!
at org.nutz.lang.Mirror.getBorning(Mirror.java:967)
at org.nutz.mvc.adaptor.injector.ObjectPairInjector.<init>(ObjectPairInjector.java:39)
at org.nutz.mvc.adaptor.PairAdaptor.evalInjectorBy(PairAdaptor.java:57)
at org.nutz.mvc.adaptor.AbstractAdaptor.evalInjector(AbstractAdaptor.java:218)
at org.nutz.mvc.adaptor.AbstractAdaptor.init(AbstractAdaptor.java:157)
at org.nutz.mvc.adaptor.AbstractAdaptor.init(AbstractAdaptor.java:78)
at org.nutz.mvc.impl.processor.AdaptorProcessor.evalHttpAdaptor(AdaptorProcessor.java:38)
at org.nutz.mvc.impl.processor.AdaptorProcessor.init(AdaptorProcessor.java:20)
at org.nutz.mvc.impl.NutActionChainMaker.eval(NutActionChainMaker.java:38)
at org.nutz.mvc.impl.UrlMappingImpl.add(UrlMappingImpl.java:54)
at com.hfits.core.UrlMappingSet.add(UrlMappingSet.java:27)
at org.nutz.mvc.impl.NutLoading.evalUrlMapping(NutLoading.java:205)
at org.nutz.mvc.impl.NutLoading.load(NutLoading.java:108)
at org.nutz.mvc.ActionHandler.<init>(ActionHandler.java:19)
at org.nutz.mvc.NutFilter._init(NutFilter.java:91)
at org.nutz.mvc.NutFilter.init(NutFilter.java:69)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:285)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:266)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4981)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5683)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1702)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1692)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
2018-11-09 18:36:57,807 [ERROR][org.nutz.mvc.impl.NutLoading] - try to depose ioc
2018-11-09 18:36:57,811 [INFO][org.nutz.ioc.impl.NutIoc] - org.nutz.ioc.impl.NutIoc@1200242193 is closing. startup date [18-11-09 18:36:52.340]
2018-11-09 18:36:57,854 [INFO][com.alibaba.druid.pool.DruidDataSource] - {dataSource-1} closed
2018-11-09 18:36:57,854 [INFO][org.nutz.ioc.impl.NutIoc] - org.nutz.ioc.impl.NutIoc@1200242193 is deposed. startup date [18-11-09 18:36:52.340]
十一月 09, 2018 6:36:57 下午 org.apache.catalina.core.StandardContext filterStart
严重: Exception starting filter nutz
org.nutz.mvc.LoadingException: org.nutz.lang.born.BorningException: Fail to born or cast to 'org.nutz.dao.Dao'
by args: []
because: No suitable Constructor or Factory Method!!
at org.nutz.mvc.LoadingException$FC$9a86caf9ff5d3b587784fcdf555a4a7d.invoke(LoadingException.java)
at org.nutz.lang.born.AbstractConstructorBorning.call(AbstractConstructorBorning.java:25)
at org.nutz.lang.born.ConstructorBorning.born(ConstructorBorning.java:19)
at org.nutz.lang.born.BornContext.doBorn(BornContext.java:60)
at org.nutz.lang.Mirror.born(Mirror.java:1010)
at org.nutz.lang.Lang.wrapThrow(Lang.java:201)
at org.nutz.mvc.impl.NutLoading.load(NutLoading.java:135)
at org.nutz.mvc.ActionHandler.<init>(ActionHandler.java:19)
at org.nutz.mvc.NutFilter._init(NutFilter.java:91)
at org.nutz.mvc.NutFilter.init(NutFilter.java:69)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:285)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:266)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4981)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5683)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1702)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1692)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.nutz.lang.born.BorningException: Fail to born or cast to 'org.nutz.dao.Dao'
by args: []
because: No suitable Constructor or Factory Method!!
at org.nutz.lang.Mirror.getBorning(Mirror.java:967)
at org.nutz.mvc.adaptor.injector.ObjectPairInjector.<init>(ObjectPairInjector.java:39)
at org.nutz.mvc.adaptor.PairAdaptor.evalInjectorBy(PairAdaptor.java:57)
at org.nutz.mvc.adaptor.AbstractAdaptor.evalInjector(AbstractAdaptor.java:218)
at org.nutz.mvc.adaptor.AbstractAdaptor.init(AbstractAdaptor.java:157)
at org.nutz.mvc.adaptor.AbstractAdaptor.init(AbstractAdaptor.java:78)
at org.nutz.mvc.impl.processor.AdaptorProcessor.evalHttpAdaptor(AdaptorProcessor.java:38)
at org.nutz.mvc.impl.processor.AdaptorProcessor.init(AdaptorProcessor.java:20)
at org.nutz.mvc.impl.NutActionChainMaker.eval(NutActionChainMaker.java:38)
at org.nutz.mvc.impl.UrlMappingImpl.add(UrlMappingImpl.java:54)
at com.hfits.core.UrlMappingSet.add(UrlMappingSet.java:27)
at org.nutz.mvc.impl.NutLoading.evalUrlMapping(NutLoading.java:205)
at org.nutz.mvc.impl.NutLoading.load(NutLoading.java:108)
... 15 more
十一月 09, 2018 6:36:57 下午 org.apache.catalina.core.StandardContext startInternal
严重: One or more Filters failed to start. Full details will be found in the appropriate container log file
十一月 09, 2018 6:36:57 下午 org.apache.catalina.core.StandardContext startInternal
严重: Context [/hfits] startup failed due to previous errors
十一月 09, 2018 6:36:57 下午 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesJdbc
严重: The web application [/hfits] registered the JDBC driver [com.alibaba.druid.proxy.DruidDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
十一月 09, 2018 6:36:57 下午 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesJdbc
严重: The web application [/hfits] registered the JDBC driver [oracle.jdbc.driver.OracleDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
十一月 09, 2018 6:36:57 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8080"]
十一月 09, 2018 6:36:57 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-bio-8009"]
十一月 09, 2018 6:36:57 下午 org.apache.catalina.startup.Catalina start
信息: Server startup in 29917 ms
15 回复
var ioc = {
conf : {
type : "org.nutz.ioc.impl.PropertiesProxy",
fields : {
paths : ["config/ioc/datasource.properties"]
}
},
default:{
type:"com.alibaba.druid.pool.DruidDataSource",
events:{
depose:"close"
},
fields:{
/* 数据库基本信息配置 ,*/
url:{java :"$conf.get('url-default')"},
username:{java :"$conf.get('username-default')"},
password:{java :"$conf.get('password-default')"},
/*初始化连接数量*/
initialSize:5,
/*最大并发连接数*/
maxActive:5,
/*超过时间限制是否回收*/
removeAbandoned:true,
/* 超时时间;单位为秒。180秒=3分钟 */
removeAbandonedTimeout:2,
/* 关闭abanded连接时输出错误日志 */
logAbandoned:true,
/*配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒*/
timeBetweenEvictionRunsMillis:600000,
/*用来检测连接是否有效的sql,要求是一个查询语句*/
validationQuery:'SELECT COUNT(*) FROM SYS_DBTEST',
/*testWhileIdle:建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于 timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。*/
testWhileIdle:true,
/*testOnBorrow:申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。*/
testOnBorrow:false,
/*testOnReturn:归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能*/
testOnReturn:false,
/*属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有: 监控统计用的filter:stat 日志用的filter:log4j 防御SQL注入的filter:wall*/
filters:"stat"
}
},
dao : {/*dao为默认数据源名称,不允许修改*/
type : "org.nutz.dao.impl.NutDao",
args : [{refer:'default'}]
}
}
*
*/
@IocBean
@At("/private/formyy")
@Filters({ @By(type = GlobalsFilter.class),@By(type = UserLoginFilter.class) })
public class YYFormAction extends BaseAction {
public static Hashtable<String, Form_def> formdefMap = new Hashtable<String, Form_def>();//下一步时自定义表单信息存放在内存中
public static String url="/private/formyy/topreview?defid=@defid&mainid=@mainid";
@Inject
protected Dao dao;
package com.hfits.modules.compt.form.util;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import javax.servlet.http.HttpServletRequest;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.nutz.dao.Chain;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
import org.nutz.trans.Atom;
import org.nutz.trans.Trans;
import com.hfits.common.dao.ObjectCtl;
import com.hfits.common.util.DateUtil;
import com.hfits.common.util.EmptyUtils;
import com.hfits.common.util.StringUtils;
import com.hfits.modules.compt.form.bean.File_info;
import com.hfits.modules.compt.form.bean.Form_field;
import com.hfits.modules.compt.form.bean.Form_table;
import com.hfits.modules.compt.form.code.ControlType;
import com.hfits.modules.sys.bean.Sys_user;
/**
*
* #(c) IFlytek cform <br/>
*
* 版本说明: $id:$ <br/>
*
* 功能说明: 表单管理类
*
* 修改历史:<br/>
*
*/
public class YYFormUtil {
public static String url="/private/formyy/topreview?defid=@defid&mainid=@mainid";
public static String yytableid="";//主键id
public static String primaryKey="";//主键id
public static Map<String,String> getOptionsMap(String options,String sp1,String sp2){
Map<String,String> map = new HashMap<String, String>();
if(EmptyUtils.isNotEmpty(options)){
String[] ss=options.split(sp1);
for (String str : ss) {
String[] strs=str.split(sp2);
if(strs.length==2){
map.put(strs[1], strs[0]);
}else{
map.put(str, str);
}
}
}
return map;
}
public static Map<String,Object> getParams(HttpServletRequest req){
Map<String, Object> params = new HashMap<String, Object>();
Enumeration paramNames = req.getParameterNames();
while (paramNames.hasMoreElements()) {
String paramName = (String) paramNames.nextElement();
if(paramName.equals("status")){//状态保留字段
params.put(paramName, req.getParameter(paramName));
continue;
}
String[] paramValues = req.getParameterValues(paramName);
if (paramValues.length >= 1) {
String paramValue="";
for (int i = 0; i < paramValues.length; i++) {
paramValue=paramValue+paramValues[i]+"☆";
}
paramValue=paramValue.substring(0,paramValue.length()-1);
params.put(paramName, paramValue);
}
}
return params;
}
/**
* 功能描述:表单管理新增页面
*
*
*/
public static boolean add(final ObjectCtl daoCtl,final Dao dao,final HttpServletRequest req,final Sys_user user,final Map paramMap,final int formdefid) {
final ThreadLocal<Boolean> re = new ThreadLocal<Boolean>();
try {
Trans.exec(new Atom() {
public void run() {
if (formdefid>0) {
String lognote="";
String main_zhujian="";//主表主键
//获取页面参数和值
Map<String, String> map = new HashMap<String, String>();
Enumeration paramNames = req.getParameterNames();
while (paramNames.hasMoreElements()) {
String paramName = (String) paramNames.nextElement();
String[] paramValues = req.getParameterValues(paramName);
if (paramValues.length >= 1) {
String paramValue="";
for (int i = 0; i < paramValues.length; i++) {
paramValue=paramValue+paramValues[i]+"☆";
}
paramValue=paramValue.substring(0,paramValue.length()-1);
map.put(paramName, paramValue);
}
}
System.out.println("获取页面的状态值"+map.get("status"));
//获取form_table表信息
List<Form_table> tableList=daoCtl.list(dao, Form_table.class, Sqls.create("select * from form_table where formdefid="+formdefid+" order by ismain desc"));
if (tableList.size()>0) {
for (Form_table table :tableList) {
//获取表名
String tablename=FormInitUtil.TABLE_PRE_NAME+table.getTablekey();
//判断表是否已经创建
boolean is_create=dao.exists(tablename);
if (is_create) {
int datasize=0;//数据数量
String isprimary="";//主键字段
String foreignkey="";//外键字段
String field_qz="";
String primarykeyvalue="";//主键值
List<Map<String,String>> list=new ArrayList<Map<String,String>>();
//是否是主表
if (table.getIsmain()==1) {
String zjsql="SELECT sys_guid() FROM dual";
main_zhujian=daoCtl.getStrRowValue(dao, Sqls.create(zjsql));
}else{
field_qz=table.getTablekey()+".";
}
Map<String,String> fieldMap=new HashMap<String,String>();
fieldMap.put(".table", tablename);
String fieldSql="select * from form_field where status=0 and tableid= "+table.getTableid();
List<Form_field> fieldList=daoCtl.list(dao, Form_field.class, Sqls.create(fieldSql));
fieldSql="select fieldname,controltype from form_field where status=0 and tableid= "+table.getTableid();
Hashtable<String, String> controltypeHT=daoCtl.getHTable(dao, Sqls.create(fieldSql));
for (Form_field field : fieldList) {
if(field.getIsprimary()==1){
isprimary=field.getFieldname();
}
if (EmptyUtils.isNotEmpty(field.getForeignkey())) {
foreignkey=field.getFieldname();
}
if (paramMap.containsKey(field_qz+field.getFieldname())&&
!(ControlType.attachement.toString()).equals(field.getControltype())&&
!(ControlType.userphoto.toString()).equals(field.getControltype())) {
String fieldvalue=StringUtils.null2String(paramMap.get(field_qz+field.getFieldname()));
//是否是文件上传框paramMap
//if (field.getControltype()==15 || field.getControltype()==20) {
/// fieldMap=saveFile(daoCtl,dao,field,fieldMap,paramMap,field_qz);
//}else{
fieldMap.put(field.getFieldname(), fieldvalue);
//}
//保存临时数据数量
String[] dd=fieldvalue.split("☆");
if (datasize<dd.length) {
datasize=dd.length;
}
}else{
fieldMap.put(field.getFieldname(), "");
}
}
//封装数据插入数据库
for (int i = 0; i < datasize; i++) {
Map<String,String> sd=new HashMap<String,String>();
if(EmptyUtils.isNotEmpty(isprimary)){
if (table.getIsmain()==1) {//主表
primarykeyvalue=main_zhujian;
}else{
primarykeyvalue= daoCtl.getStrRowValue(dao, Sqls.create("SELECT sys_guid() FROM dual"));
}
}
for (Map.Entry<String, String> zd : fieldMap.entrySet()) {
String key=zd.getKey();
String value=StringUtils.null2String(zd.getValue());
if ("15".equals(controltypeHT.get(key))||"20".equals(controltypeHT.get(key))) {
//fieldMap=saveFile(daoCtl,dao,fieldList.get(i),fieldMap,paramMap,field_qz);
YYFormUtil.saveFile(daoCtl,dao,key, map, field_qz, tablename, primarykeyvalue);
sd.put(key, "");
}else{
if (value.indexOf("☆")!=-1) {
String[] dd=value.split("☆");
if ((i+1)>dd.length) {
sd.put(key, "");
}else{
sd.put(key, dd[i]);
}
}else{
sd.put(key, value);
}
}
}
sd.put(isprimary, primarykeyvalue);
if (EmptyUtils.isNotEmpty(foreignkey)) {
sd.put(foreignkey, main_zhujian);
}
// lognote+=SysLogUtil.getLogNoteForm(sd, table.getTableid()+"","add");
dao.insert(sd);
}
}else{
re.set(false);
break;
}
}
}
re.set(true);
String formname=daoCtl.getStrRowValue(dao, Sqls.create("select formtitle from form_def where defid='"+formdefid+"'"));
// SysLogUtil.addLog(dao, user.getLoginname(), SysLogUtil.gtyx_log_type, true, 1,
// "增加表单【"+ formname +"】", formname, lognote,
// StringUtils.null2String(paramMap.get("log.xgyy")), StringUtils.null2String(paramMap.get("log.xgyj")),url.replace("@defid", formdefid+"").replace("@mainid", main_zhujian));
}else{
re.set(false);
}
}
});
} catch (Exception e) {
re.set(false);
e.printStackTrace();
}
return re.get();
}
/**
* 功能描述:表单管理修改页面
*
* @author (☆笑死宝宝了☆) 2016年2月25日 上午10:32:03
*
* @param req
* @param defid
* @param mainid 主表id
*/
public static String toupdate(ObjectCtl daoCtl,Dao dao,HttpServletRequest req,@Param("defid") String defid,@Param("mainid") String mainid) {
try {
req.setAttribute("formdefid", defid);
String restr=FormInitUtil.formHtmlMap.get(defid+"_update");
Document doc=Jsoup.parse(restr);
/**
* 查询主表主键字段名称
*/
String zhujian_field="";
List<Form_table> tableList=daoCtl.list(dao, Form_table.class, Sqls.create("select * from form_table where formdefid="+defid+" order by ismain desc"));
if (tableList.size()>0) {
for (Form_table table :tableList) {
//获取表名
String tablename=FormInitUtil.TABLE_PRE_NAME+table.getTablekey();
String filed_qz="";
//获取编辑数据
Sql fieldvaluesql=Sqls.create("select * from $table where $id=@id order by $orderby");
fieldvaluesql.vars().set("table", tablename);
if (table.getIsmain()==1) {
//查询主表主键
Sql mainkeysql=Sqls.create("select fieldname from form_field where status=0 and tableid=@tableid and ISPRIMARY=1");
mainkeysql.params().set("tableid", table.getTableid());
String keyfiled=daoCtl.getStrRowValue(dao, mainkeysql);
zhujian_field=keyfiled;
fieldvaluesql.vars().set("id", keyfiled);
fieldvaluesql.vars().set("orderby", keyfiled);
}else{
filed_qz=table.getTablekey()+".";
//查询子表外键字段
Sql mainkeysql=Sqls.create("select fieldname from form_field where status=0 and tableid=@tableid and foreignkey=@foreignkey");
mainkeysql.params().set("tableid", table.getTableid());
mainkeysql.params().set("foreignkey", zhujian_field);
String keyfiled=daoCtl.getStrRowValue(dao, mainkeysql);
//查询排序字段,默认找第一个
mainkeysql=Sqls.create("select fieldname from form_field where status=0 and tableid=@tableid order by location");
mainkeysql.params().set("tableid", table.getTableid());
String orderby=daoCtl.getStrRowValue(dao, mainkeysql);
fieldvaluesql.vars().set("id", keyfiled);
fieldvaluesql.vars().set("orderby", orderby);
}
fieldvaluesql.params().set("id", mainid);
List<Map> sd=daoCtl.list(dao, fieldvaluesql);
if(table.getIsmain()==1){
req.setAttribute("status", sd.get(0).get("status"));
}
Sql fieldSql=Sqls.create("select * from form_field where status=0 and tableid=@tableid ");
fieldSql.params().set("tableid", table.getTableid());
primaryKey=zhujian_field;
List<Form_field> fieldList=daoCtl.list(dao, Form_field.class, fieldSql);
restr=getHtml(daoCtl,dao,table, doc, sd, fieldList,filed_qz,"");
}
}
req.setAttribute("body", restr);
return restr;
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
/**
* 功能描述:表单管理新增页面
*
*
*/
@At
@Ok("raw")
public static boolean update(final ObjectCtl daoCtl,final Dao dao,final HttpServletRequest req,final Sys_user user,final Map map,final @Param("formdefid") int formdefid,final @Param("status")int status,final File_info file) {
final ThreadLocal<Boolean> re = new ThreadLocal<Boolean>();
try {
Trans.exec(new Atom() {
public void run() {
String lognote="";
//获取页面参数和值
Map<String, String> map = new HashMap<String, String>();
Enumeration paramNames = req.getParameterNames();
while (paramNames.hasMoreElements()) {
String paramName = (String) paramNames.nextElement();
String[] paramValues = req.getParameterValues(paramName);
if (paramValues.length >= 1) {
String paramValue="";
for (int i = 0; i < paramValues.length; i++) {
//此处来将状态值存入map
if(paramName.equals("status")){
paramValue=status+"☆";
}else{
paramValue=paramValue+paramValues[i]+"☆";
}
}
paramValue=paramValue.substring(0,paramValue.length()-1);
map.put(paramName, paramValue);
}
}
String mainid="";//主表主键值
//获取form_table表信息
List<Form_table> tableList=daoCtl.list(dao, Form_table.class, Sqls.create("select * from form_table where formdefid="+formdefid+" order by ismain desc"));
if (tableList.size()>0) {
for (Form_table table :tableList) {
String filed_qz="";
//获取表名
String tablename=FormInitUtil.TABLE_PRE_NAME+table.getTablekey();
//需要更新的数据
Map<String,Object> fieldMap=new HashMap<String,Object>();
fieldMap.put(".table", tablename);
//查询表字段
Sql fieldSql=Sqls.create("select * from form_field where status=0 and tableid=@tableid order by isprimary desc,fieldid");
fieldSql.params().set("tableid", table.getTableid());
List<Form_field> fieldList=daoCtl.list(dao, Form_field.class, fieldSql);
fieldSql=Sqls.create("select fieldname,controltype from form_field where status=0 and tableid=@tableid");
fieldSql.params().set("tableid", table.getTableid());
Hashtable<String, String> controltypeHT=daoCtl.getHTable(dao, fieldSql);
//是否是主表
if (table.getIsmain()==1) {
String primary="";
for (Form_field field : fieldList) {
if (map.containsKey(filed_qz+field.getFieldname())
&&!(ControlType.attachement.toString()).equals(field.getControltype())
&&!(ControlType.userphoto.toString()).equals(field.getControltype())) {
String fieldvalue=StringUtils.null2String(map.get(filed_qz+field.getFieldname()));
//临时保存主表 主键id值
if (field.getIsprimary()==1) {
mainid=fieldvalue;
primary=field.getFieldname();
}
fieldMap.put(field.getFieldname(), fieldvalue);
}else if ((ControlType.attachement.toString()).equals(field.getControltype())
||(ControlType.userphoto.toString()).equals(field.getControltype())) {
YYFormUtil.saveFile(daoCtl,dao,field.getFieldname(), map, filed_qz, tablename, mainid);
}else{
fieldMap.put(field.getFieldname(), "");
}
}
String sqlstr="select * from "+tablename +" where "+primary+"='"+mainid+"'";
List<Map> oldlist=daoCtl.list(dao, Sqls.create(sqlstr));
// lognote+=SysLogUtil.getLogNoteForm(oldlist.get(0), fieldMap, table.getTableid()+"");
dao.update(tablename, Chain.from(fieldMap), Cnd.where(primary,"=",mainid));
}else{
int datasize=0;//数据数量
filed_qz=table.getTablekey()+".";
//当前表的外键字段
String fk_name="";
String primary="";
String primary_value="";
//获取子表每条数据信息
for (Form_field field : fieldList) {
if (field.getIsprimary()==1) {
primary=field.getFieldname();
}
if (map.containsKey(filed_qz+field.getFieldname())
&&!(ControlType.attachement.toString()).equals(field.getControltype())
&&!(ControlType.userphoto.toString()).equals(field.getControltype())) {
String fieldvalue=StringUtils.null2String(map.get(filed_qz+field.getFieldname()));
//if (field.getControltype()==15|| field.getControltype()==20) {
// fieldMap=saveFile(daoCtl,dao,field,fieldMap,map,filed_qz);
//}else{
fieldMap.put(field.getFieldname(), fieldvalue);
//}
String[] dd=fieldvalue.split("☆");
if (datasize<dd.length) {
datasize=dd.length;
}
}else{
//判断request中没有的值是否是外键字段
if (EmptyUtils.isNotEmpty(field.getForeignkey())) {
fieldMap.put(field.getFieldname(), mainid);
fk_name=field.getFieldname();
}else{
fieldMap.put(field.getFieldname(), "");
}
}
}
if(EmptyUtils.isNotEmpty(primary)){//子表有主键
//删除不存在的子表数据
if(null!=map.get(filed_qz+primary)){
String findin=StringUtils.getStrsplit(StringUtils.null2String(map.get(filed_qz+primary)).split("☆"));
String sqlstr="select * from "+tablename+" where "+primary+" not in "+findin+" and "+fk_name+"='"+mainid+"'";
List<Map> oldlist=daoCtl.list(dao, Sqls.create(sqlstr));
if(oldlist.size()>0){
sqlstr="delete from "+tablename+" where "+primary+" not in "+findin+" and "+fk_name+"='"+mainid+"'";
Sql delsql=Sqls.create(sqlstr);
dao.execute(delsql);
// lognote+=SysLogUtil.getLogNoteForm(oldlist, table.getTableid()+"", "delete");
}
}
}else{//子表无主键,本系统中暂时不做处理
}
//封装数据插入或更新到数据库
for (int i = 0; i < datasize; i++) {
Map<String,String> sd=new HashMap<String,String>();
String primarykeyvalue="";
for (Entry<String, Object> zd : fieldMap.entrySet()) {
String key=zd.getKey();
String value=zd.getValue().toString();
if(EmptyUtils.isEmpty(sd.get(primary))){
primarykeyvalue= daoCtl.getStrRowValue(dao, Sqls.create("SELECT sys_guid() FROM dual"));
}else{
primarykeyvalue=sd.get(primary);
}
//增加子表附件
if ("15".equals(controltypeHT.get(key))||"20".equals(controltypeHT.get(key))) {
System.out.println("增加子表附件+++++");
YYFormUtil.saveFile(daoCtl,dao,key, map, filed_qz, tablename, primarykeyvalue);
value="";
}
if (value.indexOf("☆")!=-1) {
String[] dd=value.split("☆");
if ((i+1)>dd.length) {
sd.put(key, "");
}else{
sd.put(key, dd[i]);
}
}else{
sd.put(key, value);
}
}
if(EmptyUtils.isNotEmpty(primary)){
if(EmptyUtils.isEmpty(sd.get(primary))){
sd.put(primary, daoCtl.getStrRowValue(dao, Sqls.create("SELECT sys_guid() FROM dual")));
dao.insert(sd);
// lognote+=SysLogUtil.getLogNoteForm(sd, table.getTableid()+"","add");
}else{
String sqlstr="select * from "+tablename +" where "+primary+"='"+sd.get(primary)+"'";
List<Map> oldlist=daoCtl.list(dao, Sqls.create(sqlstr));
dao.update(tablename, Chain.from(sd), Cnd.where(primary,"=",sd.get(primary)));
// lognote+=SysLogUtil.getLogNoteForm(oldlist.get(0), sd, table.getTableid()+"");
}
}else{//子表无主键,本系统中暂时不做处理
}
}
}
}
}
String formname=daoCtl.getStrRowValue(dao, Sqls.create("select formtitle from form_def where defid='"+formdefid+"'"));
//修改证明附件
if (EmptyUtils.isNotEmpty(file.getFilename()) && EmptyUtils.isNotEmpty(file.getFilepath())) {
dao.insert(file);
}
// SysLogUtil.addLog(dao, user.getLoginname(), SysLogUtil.gtyx_log_type, true, 2,
// "更新表单【"+ formname +"】", formname, lognote, StringUtils.null2String(map.get("log.xgyy")),
// StringUtils.null2String(map.get("log.xgyj")),url.replace("@defid", formdefid+"").replace("@mainid", mainid));
re.set(true);
}
});
} catch (Exception e) {
re.set(false);
e.printStackTrace();
}
return re.get();
}
/**
* 功能描述:保存文件到附件表
*
* @author (☆笑死宝宝了☆) 2016年3月3日 下午2:55:35
*
*/
public static void saveFile( ObjectCtl daoCtl,final Dao dao,final String fieldname,final Map<String,String> map,final String field_qz,final String tablename,final String tablekey){
try {
Trans.exec(new Atom() {
public void run() {
String name=field_qz+fieldname;
String[] names=StringUtils.null2String(map.get(name+"_filename")).split(";");
String[] paths=StringUtils.null2String(map.get(name+"_filepath")).split(";");
String[] sizes=StringUtils.null2String(map.get(name+"_filesize")).split(";");
String[] ids=StringUtils.null2String(map.get(name+"_fileid")).split(";");
String curtime=DateUtil.getCurDateTime();
String NDelid="";//保留的附件记录,除此之外均删除
//附件
for(int i=0;i<paths.length;i++){
File_info att = new File_info();
if(EmptyUtils.isNotEmpty(paths[i])&&EmptyUtils.isNotEmpty(names[i])){
if(EmptyUtils.isEmpty(ids[i])||" ".equals(ids[i])){
att.setFilename(names[i]);
att.setFilepath(paths[i]);
att.setTablekey(tablekey);
att.setTablename(tablename);
att.setCreate_time(curtime);
att.setFilesize(sizes[i]);
att.setFieldname(fieldname);
dao.insert(att);
NDelid+="'"+att.getId()+"',";
}else if(!" ".equals(ids[i])){
NDelid+="'"+ids[i]+"',";
}
}
}
if(NDelid.length()>1){
NDelid=NDelid.endsWith(",")?NDelid.substring(0, NDelid.length()-1):NDelid;
Sql delsql=Sqls.create("delete from file_info where id not in ("+NDelid+") and fieldname=@fieldname and tablekey=@tablekey and tablename=@tablename");
delsql.params().set("tablename", tablename);
delsql.params().set("tablekey", tablekey);
delsql.params().set("fieldname", fieldname);
System.out.println(delsql.toString());
dao.execute(delsql);
}
}
});
}catch(Exception e){
e.printStackTrace();
}
}
/**
* savefile原始
* @param str
* @return
*/
private static Map<String,String> saveFile(final ObjectCtl daoCtl,final Dao dao,final Form_field field,final Map fieldMap,final Map map,final String filed_qz){
final ThreadLocal<Map<String,String>> re = new ThreadLocal<Map<String,String>>();
try {
Trans.exec(new Atom() {
public void run() {
String name=filed_qz+field.getFieldname();
String Newname=field.getFieldname();
String id=StringUtils.null2String(map.get(name+"_oldvalue"));
String[] ids=id.split("☆");
String[] filenames=StringUtils.null2String(map.get(name+"_filename")).split("☆");
String[] filepaths=StringUtils.null2String(map.get(name+"_filepath")).split("☆");
String[] filesizes=StringUtils.null2String(map.get(name+"_filesize")).split("☆");
String reId="";
for (int i=0;i<containsBy(id)+1;i++) {
String curId="";
if (filenames.length>i&&EmptyUtils.isNotEmpty(filenames[i]) && EmptyUtils.isNotEmpty(filepaths[i])) {
File_info file=new File_info();
file.setFilename(filenames[i]);
file.setFilepath(filepaths[i]);
file.setFilesize(filesizes[i]);
file.setCreate_time(DateUtil.getCurDateTime());
//判断ids是否存在
if (ids.length>0&&EmptyUtils.isNotEmpty(ids[i])) {
Sql delsql=Sqls.create("delete from file_info where id=@id");
delsql.params().set("id", ids[i]);
dao.execute(delsql);
}
dao.insert(file);
curId=file.getId();
}else{
if(ids.length>i){
curId=ids[i];
}
}
if(i==filesizes.length-1){
reId+=curId;
}else{
reId+=curId+"☆";
}
}
fieldMap.put(Newname, reId);
re.set(fieldMap);
}
});
}catch(Exception e){
re.set(fieldMap);
e.printStackTrace();
}
return re.get();
}
public static int containsBy(String str){
int i=0;
char[] cc=str.toCharArray();
for (char c : cc) {
if("☆".equals(c+"")){
i++;
}
}
return i;
}
/**
* 功能描述:给标签设置 value值
*
* @author (☆笑死宝宝了☆) 2016年2月26日 下午5:24:34
*
*/
private static void setTagValue( ObjectCtl daoCtl,Dao dao,Element el,String value,Form_field field,String tablename,String mainid){
String clas=el.attr("clas");
value=StringUtils.null2String(value);
String nodename=el.nodeName();
if (("select").equals(nodename)) {
if ((ControlType.attachement.toString()).equals(field.getControltype())) {//是附件
List<File_info> fileList=daoCtl.list(dao,File_info.class, Sqls.create("select * from file_info where fieldname='"+field.getFieldname()+"' and tablekey='"+mainid+"' and tablename='"+tablename+"' order by create_time"));
if (fileList.size()>0) {
for (File_info file : fileList) {
String varItem = file.getId()+"|"+file.getFilepath()+"|"+file.getFilesize();
el.append("<option value='"+varItem+"' selected>"+file.getFilename()+"</option>");
}
}else{
el.attr("value","");
}
}else{
el.attr("selectedvalue", value);//在前台使用js做选中,在preview.js初始中运行
}
}else if("input".equals(nodename)){
String type=el.attr("type").toUpperCase();
String setvalue=el.attr("value");
if ("CHECKBOX".equals(type)) {
if (setvalue.equals(value)) {
el.attr("checked", "checked");
}
}if ("RADIO".equals(type)) {
if (setvalue.equals(value)) {
el.attr("checked", "checked");
}
}else{
if ((ControlType.attachement.toString()).equals(field.getControltype())
||(ControlType.userphoto.toString()).equals(field.getControltype())) {//是附件
File_info fileinfo=getFileById(daoCtl,dao,value);
if (EmptyUtils.isNotEmpty(fileinfo)) {
el.attr("controltype",fileinfo.getFilepath());
el.parent().select("input[name="+el.attr("name")+"_oldvalue]").attr("value", value);
// el.after("<input type='hidden' name='"+el.attr("name")+"_oldvalue' value='"+value+"' />");
el.attr("value",fileinfo.getFilename());
}else{
el.attr("value","");
el.parent().select("input[name="+el.attr("name")+"_oldvalue]").attr("value", "");
}
}else if((ControlType.userselector.toString()).equals(field.getControltype())
||(ControlType.singleuserselector.toString()).equals(field.getControltype())){//信用主体
if (EmptyUtils.isNotEmpty(value)) {
String[] valueArry=value.split(",");
String showValue="";
for (int i = 0; i < valueArry.length; i++) {
String xyzt=StringUtils.null2String(FormInitUtil.userMap.get(valueArry[i]));
showValue=showValue+xyzt+",";
}
el.attr("clas","xyzt");
el.attr("showxyzt",showValue.substring(0,showValue.length()-1));
}
el.attr("value",value);
}else if((ControlType.userunit.toString()).equals(field.getControltype())){//用户所在机构 22?
if (EmptyUtils.isNotEmpty(value)) {
Elements el2=el.siblingElements();
el2.attr("value", FormInitUtil.unitMap.get(value));
}
el.attr("value",value);
}else if((ControlType.currentuser.toString()).equals(field.getControltype())){//当前登录用户登录名
if (EmptyUtils.isNotEmpty(value)) {
Elements el2=el.siblingElements();
el2.attr("value", FormInitUtil.userMap.get(value));
}
el.attr("value",value);
}else{
el.attr("value",value);
}
if (clas.equals("radio")) {
String radiotext=field.getOptions();
if (EmptyUtils.isNotEmpty(radiotext)) {
String[] radioArry=radiotext.split("#newline#");
for (int i = 0; i < radioArry.length; i++) {
String text=radioArry[i];
String[] textArry=text.split("/");
if(value.equals(textArry[1])){
value=textArry[0];
}
}
}
el.attr("selectedtext", value);//在前台使用js做选中,在preview.js初始中运行
}
}
}else if("textarea".equals(nodename)){
el.append(value);
}
}
/**
* 功能描述:给标签设置 value值,浏览页面使用
*
* @author (☆笑死宝宝了☆) 2016年2月26日 下午5:24:34
*
*/
private static void setValue( ObjectCtl daoCtl,Dao dao,Element el,String value,Form_field field,String tablename,String mainid){
value=StringUtils.null2String(value);
Element pel=el.parent();
String pclass=pel.attr("class");
if("hidedomain".equals(pclass)){//隐藏域
// value="";
el.attr("value", value);
}else if("textfield".equals(pclass)||"textarea".equals(pclass)||"datepicker".equals(pclass)){//单行文本框||多行文本||日期
//value=value;不做处理
}else if("checkbox".equals(pclass)||"radioinput".equals(pclass)){//多选框||单选框
/*String options=field.getOptions();
if (EmptyUtils.isNotEmpty(options)) {
Map<String,String> optionsMap=YYFormUtil.getOptionsMap(options, "#newline#", "/");
value=optionsMap.get(value);
}*/
}else if("selectinput".equals(pclass)){//下拉框
String loadselect=field.getLoadselect();
String options=field.getOptions();
if(EmptyUtils.isNotEmpty(loadselect)){
if (loadselect.indexOf("☆")!=-1) {//查询自定义表单中数据
String[] loadSelectArry=loadselect.split("☆");
Sql sql=Sqls.create("select $fieldvalue from $tablename where $fieldkey=@keyvalue");
sql.vars().set("fieldvalue", loadSelectArry[2]).set("tablename", "L_"+loadSelectArry[0]).set("fieldkey", loadSelectArry[1]);
sql.params().set("keyvalue", value);
value=daoCtl.getStrRowValue(dao, sql);
}else{
String sql="select code,name from Cs_value where typeid = '"+loadselect+"'";
Map<String,String> loadselectMap=daoCtl.getHTable(dao, Sqls.create(sql));
sql="select code from Cs_value where value='"+value+"' and typeid = '"+loadselect+"'";
String code=daoCtl.getStrRowValue(dao, Sqls.create(sql));
int lg=code.length()/4;
value="";
for (int j = 1; j <= lg; j++) {
value+=loadselectMap.get(code.substring(0,j*4))+"/";
}
int lg2=value.length()>0?value.length()-1:0;
value=value.substring(0,lg2);
}
}else{
Map<String,String> optionsMap=YYFormUtil.getOptionsMap(options, "#newline#", "/");
value=optionsMap.get(value);
}
}else if("userselector".equals(pclass)){//用户
if (EmptyUtils.isNotEmpty(value)) {
String[] valueArry=value.split(",");
String showValue="";
for (int i = 0; i < valueArry.length; i++) {
String xyzt=StringUtils.null2String(FormInitUtil.userMap.get(valueArry[i]));
showValue=showValue+xyzt+",";
}
value=showValue.substring(0,showValue.length()-1);
}
}else if("attachement".equals(pclass)){//附件
List<File_info> fileList=daoCtl.list(dao,File_info.class, Sqls.create("select * from file_info where fieldname='"+field.getFieldname()+"' and tablekey='"+mainid+"' and tablename='"+tablename+"' order by create_time"));
value="";
for (File_info file : fileList) {
value+="<a href=\""+file.getFilepath()+"\" target='_blank' >"+file.getFilename()+"</a><br/>";
}
}else if("userunit".equals(pclass)||"unitselector".equals(pclass)){//用户所在机构
if (EmptyUtils.isNotEmpty(value)) {
value=FormInitUtil.unitMap.get(value);
}
}else if("userphoto".equals(pclass)){//用户头像
Elements imgEl=pel.select("img[fileinputname="+field.getFieldname()+"]");
imgEl.removeAttr("onclick");
List<File_info> fileList=daoCtl.list(dao,File_info.class, Sqls.create("select * from file_info where fieldname='"+field.getFieldname()+"' and tablekey='"+mainid+"' and tablename='"+tablename+"' order by create_time"));
System.out.println("select * from file_info where fieldname='"+field.getFieldname()+"' and tablekey='"+mainid+"' and tablename='"+tablename+"' order by create_time");
if(fileList.size()>0){
File_info fileinfo=fileList.get(0);
value=imgEl.attr("src",fileinfo.getFilepath()).toString();
}else{
value=imgEl.toString();
}
System.out.println(fileList.size()+"========="+value);
}else if("currentuser".equals(pclass)){//当前用户登录名称
if (EmptyUtils.isNotEmpty(value)) {
if("hidden".equals(el.attr("type"))){
value=StringUtils.null2String(FormInitUtil.userMap.get(String.valueOf(value)));
el.attr("value", value);
}
}
}
if("checkbox".equals(pclass)||"radioinput".equals(pclass)){
String[] vals=value.replace(",", ",").split(",");
Elements tmpEles=el.parent().select("[name="+field.getFieldname()+"_name]");
for (Element ele : tmpEles) {
for (String val : vals) {
if(val.equals(ele.attr("value"))){
ele.attr("checked", "checked");
}
}
ele.attr("disabled", "disabled");
ele.attr("name", ele.attr("name")+yytableid);
}
}else if("span".equals(el.parent().nodeName())&&!"hidedomain".equals(pclass)){
el.parent().after(StringUtils.null2String(value));
el.parent().remove();
}
}
/**
* 功能描述:通过
*
* @author (☆笑死宝宝了☆) 2016年3月3日 下午3:27:51
*
* @param id
* @return
*/
private static File_info getFileById(final ObjectCtl daoCtl,final Dao dao,String id){
Sql sql=Sqls.create("select * from file_info where id=@id");
sql.params().set("id", id);
File_info file=daoCtl.detailBySql(dao, File_info.class, sql);
return file;
}
/**
* 功能描述:公用 替换页面html标签方法
*
* @author (☆笑死宝宝了☆) 2016年2月29日 上午9:44:24
*
* @param table 表实体
* @param doc jsoup
* @param sd 表 数据
* @param fieldList 表字段
* @param type 类型 view查看页面使用,需删除标签
* @return
*/
public static String getHtml(ObjectCtl daoCtl,Dao dao,Form_table table,Document doc,List<Map> sd,List<Form_field> fieldList,String filed_qz,String type){
String tablename=FormInitUtil.TABLE_PRE_NAME+table.getTablekey();
//获取子表的数据格式
Element subdiv=null;
Element subtr =null;
if (table.getIsmain()!=1) {
subdiv=doc.select("[tablekey="+table.getTablekey()+"]").first();
//查询子表是否是块级显示
subtr =subdiv.getElementById("tr_"+table.getTablekey());
if (EmptyUtils.isNotEmpty(subtr)) {
doc.getElementById("tr_"+table.getTablekey()).remove();
/**
* 去除子表行级显示的 多选 checkbox 的disabled的属性
*/
Elements ckels= subtr.select("[name=ckb_"+table.getTablekey()+"]");
for (Element ck :ckels) {
ck.removeAttr("disabled");
}
}else{
subtr =subdiv.getElementById("table_"+table.getTablekey());
doc.getElementById("table_"+table.getTablekey()).remove();
}
if (sd.size()==0) {
Element el= doc.getElementById("table_"+table.getTablekey());
if (EmptyUtils.isNotEmpty(el)) {
doc.getElementById("table_"+table.getTablekey()).child(0).append(subtr.toString());
}else{
doc.select("[tablekey="+table.getTablekey()+"]").first().child(0).append(subtr.toString());
}
}
}
//表数据条数循环
for (Map hashtable : sd) {
for (Form_field field : fieldList) {
yytableid=StringUtils.null2String(hashtable.get(primaryKey));
if (table.getIsmain()==1) {
Elements els= doc.select("[name="+field.getFieldname()+"]");
if (EmptyUtils.isEmpty(els)) {
doc.body().append("<input type=\"hidden\" name=\""+field.getFieldname()+"\" value=\""+hashtable.get(field.getFieldname())+"\" />");
}
for (Element el : els) {
String value=String.valueOf(hashtable.get(field.getFieldname()));
if("view".equals(type)){
setValue(daoCtl,dao,el,value,field,tablename,yytableid);
}else{
setTagValue(daoCtl,dao,el,value,field,tablename,yytableid);
}
}
}else{
Elements els= subtr.select("[name="+filed_qz+field.getFieldname()+"]");
if (EmptyUtils.isEmpty(els) && field.getIsprimary()==1) {
subtr.append("<input type=\"hidden\" name=\""+filed_qz+field.getFieldname()+"\" value=\""+hashtable.get(field.getFieldname())+"\" />");
}
for (Element el : els) {
String value=String.valueOf(hashtable.get(field.getFieldname()));
if("view".equals(type)){
setValue(daoCtl,dao,el,value,field,tablename,yytableid);
}else{
setTagValue(daoCtl,dao,el,value,field,tablename,yytableid);
}
}
}
}
//插入子表数据
if (table.getIsmain()!=1) {
Element el = doc.getElementById("table_" +table.getTablekey());
if (EmptyUtils.isNotEmpty(el)) {
doc.getElementById("table_"+table.getTablekey()).child(0).append(subtr.toString());
}else{
doc.select("[tablekey="+table.getTablekey() + "]").first().child(0).append(subtr.toString());
}
}
}
return doc.body().outerHtml().replaceAll("<body>", "").replaceAll("</body>", "");
}
/**
* 功能描述:删除表单应用数据
*
* @author (☆笑死宝宝了☆) 2016年2月29日 下午1:22:51
*
* @param session
* @param req
* @param ids
* @param defid
* @return
*/
public static boolean delete(final ObjectCtl daoCtl,final Dao dao,final HttpServletRequest req,final Sys_user user,final String ids,final String defid) {
final ThreadLocal<Boolean> re = new ThreadLocal<Boolean>();
try {
Trans.exec(new Atom() {
public void run() {
String idarry =StringUtils.getStrsplit(ids.split(","));
Sql sql=Sqls.create("select * from form_table where formdefid=@formdefid and ismain=1 ");
sql.params().set("formdefid", defid);
List<Form_table> tableList=daoCtl.list(dao, Form_table.class,sql);
for (Form_table table : tableList) {
String tablename=FormInitUtil.TABLE_PRE_NAME+table.getTablekey();
Sql mainkeysql=Sqls.create("select fieldname from form_field where status=0 and tableid=@tableid and ISPRIMARY=1");
mainkeysql.params().set("tableid", table.getTableid());
String keyfiled=daoCtl.getStrRowValue(dao, mainkeysql);
String sqlstr="";
String temsql="select count(1) from form_field where status=0 and fieldname='status' and tableid="+table.getTableid();
int i=daoCtl.getIntRowValue(dao, Sqls.create(temsql));
if(i==0){
sqlstr="delete from $tablename where $id in "+idarry;
}else{
sqlstr="update $tablename set status=-1 where $id in "+idarry;
}
Sql delsql=Sqls.create(sqlstr);
delsql.vars().set("tablename", tablename);
delsql.vars().set("id", keyfiled);
dao.execute(delsql);
}
String formname=daoCtl.getStrRowValue(dao, Sqls.create("select formtitle from form_def where defid='"+defid+"'"));
// SysLogUtil.addLog(dao, user.getLoginname(), SysLogUtil.gtyx_log_type, true, 3,
// "删除表单【"+ formname +"】,ID:"+ids, formname, "",
// req.getParameter("log.xgyy"), req.getParameter("log.xgyj"),url.replace("@defid", defid+"").replace("@mainid", ids));
re.set(true);
}
});
} catch (Exception e) {
re.set(false);
e.printStackTrace();
}
return re.get();
}
public static String topreview(ObjectCtl daoCtl,Dao dao,String defid,String mainid) {
String restr="";
try {
System.out.println(defid);
Document doc=Jsoup.parse(FormInitUtil.formHtmlMap.get(defid+"_view"));
Element script=doc.select("script").first();
String scriptDoc="";
if(EmptyUtils.isNotEmpty(script)){
script.remove();
scriptDoc=script.outerHtml();
}
String[] mainids=mainid.replaceAll(",", ",").split(",");
for (String id : mainids) {
restr+=getViewById(daoCtl, dao,doc.toString(),defid, id);
}
if(EmptyUtils.isNotEmpty(scriptDoc)){
restr=restr+scriptDoc;
}
} catch (Exception e) {
e.printStackTrace();
}
return restr;
}
public static String getViewById(ObjectCtl daoCtl,Dao dao,String docString,String defid,String mainid) {
String restr="";
try {
Document doc=Jsoup.parse(docString);
/**
* 查询主表主键字段名称
*/
String zhujian_field="";
List<Form_table> tableList=daoCtl.list(dao, Form_table.class, Sqls.create("select * from form_table where formdefid="+defid+" order by ismain desc"));
if (tableList.size()>0) {
for (Form_table table :tableList) {
//获取表名
String tablename=FormInitUtil.TABLE_PRE_NAME+table.getTablekey();
String filed_qz="";
//获取表中的所有字段
Sql fieldnamesql=Sqls.create("select fieldname from form_field where status=0 and tableid=@tableid");
fieldnamesql.params().set("tableid", table.getTableid());
//获取编辑数据
Sql fieldvaluesql=Sqls.create("select * from $table where $id=@id");
fieldvaluesql.vars().set("table", tablename);
if (table.getIsmain()==1) {
//查询主表主键
Sql mainkeysql=Sqls.create("select fieldname from form_field where status=0 and tableid=@tableid and ISPRIMARY=1");
mainkeysql.params().set("tableid", table.getTableid());
String keyfiled=daoCtl.getStrRowValue(dao, mainkeysql);
zhujian_field=keyfiled;
fieldvaluesql.vars().set("id", keyfiled);
}else{
filed_qz=table.getTablekey()+".";
//查询子表外键字段
Sql mainkeysql=Sqls.create("select fieldname from form_field where status=0 and tableid=@tableid and foreignkey=@foreignkey");
mainkeysql.params().set("tableid", table.getTableid());
mainkeysql.params().set("foreignkey", zhujian_field);
String keyfiled=daoCtl.getStrRowValue(dao, mainkeysql);
fieldvaluesql.vars().set("id", keyfiled);
}
fieldvaluesql.params().set("id", mainid);
List<Map> sd=daoCtl.list(dao, fieldvaluesql);
Sql fieldSql=Sqls.create("select * from form_field where status=0 and tableid=@tableid ");
fieldSql.params().set("tableid", table.getTableid());
primaryKey=zhujian_field;
List<Form_field> fieldList=daoCtl.list(dao, Form_field.class, fieldSql);
restr=getHtml(daoCtl,dao,table, doc, sd, fieldList,filed_qz,"view");
}
}
} catch (Exception e) {
e.printStackTrace();
}
return restr;
}
public static String getOrderIdSql(String defid,String mainid){
return "select orderid from "+FormInitUtil.formTabKeyMap.get(defid)+" where "+FormInitUtil.formPrimKeyMap.get(defid)+"='"+mainid+"'";
}
public static List<Map> getValueForList(ObjectCtl daoCtl,Dao dao,List<Map> list,String tableid){
String sqlstr="select fieldname,controltype,options,loadselect,isprimary from form_field where status=0 and ( controltype in (3,4,5,7,8,19,21,22) or isprimary=1) and tableid="+tableid;
List<Map> controlList=daoCtl.list(dao, Sqls.create(sqlstr));
String isprimary="";
for (Map map : controlList) {
String primarykey=StringUtils.null2String(map.get("isprimary"));
int controltype=StringUtils.StringToInt(StringUtils.null2String(map.get("controltype")));
String fieldname=StringUtils.null2String(map.get("fieldname"));
if ("1".equals(primarykey)) {
isprimary=fieldname;
continue;
}
for (Map pageMap : list) {
String value=StringUtils.null2String(pageMap.get(fieldname));
if(controltype==3){//多选框
String options=StringUtils.null2String(map.get("options"));
Map<String,String> optionsMap=YYFormUtil.getOptionsMap(options, "#newline#", "/");
String[] values=value.split(",");
value="";
for (String val : values) {
value+=optionsMap.get(val)+";";
}
value=value.substring(0,value.lastIndexOf(";"));
}else if(controltype==5||controltype==4){//下拉框或单选框
String loadselect=StringUtils.null2String(map.get("loadselect"));
String options=StringUtils.null2String(map.get("options"));
if(EmptyUtils.isNotEmpty(loadselect)){
String sql="select value,name from Cs_value where typeid = '"+loadselect+"'";
if(controltype==5){//下拉框
if (loadselect.indexOf("☆")!=-1) {//查询自定义表单中数据
String[] loadSelectArry=loadselect.split("☆");
Sql sql1=Sqls.create("select $fieldvalue from $tablename where $fieldkey=@keyvalue");
sql1.vars().set("fieldvalue", loadSelectArry[2]).set("tablename", "L_"+loadSelectArry[0]).set("fieldkey", loadSelectArry[1]);
sql1.params().set("keyvalue", value);
value=daoCtl.getStrRowValue(dao, sql1);
}else{
sql="select code,name from Cs_value where typeid = '"+loadselect+"'";
Map<String,String> loadselectMap=daoCtl.getHTable(dao, Sqls.create(sql));
sql="select code from Cs_value where value='"+value+"' and typeid = '"+loadselect+"'";
String code=daoCtl.getStrRowValue(dao, Sqls.create(sql));
int lg=code.length()/4;
value="";
for (int j = 1; j <= lg; j++) {
value+=loadselectMap.get(code.substring(0,j*4))+"/";
}
int lg2=value.length()>0?value.length()-1:0;
value=value.substring(0,lg2);
}
}else{
sql="select name from Cs_value where value='"+value+"' and typeid = '"+loadselect+"'";
value=daoCtl.getStrRowValue(dao, Sqls.create(sql));
}
}else{
Map<String,String> optionsMap=YYFormUtil.getOptionsMap(options, "#newline#", "/");
value=optionsMap.get(value);
}
}else if(controltype==7||controltype==8){//信用主体
pageMap.put("xyztid",value);
String[] values=value.split(",");
value="";
for (String val : values) {
value+=StringUtils.null2String(FormInitUtil.userMap.get(val)).split("☆")[0]+";";
}
value=value.substring(0,value.lastIndexOf(";"));
}else if(controltype==19||controltype==22){//用户所在机构
value=FormInitUtil.unitMap.get(StringUtils.null2String(value));
}else if(controltype==21){//当前用户登录名
value=FormInitUtil.userMap.get(StringUtils.null2String(value));
}
if(EmptyUtils.isEmpty(value)){
value=StringUtils.null2String(pageMap.get(fieldname));
}
pageMap.put(fieldname,value);
}
}
// 去查询 列表 字段用户设置的显示值
IsListShowUtil.showIsListValue(daoCtl, dao, list, tableid,isprimary);
return list;
}
}
十一月 09, 2018 8:03:04 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:hfits' did not find a matching property.
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server version: Apache Tomcat/7.0.86
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server built: Apr 9 2018 20:16:54 UTC
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server number: 7.0.86.0
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Name: Windows 7
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Version: 6.1
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Architecture: amd64
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Java Home: C:\Program Files\Java\jre1.8.0_171
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Version: 1.8.0_171-b11
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Vendor: Oracle Corporation
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_BASE: D:\Users\Administrator.XTM-01702051609\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_HOME: D:\下载\apache-tomcat-7.0.86
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.base=D:\Users\Administrator.XTM-01702051609\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.home=D:\下载\apache-tomcat-7.0.86
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dwtp.deploy=D:\Users\Administrator.XTM-01702051609\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.endorsed.dirs=D:\下载\apache-tomcat-7.0.86\endorsed
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dfile.encoding=GBK
十一月 09, 2018 8:03:04 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.8.0_171\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre1.8.0_171/bin/server;C:/Program Files/Java/jre1.8.0_171/bin;C:/Program Files/Java/jre1.8.0_171/lib/amd64;d:\app\Administrator\product\11.2.0\dbhome_1\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;D:\下载\Toad for Oracle 12.1;C:\Program Files\Java\jdk1.7.0_80\bin;C:\Program Files\Java\jdk1.7.0_80\jre\bin;D:\下载\eclipse;;.
十一月 09, 2018 8:03:04 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-bio-8080"]
十一月 09, 2018 8:03:04 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-bio-8009"]
十一月 09, 2018 8:03:04 下午 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 1075 ms
十一月 09, 2018 8:03:04 下午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
十一月 09, 2018 8:03:04 下午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.86
十一月 09, 2018 8:03:07 下午 org.apache.catalina.startup.TldConfig execute
信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
十一月 09, 2018 8:03:08 下午 org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
警告: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [1,257] milliseconds.
十一月 09, 2018 8:03:14 下午 org.apache.catalina.startup.TaglibUriRule body
信息: TLD skipped. URI: http://velocity.apache.org/velocity-view is already defined
十一月 09, 2018 8:03:14 下午 org.apache.catalina.startup.TaglibUriRule body
信息: TLD skipped. URI: http://velocity.apache.org/velocity-view is already defined
十一月 09, 2018 8:03:14 下午 org.apache.catalina.startup.TldConfig execute
信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
2018-11-09 20:03:15,143 [INFO][org.nutz.mvc.NutFilter] - NutFilter[nutz] starting ...
2018-11-09 20:03:15,763 [INFO][org.nutz.mvc.impl.NutLoading] - Nutz Version : 1.r.65
2018-11-09 20:03:15,763 [INFO][org.nutz.mvc.impl.NutLoading] - Nutz.Mvc[nutz] is initializing ...
2018-11-09 20:03:15,835 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > scan 'com.hfits'
2018-11-09 20:03:16,438 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'baseAction ' - com.hfits.common.action.BaseAction
2018-11-09 20:03:16,440 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'logInterceptor ' - com.hfits.common.aop.LogInterceptor
2018-11-09 20:03:16,444 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'baseService ' - com.hfits.common.service.BaseService
2018-11-09 20:03:16,452 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'comUtil ' - com.hfits.modules.com.comUtil
2018-11-09 20:03:16,460 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'demoAction ' - com.hfits.modules.compt.chart.DemoAction
2018-11-09 20:03:16,470 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'editorAction ' - com.hfits.modules.compt.editor.EditorAction
2018-11-09 20:03:16,478 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'editorService ' - com.hfits.modules.compt.editor.service.EditorService
2018-11-09 20:03:16,479 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'startSet ' - com.hfits.modules.compt.editor.StartSet
2018-11-09 20:03:16,481 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'formAction ' - com.hfits.modules.compt.form.FormAction
2018-11-09 20:03:16,485 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'formInitUtil ' - com.hfits.modules.compt.form.util.FormInitUtil
2018-11-09 20:03:16,486 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'yYFormAction ' - com.hfits.modules.compt.form.YYFormAction
2018-11-09 20:03:16,490 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'weiXinJob ' - com.hfits.modules.compt.qyhgl.job.WeiXinJob
2018-11-09 20:03:16,490 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'sys_qyhglService ' - com.hfits.modules.compt.qyhgl.service.Sys_qyhglService
2018-11-09 20:03:16,495 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'sys_qyhglAction ' - com.hfits.modules.compt.qyhgl.Sys_qyhglAction
2018-11-09 20:03:16,497 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'database_backupAction ' - com.hfits.modules.compt.sjkbf.Database_backupAction
2018-11-09 20:03:16,498 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'oracleDatabaseBackupJob ' - com.hfits.modules.compt.sjkbf.job.OracleDatabaseBackupJob
2018-11-09 20:03:16,499 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'displayBlob ' - com.hfits.modules.global.DisplayBlob
2018-11-09 20:03:16,501 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'downloadFile ' - com.hfits.modules.global.DownloadFile
2018-11-09 20:03:16,504 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'qRCode ' - com.hfits.modules.global.QRCode
2018-11-09 20:03:16,505 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'systemHelp ' - com.hfits.modules.global.SystemHelp
2018-11-09 20:03:16,506 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'uploader ' - com.hfits.modules.global.Uploader
2018-11-09 20:03:16,511 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'verificationCode ' - com.hfits.modules.global.VerificationCode
2018-11-09 20:03:16,515 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'dmjService ' - com.hfits.modules.sjygl.service.DmjService
2018-11-09 20:03:16,516 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 't_daimjbAction ' - com.hfits.modules.sjygl.T_daimjbAction
2018-11-09 20:03:16,519 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 't_dmjflAction ' - com.hfits.modules.sjygl.T_dmjflAction
2018-11-09 20:03:16,524 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'baseAjaxAction ' - com.hfits.modules.sys.ajax.BaseAjaxAction
2018-11-09 20:03:16,533 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'buttonAction ' - com.hfits.modules.sys.config.ButtonAction
2018-11-09 20:03:16,535 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'csglAction ' - com.hfits.modules.sys.config.CsglAction
2018-11-09 20:03:16,537 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'ftpConfigAction ' - com.hfits.modules.sys.config.FtpConfigAction
2018-11-09 20:03:16,538 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'sys_upload_configAction ' - com.hfits.modules.sys.config.Sys_upload_configAction
2018-11-09 20:03:16,539 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'indexAction ' - com.hfits.modules.sys.IndexAction
2018-11-09 20:03:16,542 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'loginAction ' - com.hfits.modules.sys.LoginAction
2018-11-09 20:03:16,544 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'regAction ' - com.hfits.modules.sys.RegAction
2018-11-09 20:03:16,552 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'resourceAction ' - com.hfits.modules.sys.ResourceAction
2018-11-09 20:03:16,554 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'roleAction ' - com.hfits.modules.sys.RoleAction
2018-11-09 20:03:16,559 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'safeAction ' - com.hfits.modules.sys.SafeAction
2018-11-09 20:03:16,560 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'resourceService ' - com.hfits.modules.sys.service.ResourceService
2018-11-09 20:03:16,562 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'roleService ' - com.hfits.modules.sys.service.RoleService
2018-11-09 20:03:16,563 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'sysBaseService ' - com.hfits.modules.sys.service.SysBaseService
2018-11-09 20:03:16,564 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'unitService ' - com.hfits.modules.sys.service.UnitService
2018-11-09 20:03:16,574 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'userService ' - com.hfits.modules.sys.service.UserService
2018-11-09 20:03:16,577 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'sys_zlglAction ' - com.hfits.modules.sys.Sys_zlglAction
2018-11-09 20:03:16,580 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'testJob ' - com.hfits.modules.sys.task.job.TestJob
2018-11-09 20:03:16,580 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'quartzExecute ' - com.hfits.modules.sys.task.quartz.QuartzExecute
2018-11-09 20:03:16,583 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'sysLoadTask ' - com.hfits.modules.sys.task.quartz.SysLoadTask
2018-11-09 20:03:16,586 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'sys_JobTaskAction ' - com.hfits.modules.sys.task.Sys_JobTaskAction
2018-11-09 20:03:16,587 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'testAction ' - com.hfits.modules.sys.TestAction
2018-11-09 20:03:16,589 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'unitAction ' - com.hfits.modules.sys.UnitAction
2018-11-09 20:03:16,592 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'userAction ' - com.hfits.modules.sys.UserAction
2018-11-09 20:03:16,597 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'userLogAction ' - com.hfits.modules.sys.UserLogAction
2018-11-09 20:03:16,598 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'mergeUtilts ' - com.hfits.modules.sys.utils.MergeUtilts
2018-11-09 20:03:16,598 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'sys_wxmsgService ' - com.hfits.modules.sys.utils.wx.Sys_wxmsgService
2018-11-09 20:03:16,600 [INFO][org.nutz.ioc.loader.annotation.AnnotationIocLoader] - > add 'wxMessage ' - com.hfits.modules.sys.utils.wx.WxMessage
2018-11-09 20:03:16,610 [INFO][org.nutz.ioc.impl.NutIoc] - ... NutIoc init complete
2018-11-09 20:03:16,625 [INFO][org.nutz.mvc.impl.NutLoading] - Build URL mapping by com.hfits.core.UrlMappingSet ...
License file instal successfully!
License file verify successfully!
2018-11-09 20:03:20,562 [INFO][org.nutz.dao.jdbc.Jdbcs] - Get Connection from DataSource for JdbcExpert, if you lock at here, check your database server and configure
2018-11-09 20:03:21,246 [INFO][com.alibaba.druid.pool.DruidDataSource] - {dataSource-1} inited
2018-11-09 20:03:22,198 [INFO][org.nutz.filepool.NutFilePool] - Init file-pool by: /temp/ [2000]
2018-11-09 20:03:22,201 [INFO][org.nutz.filepool.NutFilePool] - file-pool.cursor: 0
2018-11-09 20:03:22,362 [INFO][org.nutz.mvc.impl.NutLoading] - Found 280 module methods
2018-11-09 20:03:22,366 [INFO][org.nutz.mvc.impl.NutLoading] - Setup application...
2018-11-09 20:03:22,430 [INFO][org.quartz.impl.StdSchedulerFactory] - Using default implementation for ThreadExecutor
2018-11-09 20:03:22,437 [INFO][org.quartz.simpl.SimpleThreadPool] - Job execution threads will use class loader of thread: localhost-startStop-1
2018-11-09 20:03:22,471 [INFO][org.quartz.core.SchedulerSignalerImpl] - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
2018-11-09 20:03:22,473 [INFO][org.quartz.core.QuartzScheduler] - Quartz Scheduler v.2.2.1 created.
2018-11-09 20:03:22,475 [INFO][org.quartz.simpl.RAMJobStore] - RAMJobStore initialized.
2018-11-09 20:03:22,477 [INFO][org.quartz.core.QuartzScheduler] - Scheduler meta-data: Quartz Scheduler (v2.2.1) 'DefaultQuartzScheduler' with instanceId 'NON_CLUSTERED'
Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
NOT STARTED.
Currently in standby mode.
Number of jobs executed: 0
Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.
Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.
2018-11-09 20:03:22,477 [INFO][org.quartz.impl.StdSchedulerFactory] - Quartz scheduler 'DefaultQuartzScheduler' initialized from default resource file in Quartz package: 'quartz.properties'
2018-11-09 20:03:22,477 [INFO][org.quartz.impl.StdSchedulerFactory] - Quartz scheduler version: 2.2.1
2018-11-09 20:03:22,753 [INFO][com.hfits.modules.sys.task.quartz.SysLoadTask] - sys.tasks.size:0
2018-11-09 20:03:27,637 [INFO][com.hfits.core.StartSetup] - 最大内存: 784m 已分配内存: 351m 已分配内存中的剩余空间: 142m 最大可用内存: 575m
2018-11-09 20:03:27,637 [INFO][org.nutz.mvc.impl.NutLoading] - Nutz.Mvc[nutz] is up in 11874ms
2018-11-09 20:03:27,705 [INFO][velocity_log] - WebappResourceLoader: added template path - '/'
十一月 09, 2018 8:03:28 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8080"]
十一月 09, 2018 8:03:28 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-bio-8009"]
十一月 09, 2018 8:03:28 下午 org.apache.catalina.startup.Catalina start
信息: Server startup in 23249 ms
添加回复
请先登陆