钉钉更新
This commit is contained in:
parent
eafb53c54d
commit
bc7f1c3b01
@ -1,21 +0,0 @@
|
||||
2025-05-07 19:17:30 [main] INFO c.r.m.admin.MonitorAdminApplication - Starting MonitorAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 4248 (F:\evo_k3cloud\ruoyi-extend\ruoyi-monitor-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-05-07 19:17:30 [main] INFO c.r.m.admin.MonitorAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-05-07 19:17:31 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9090 (http)
|
||||
2025-05-07 19:17:31 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9090"]
|
||||
2025-05-07 19:17:31 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-05-07 19:17:31 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-05-07 19:17:31 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2025-05-07 19:17:31 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1442 ms
|
||||
2025-05-07 19:17:32 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@1d4f5506, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@7dee835, org.springframework.security.web.context.SecurityContextPersistenceFilter@75d366c2, org.springframework.security.web.header.HeaderWriterFilter@c8f97a7, org.springframework.security.web.authentication.logout.LogoutFilter@19e21f89, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@364fd4ae, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@3fcbc766, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@5232e3f1, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@6c8fe7a4, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@1b57c345, org.springframework.security.web.session.SessionManagementFilter@3249e278, org.springframework.security.web.access.ExceptionTranslationFilter@62a54948, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@661d6bb6]
|
||||
2025-05-07 19:17:32 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false)
|
||||
2025-05-07 19:17:33 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-05-07 19:17:33 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9090"]
|
||||
2025-05-07 19:17:33 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9090 (http) with context path ''
|
||||
2025-05-07 19:17:33 [main] INFO c.r.m.admin.MonitorAdminApplication - Started MonitorAdminApplication in 3.271 seconds (JVM running for 5.676)
|
||||
2025-05-07 19:17:33 [http-nio-9090-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-05-07 19:17:33 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-05-07 19:17:33 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-05-07 19:17:33 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as dacc90ea7863
|
||||
2025-05-07 19:17:34 [reactor-http-nio-2] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-monitor-admin],[dacc90ea7863],[UP]
|
||||
2025-05-07 19:17:34 [reactor-http-nio-3] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-xxl-job-admin],[cc38f3b5f0d4],[UP]
|
||||
2025-05-07 19:18:44 [reactor-http-nio-4] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
@ -1,24 +0,0 @@
|
||||
2025-05-13 11:47:34 [main] INFO c.r.m.admin.MonitorAdminApplication - Starting MonitorAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 10800 (F:\evo_k3cloud\ruoyi-extend\ruoyi-monitor-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-05-13 11:47:34 [main] INFO c.r.m.admin.MonitorAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-05-13 11:47:35 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9090 (http)
|
||||
2025-05-13 11:47:35 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9090"]
|
||||
2025-05-13 11:47:35 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-05-13 11:47:35 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-05-13 11:47:35 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2025-05-13 11:47:35 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1065 ms
|
||||
2025-05-13 11:47:36 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@3f9b7fe1, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@2f79f192, org.springframework.security.web.context.SecurityContextPersistenceFilter@5d7911d5, org.springframework.security.web.header.HeaderWriterFilter@6c8fe7a4, org.springframework.security.web.authentication.logout.LogoutFilter@59c500f7, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@787e4357, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@6e02721d, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@5a08b084, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@235c997d, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@5fdfe8cf, org.springframework.security.web.session.SessionManagementFilter@2ad99cf3, org.springframework.security.web.access.ExceptionTranslationFilter@456f7d9e, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@459003a0]
|
||||
2025-05-13 11:47:36 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false)
|
||||
2025-05-13 11:47:37 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-05-13 11:47:37 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9090"]
|
||||
2025-05-13 11:47:37 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9090 (http) with context path ''
|
||||
2025-05-13 11:47:37 [main] INFO c.r.m.admin.MonitorAdminApplication - Started MonitorAdminApplication in 3.233 seconds (JVM running for 5.826)
|
||||
2025-05-13 11:47:37 [http-nio-9090-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-05-13 11:47:37 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-05-13 11:47:37 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-05-13 11:47:38 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as dacc90ea7863
|
||||
2025-05-13 11:47:38 [reactor-http-nio-3] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-monitor-admin],[dacc90ea7863],[UP]
|
||||
2025-05-13 11:47:38 [reactor-http-nio-2] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-xxl-job-admin],[cc38f3b5f0d4],[UP]
|
||||
2025-05-13 11:48:10 [reactor-http-nio-4] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[16be53c14e2b],[UP]
|
||||
2025-05-13 11:48:50 [reactor-http-nio-5] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[16be53c14e2b],[DOWN]
|
||||
2025-05-13 11:48:50 [reactor-http-nio-5] INFO d.c.b.a.server.services.InfoUpdater - Couldn't retrieve info for Instance(id=16be53c14e2b, version=3, registration=Registration(name=RuoYi-Vue-Plus, managementUrl=http://192.168.5.200:8033/dev-api/actuator, healthUrl=http://192.168.5.200:8033/dev-api/actuator/health, serviceUrl=http://192.168.5.200:8033/dev-api, source=http-api), registered=true, statusInfo=StatusInfo(status=DOWN, details={path=/dev-api/actuator/health, error=Not Found, status=404, timestamp=2025-05-13 11:48:49}), statusTimestamp=2025-05-13T03:48:50.216Z, info=Info(values={}), endpoints=Endpoints(endpoints={caches=Endpoint(id=caches, url=http://192.168.5.200:8033/dev-api/actuator/caches), loggers=Endpoint(id=loggers, url=http://192.168.5.200:8033/dev-api/actuator/loggers), logfile=Endpoint(id=logfile, url=http://192.168.5.200:8033/dev-api/actuator/logfile), health=Endpoint(id=health, url=http://192.168.5.200:8033/dev-api/actuator/health), env=Endpoint(id=env, url=http://192.168.5.200:8033/dev-api/actuator/env), heapdump=Endpoint(id=heapdump, url=http://192.168.5.200:8033/dev-api/actuator/heapdump), mappings=Endpoint(id=mappings, url=http://192.168.5.200:8033/dev-api/actuator/mappings), scheduledtasks=Endpoint(id=scheduledtasks, url=http://192.168.5.200:8033/dev-api/actuator/scheduledtasks), startup=Endpoint(id=startup, url=http://192.168.5.200:8033/dev-api/actuator/startup), configprops=Endpoint(id=configprops, url=http://192.168.5.200:8033/dev-api/actuator/configprops), beans=Endpoint(id=beans, url=http://192.168.5.200:8033/dev-api/actuator/beans), threaddump=Endpoint(id=threaddump, url=http://192.168.5.200:8033/dev-api/actuator/threaddump), metrics=Endpoint(id=metrics, url=http://192.168.5.200:8033/dev-api/actuator/metrics), conditions=Endpoint(id=conditions, url=http://192.168.5.200:8033/dev-api/actuator/conditions), info=Endpoint(id=info, url=http://192.168.5.200:8033/dev-api/actuator/info)}), buildVersion=null, tags=Tags(values={})): 404 NOT_FOUND
|
||||
2025-05-13 11:48:51 [reactor-http-nio-5] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,103 +0,0 @@
|
||||
2025-05-21 08:12:02 [main] INFO c.r.m.admin.MonitorAdminApplication - Starting MonitorAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 9752 (F:\evo_k3cloud\ruoyi-extend\ruoyi-monitor-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-05-21 08:12:02 [main] INFO c.r.m.admin.MonitorAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-05-21 08:12:03 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9090 (http)
|
||||
2025-05-21 08:12:03 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9090"]
|
||||
2025-05-21 08:12:03 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-05-21 08:12:03 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-05-21 08:12:03 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2025-05-21 08:12:03 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1046 ms
|
||||
2025-05-21 08:12:04 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@2a8b33ba, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@4e8b357d, org.springframework.security.web.context.SecurityContextPersistenceFilter@235c997d, org.springframework.security.web.header.HeaderWriterFilter@6f31df32, org.springframework.security.web.authentication.logout.LogoutFilter@17d2b075, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@28cd2c2, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@5c059a68, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@4a9a878, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@1b3ab4f9, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@2e1eb85f, org.springframework.security.web.session.SessionManagementFilter@5d7911d5, org.springframework.security.web.access.ExceptionTranslationFilter@5232e3f1, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@2233cac0]
|
||||
2025-05-21 08:12:04 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false)
|
||||
2025-05-21 08:12:05 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-05-21 08:12:05 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9090"]
|
||||
2025-05-21 08:12:05 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9090 (http) with context path ''
|
||||
2025-05-21 08:12:05 [main] INFO c.r.m.admin.MonitorAdminApplication - Started MonitorAdminApplication in 3.058 seconds (JVM running for 3.724)
|
||||
2025-05-21 08:12:05 [http-nio-9090-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-05-21 08:12:05 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-05-21 08:12:05 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-05-21 08:12:06 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as dacc90ea7863
|
||||
2025-05-21 08:12:06 [reactor-http-nio-2] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-monitor-admin],[dacc90ea7863],[UP]
|
||||
2025-05-21 08:12:13 [reactor-http-nio-3] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-xxl-job-admin],[cc38f3b5f0d4],[UP]
|
||||
2025-05-21 08:12:30 [reactor-http-nio-4] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[16be53c14e2b],[UP]
|
||||
2025-05-21 08:13:47 [reactor-http-nio-5] INFO d.c.b.a.s.services.StatusUpdater - Couldn't retrieve status for Instance(id=16be53c14e2b, version=2, registration=Registration(name=RuoYi-Vue-Plus, managementUrl=http://192.168.5.200:8033/dev-api/actuator, healthUrl=http://192.168.5.200:8033/dev-api/actuator/health, serviceUrl=http://192.168.5.200:8033/dev-api, source=http-api), registered=true, statusInfo=StatusInfo(status=UP, details={db={status=UP, details={database=MySQL, validationQuery=isValid()}}, diskSpace={status=UP, details={total=974330859520, free=856399003648, threshold=10485760, exists=true}}, ping={status=UP}, redis={status=UP, details={version=3.0.503}}}), statusTimestamp=2025-05-21T00:12:30.381Z, info=Info(values={}), endpoints=Endpoints(endpoints={caches=Endpoint(id=caches, url=http://192.168.5.200:8033/dev-api/actuator/caches), loggers=Endpoint(id=loggers, url=http://192.168.5.200:8033/dev-api/actuator/loggers), logfile=Endpoint(id=logfile, url=http://192.168.5.200:8033/dev-api/actuator/logfile), health=Endpoint(id=health, url=http://192.168.5.200:8033/dev-api/actuator/health), env=Endpoint(id=env, url=http://192.168.5.200:8033/dev-api/actuator/env), heapdump=Endpoint(id=heapdump, url=http://192.168.5.200:8033/dev-api/actuator/heapdump), scheduledtasks=Endpoint(id=scheduledtasks, url=http://192.168.5.200:8033/dev-api/actuator/scheduledtasks), mappings=Endpoint(id=mappings, url=http://192.168.5.200:8033/dev-api/actuator/mappings), startup=Endpoint(id=startup, url=http://192.168.5.200:8033/dev-api/actuator/startup), beans=Endpoint(id=beans, url=http://192.168.5.200:8033/dev-api/actuator/beans), configprops=Endpoint(id=configprops, url=http://192.168.5.200:8033/dev-api/actuator/configprops), threaddump=Endpoint(id=threaddump, url=http://192.168.5.200:8033/dev-api/actuator/threaddump), metrics=Endpoint(id=metrics, url=http://192.168.5.200:8033/dev-api/actuator/metrics), conditions=Endpoint(id=conditions, url=http://192.168.5.200:8033/dev-api/actuator/conditions), info=Endpoint(id=info, url=http://192.168.5.200:8033/dev-api/actuator/info)}), buildVersion=null, tags=Tags(values={}))
|
||||
org.springframework.web.reactive.function.client.WebClientRequestException: Connection refused: no further information: /192.168.5.200:8033; nested exception is io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
|
||||
Error has been observed at the following site(s):
|
||||
*__checkpoint ⇢ Request to GET health [DefaultWebClient]
|
||||
Original Stack Trace:
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
at reactor.core.publisher.MonoErrorSupplied.subscribe(MonoErrorSupplied.java:55)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93)
|
||||
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:204)
|
||||
at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.whenError(FluxRetryWhen.java:225)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onError(FluxRetryWhen.java:274)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:415)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onNext(FluxConcatMap.java:251)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
|
||||
at reactor.core.publisher.EmitterProcessor.drain(EmitterProcessor.java:537)
|
||||
at reactor.core.publisher.EmitterProcessor.tryEmitNext(EmitterProcessor.java:343)
|
||||
at reactor.core.publisher.SinkManySerialized.tryEmitNext(SinkManySerialized.java:100)
|
||||
at reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:27)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:190)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect$ClientTransportSubscriber.onError(HttpClientConnect.java:311)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onError(DefaultPooledConnectionProvider.java:160)
|
||||
at reactor.netty.internal.shaded.reactor.pool.AbstractPool$Borrower.fail(AbstractPool.java:475)
|
||||
at reactor.netty.internal.shaded.reactor.pool.SimpleDequePool.lambda$drainLoop$9(SimpleDequePool.java:431)
|
||||
at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onError(FluxDoOnEach.java:186)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnectionAllocator$PooledConnectionInitializer.onError(DefaultPooledConnectionProvider.java:558)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:192)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:259)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106)
|
||||
at reactor.core.publisher.Operators.error(Operators.java:198)
|
||||
at reactor.core.publisher.MonoError.subscribe(MonoError.java:53)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.tryFailure(TransportConnector.java:580)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.setFailure(TransportConnector.java:534)
|
||||
at reactor.netty.transport.TransportConnector.lambda$doConnect$7(TransportConnector.java:265)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
|
||||
at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
|
||||
at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)
|
||||
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:321)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:337)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
Caused by: java.net.ConnectException: Connection refused: no further information
|
||||
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
|
||||
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:715)
|
||||
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-05-21 08:13:47 [reactor-http-nio-5] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[16be53c14e2b],[OFFLINE]
|
||||
2025-05-21 08:14:03 [reactor-http-nio-6] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
2025-05-21 08:14:05 [reactor-http-nio-6] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[16be53c14e2b],[DOWN]
|
||||
2025-05-21 08:14:05 [reactor-http-nio-6] INFO d.c.b.a.server.services.InfoUpdater - Couldn't retrieve info for Instance(id=16be53c14e2b, version=4, registration=Registration(name=RuoYi-Vue-Plus, managementUrl=http://192.168.5.200:8033/dev-api/actuator, healthUrl=http://192.168.5.200:8033/dev-api/actuator/health, serviceUrl=http://192.168.5.200:8033/dev-api, source=http-api), registered=true, statusInfo=StatusInfo(status=DOWN, details={path=/dev-api/actuator/health, error=Not Found, status=404, timestamp=2025-05-21 08:14:05}), statusTimestamp=2025-05-21T00:14:05.472Z, info=Info(values={}), endpoints=Endpoints(endpoints={caches=Endpoint(id=caches, url=http://192.168.5.200:8033/dev-api/actuator/caches), loggers=Endpoint(id=loggers, url=http://192.168.5.200:8033/dev-api/actuator/loggers), logfile=Endpoint(id=logfile, url=http://192.168.5.200:8033/dev-api/actuator/logfile), health=Endpoint(id=health, url=http://192.168.5.200:8033/dev-api/actuator/health), env=Endpoint(id=env, url=http://192.168.5.200:8033/dev-api/actuator/env), heapdump=Endpoint(id=heapdump, url=http://192.168.5.200:8033/dev-api/actuator/heapdump), scheduledtasks=Endpoint(id=scheduledtasks, url=http://192.168.5.200:8033/dev-api/actuator/scheduledtasks), mappings=Endpoint(id=mappings, url=http://192.168.5.200:8033/dev-api/actuator/mappings), startup=Endpoint(id=startup, url=http://192.168.5.200:8033/dev-api/actuator/startup), beans=Endpoint(id=beans, url=http://192.168.5.200:8033/dev-api/actuator/beans), configprops=Endpoint(id=configprops, url=http://192.168.5.200:8033/dev-api/actuator/configprops), threaddump=Endpoint(id=threaddump, url=http://192.168.5.200:8033/dev-api/actuator/threaddump), metrics=Endpoint(id=metrics, url=http://192.168.5.200:8033/dev-api/actuator/metrics), conditions=Endpoint(id=conditions, url=http://192.168.5.200:8033/dev-api/actuator/conditions), info=Endpoint(id=info, url=http://192.168.5.200:8033/dev-api/actuator/info)}), buildVersion=null, tags=Tags(values={})): 404 NOT_FOUND
|
||||
@ -1,40 +0,0 @@
|
||||
2025-05-22 08:30:52 [main] INFO c.r.m.admin.MonitorAdminApplication - Starting MonitorAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 19428 (F:\evo_k3cloud\ruoyi-extend\ruoyi-monitor-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-05-22 08:30:52 [main] INFO c.r.m.admin.MonitorAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-05-22 08:30:53 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9090 (http)
|
||||
2025-05-22 08:30:53 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9090"]
|
||||
2025-05-22 08:30:53 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-05-22 08:30:53 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-05-22 08:30:53 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2025-05-22 08:30:53 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1141 ms
|
||||
2025-05-22 08:30:53 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@2e71240b, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@23cd5d42, org.springframework.security.web.context.SecurityContextPersistenceFilter@2dafae61, org.springframework.security.web.header.HeaderWriterFilter@6b2dd3df, org.springframework.security.web.authentication.logout.LogoutFilter@62aeddc8, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@6af5b246, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@4bf80c29, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@66e17eff, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@4bb1b96b, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@2b44d6d0, org.springframework.security.web.session.SessionManagementFilter@73c48264, org.springframework.security.web.access.ExceptionTranslationFilter@310b2b6f, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@2a8b33ba]
|
||||
2025-05-22 08:30:53 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false)
|
||||
2025-05-22 08:30:55 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-05-22 08:30:55 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9090"]
|
||||
2025-05-22 08:30:55 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9090 (http) with context path ''
|
||||
2025-05-22 08:30:55 [main] INFO c.r.m.admin.MonitorAdminApplication - Started MonitorAdminApplication in 3.366 seconds (JVM running for 4.707)
|
||||
2025-05-22 08:30:55 [http-nio-9090-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-05-22 08:30:55 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-05-22 08:30:55 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-05-22 08:30:55 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as dacc90ea7863
|
||||
2025-05-22 08:30:55 [reactor-http-nio-2] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-monitor-admin],[dacc90ea7863],[UP]
|
||||
2025-05-22 08:31:03 [main] INFO c.r.m.admin.MonitorAdminApplication - Starting MonitorAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 30208 (F:\evo_k3cloud\ruoyi-extend\ruoyi-monitor-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-05-22 08:31:03 [main] INFO c.r.m.admin.MonitorAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-05-22 08:31:04 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9090 (http)
|
||||
2025-05-22 08:31:04 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9090"]
|
||||
2025-05-22 08:31:04 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-05-22 08:31:04 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-05-22 08:31:04 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2025-05-22 08:31:04 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1382 ms
|
||||
2025-05-22 08:31:05 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@78c74647, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@39652a30, org.springframework.security.web.context.SecurityContextPersistenceFilter@5dbab232, org.springframework.security.web.header.HeaderWriterFilter@4981d95b, org.springframework.security.web.authentication.logout.LogoutFilter@71d55b7e, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@3a40bb52, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@7bd38fed, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@595f9916, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@2055833f, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@5763a655, org.springframework.security.web.session.SessionManagementFilter@6b867ee7, org.springframework.security.web.access.ExceptionTranslationFilter@216c22ce, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@6aae0e6f]
|
||||
2025-05-22 08:31:05 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false)
|
||||
2025-05-22 08:31:06 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-05-22 08:31:06 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9090"]
|
||||
2025-05-22 08:31:06 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9090 (http) with context path ''
|
||||
2025-05-22 08:31:06 [main] INFO c.r.m.admin.MonitorAdminApplication - Started MonitorAdminApplication in 4.084 seconds (JVM running for 5.925)
|
||||
2025-05-22 08:31:07 [http-nio-9090-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-05-22 08:31:07 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-05-22 08:31:07 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-05-22 08:31:07 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as dacc90ea7863
|
||||
2025-05-22 08:31:08 [reactor-http-nio-3] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-xxl-job-admin],[cc38f3b5f0d4],[UP]
|
||||
2025-05-22 08:31:08 [reactor-http-nio-2] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-monitor-admin],[dacc90ea7863],[UP]
|
||||
2025-05-22 08:44:42 [reactor-http-nio-4] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
@ -1,42 +0,0 @@
|
||||
2025-06-12 09:47:32 [main] INFO c.r.m.admin.MonitorAdminApplication - Starting MonitorAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 40112 (F:\evo_k3cloud\ruoyi-extend\ruoyi-monitor-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-06-12 09:47:32 [main] INFO c.r.m.admin.MonitorAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-06-12 09:47:33 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9090 (http)
|
||||
2025-06-12 09:47:33 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9090"]
|
||||
2025-06-12 09:47:33 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-06-12 09:47:33 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-06-12 09:47:34 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2025-06-12 09:47:34 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1691 ms
|
||||
2025-06-12 09:47:34 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@2e71240b, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@23cd5d42, org.springframework.security.web.context.SecurityContextPersistenceFilter@2dafae61, org.springframework.security.web.header.HeaderWriterFilter@6b2dd3df, org.springframework.security.web.authentication.logout.LogoutFilter@62aeddc8, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@6af5b246, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@4bf80c29, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@66e17eff, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@4bb1b96b, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@2b44d6d0, org.springframework.security.web.session.SessionManagementFilter@73c48264, org.springframework.security.web.access.ExceptionTranslationFilter@310b2b6f, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@2a8b33ba]
|
||||
2025-06-12 09:47:34 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false)
|
||||
2025-06-12 09:47:35 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-06-12 09:47:35 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9090"]
|
||||
2025-06-12 09:47:35 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9090 (http) with context path ''
|
||||
2025-06-12 09:47:35 [main] INFO c.r.m.admin.MonitorAdminApplication - Started MonitorAdminApplication in 4.037 seconds (JVM running for 9.68)
|
||||
2025-06-12 09:47:36 [http-nio-9090-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-06-12 09:47:36 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-06-12 09:47:36 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-06-12 09:47:36 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as 84a22cdffb98
|
||||
2025-06-12 09:47:36 [reactor-http-nio-2] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-monitor-admin],[84a22cdffb98],[UP]
|
||||
2025-06-12 09:47:37 [reactor-http-nio-3] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-xxl-job-admin],[aef809a46c0e],[UP]
|
||||
2025-06-12 09:48:14 [reactor-http-nio-4] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[c0314e3c969e],[UP]
|
||||
2025-06-12 10:05:25 [main] INFO c.r.m.admin.MonitorAdminApplication - Starting MonitorAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 2116 (F:\evo_k3cloud\ruoyi-extend\ruoyi-monitor-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-06-12 10:05:25 [main] INFO c.r.m.admin.MonitorAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-06-12 10:05:26 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9090 (http)
|
||||
2025-06-12 10:05:26 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9090"]
|
||||
2025-06-12 10:05:26 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-06-12 10:05:26 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-06-12 10:05:27 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2025-06-12 10:05:27 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1116 ms
|
||||
2025-06-12 10:05:27 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@6e02721d, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@902fdbe, org.springframework.security.web.context.SecurityContextPersistenceFilter@6c8fe7a4, org.springframework.security.web.header.HeaderWriterFilter@35adf623, org.springframework.security.web.authentication.logout.LogoutFilter@7e7743ec, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@459003a0, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@18a096b5, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@2ad99cf3, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@6f31df32, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@796d33eb, org.springframework.security.web.session.SessionManagementFilter@75d366c2, org.springframework.security.web.access.ExceptionTranslationFilter@44286963, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@359066bc]
|
||||
2025-06-12 10:05:27 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false)
|
||||
2025-06-12 10:05:28 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-06-12 10:05:28 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9090"]
|
||||
2025-06-12 10:05:28 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9090 (http) with context path ''
|
||||
2025-06-12 10:05:28 [main] INFO c.r.m.admin.MonitorAdminApplication - Started MonitorAdminApplication in 3.223 seconds (JVM running for 5.475)
|
||||
2025-06-12 10:05:28 [http-nio-9090-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-06-12 10:05:28 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-06-12 10:05:28 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 2 ms
|
||||
2025-06-12 10:05:29 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as dacc90ea7863
|
||||
2025-06-12 10:05:29 [reactor-http-nio-2] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-monitor-admin],[dacc90ea7863],[UP]
|
||||
2025-06-12 10:05:29 [reactor-http-nio-3] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-xxl-job-admin],[cc38f3b5f0d4],[UP]
|
||||
2025-06-12 10:06:00 [reactor-http-nio-4] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
@ -1,21 +0,0 @@
|
||||
2025-06-14 10:16:22 [main] INFO c.r.m.admin.MonitorAdminApplication - Starting MonitorAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 3392 (F:\evo_k3cloud\ruoyi-extend\ruoyi-monitor-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-06-14 10:16:22 [main] INFO c.r.m.admin.MonitorAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-06-14 10:16:24 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9090 (http)
|
||||
2025-06-14 10:16:24 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9090"]
|
||||
2025-06-14 10:16:24 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-06-14 10:16:24 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-06-14 10:16:25 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2025-06-14 10:16:25 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 2525 ms
|
||||
2025-06-14 10:16:25 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@3e900e1a, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@196624bf, org.springframework.security.web.context.SecurityContextPersistenceFilter@4bb1b96b, org.springframework.security.web.header.HeaderWriterFilter@5ef85555, org.springframework.security.web.authentication.logout.LogoutFilter@77b3752b, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@6d6f6860, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@39b626e5, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@1f66d8e1, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@721d5b74, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@50085d9c, org.springframework.security.web.session.SessionManagementFilter@2dafae61, org.springframework.security.web.access.ExceptionTranslationFilter@315c081, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@ea7a4c3]
|
||||
2025-06-14 10:16:26 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false)
|
||||
2025-06-14 10:16:27 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-06-14 10:16:27 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9090"]
|
||||
2025-06-14 10:16:27 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9090 (http) with context path ''
|
||||
2025-06-14 10:16:27 [main] INFO c.r.m.admin.MonitorAdminApplication - Started MonitorAdminApplication in 5.308 seconds (JVM running for 6.88)
|
||||
2025-06-14 10:16:27 [http-nio-9090-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-06-14 10:16:27 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-06-14 10:16:27 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-06-14 10:16:28 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as dacc90ea7863
|
||||
2025-06-14 10:16:28 [reactor-http-nio-2] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-monitor-admin],[dacc90ea7863],[UP]
|
||||
2025-06-14 10:16:28 [reactor-http-nio-3] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-xxl-job-admin],[cc38f3b5f0d4],[UP]
|
||||
2025-06-14 10:16:56 [reactor-http-nio-4] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
@ -1,212 +0,0 @@
|
||||
2025-06-16 09:25:16 [main] INFO c.r.m.admin.MonitorAdminApplication - Starting MonitorAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 7724 (F:\evo_k3cloud\ruoyi-extend\ruoyi-monitor-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-06-16 09:25:16 [main] INFO c.r.m.admin.MonitorAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-06-16 09:25:17 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9090 (http)
|
||||
2025-06-16 09:25:17 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9090"]
|
||||
2025-06-16 09:25:17 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-06-16 09:25:17 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-06-16 09:25:18 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2025-06-16 09:25:18 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1465 ms
|
||||
2025-06-16 09:25:18 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@2b44d6d0, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@3e900e1a, org.springframework.security.web.context.SecurityContextPersistenceFilter@66e17eff, org.springframework.security.web.header.HeaderWriterFilter@73c48264, org.springframework.security.web.authentication.logout.LogoutFilter@5707f613, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@2401856, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@515b9d4a, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@1bbddada, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@1f66d8e1, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@196624bf, org.springframework.security.web.session.SessionManagementFilter@5bcec67e, org.springframework.security.web.access.ExceptionTranslationFilter@6b5ab2f2, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@2e1eb85f]
|
||||
2025-06-16 09:25:18 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false)
|
||||
2025-06-16 09:25:19 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-06-16 09:25:19 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9090"]
|
||||
2025-06-16 09:25:19 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9090 (http) with context path ''
|
||||
2025-06-16 09:25:19 [main] INFO c.r.m.admin.MonitorAdminApplication - Started MonitorAdminApplication in 3.486 seconds (JVM running for 6.664)
|
||||
2025-06-16 09:25:20 [http-nio-9090-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-06-16 09:25:20 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-06-16 09:25:20 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 2 ms
|
||||
2025-06-16 09:25:20 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as dacc90ea7863
|
||||
2025-06-16 09:25:20 [reactor-http-nio-2] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-monitor-admin],[dacc90ea7863],[UP]
|
||||
2025-06-16 09:25:20 [reactor-http-nio-3] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-xxl-job-admin],[cc38f3b5f0d4],[UP]
|
||||
2025-06-16 09:25:48 [reactor-http-nio-4] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
2025-06-16 09:43:59 [parallel-16] INFO d.c.b.a.s.services.StatusUpdater - Couldn't retrieve status for Instance(id=08432fb0b14f, version=2, registration=Registration(name=RuoYi-Vue-Plus, managementUrl=http://192.168.5.200:8033/actuator, healthUrl=http://192.168.5.200:8033/actuator/health, serviceUrl=http://192.168.5.200:8033/, source=http-api), registered=true, statusInfo=StatusInfo(status=UP, details={db={status=UP, details={database=MySQL, validationQuery=isValid()}}, diskSpace={status=UP, details={total=974330859520, free=778959532032, threshold=10485760, exists=true}}, ping={status=UP}, redis={status=UP, details={version=3.0.503}}}), statusTimestamp=2025-06-16T01:25:48.272Z, info=Info(values={}), endpoints=Endpoints(endpoints={caches=Endpoint(id=caches, url=http://192.168.5.200:8033/actuator/caches), loggers=Endpoint(id=loggers, url=http://192.168.5.200:8033/actuator/loggers), logfile=Endpoint(id=logfile, url=http://192.168.5.200:8033/actuator/logfile), health=Endpoint(id=health, url=http://192.168.5.200:8033/actuator/health), env=Endpoint(id=env, url=http://192.168.5.200:8033/actuator/env), heapdump=Endpoint(id=heapdump, url=http://192.168.5.200:8033/actuator/heapdump), scheduledtasks=Endpoint(id=scheduledtasks, url=http://192.168.5.200:8033/actuator/scheduledtasks), mappings=Endpoint(id=mappings, url=http://192.168.5.200:8033/actuator/mappings), startup=Endpoint(id=startup, url=http://192.168.5.200:8033/actuator/startup), beans=Endpoint(id=beans, url=http://192.168.5.200:8033/actuator/beans), configprops=Endpoint(id=configprops, url=http://192.168.5.200:8033/actuator/configprops), threaddump=Endpoint(id=threaddump, url=http://192.168.5.200:8033/actuator/threaddump), metrics=Endpoint(id=metrics, url=http://192.168.5.200:8033/actuator/metrics), conditions=Endpoint(id=conditions, url=http://192.168.5.200:8033/actuator/conditions), info=Endpoint(id=info, url=http://192.168.5.200:8033/actuator/info)}), buildVersion=null, tags=Tags(values={}))
|
||||
java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 10000ms in 'map' (and no fallback has been configured)
|
||||
at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.handleTimeout(FluxTimeout.java:295)
|
||||
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
|
||||
Error has been observed at the following site(s):
|
||||
*__checkpoint ⇢ Request to GET health [DefaultWebClient]
|
||||
Original Stack Trace:
|
||||
at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.handleTimeout(FluxTimeout.java:295)
|
||||
at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.doTimeout(FluxTimeout.java:280)
|
||||
at reactor.core.publisher.FluxTimeout$TimeoutTimeoutSubscriber.onNext(FluxTimeout.java:419)
|
||||
at reactor.core.publisher.FluxOnErrorReturn$ReturnSubscriber.onNext(FluxOnErrorReturn.java:162)
|
||||
at reactor.core.publisher.MonoDelay$MonoDelayRunnable.propagateDelay(MonoDelay.java:271)
|
||||
at reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:286)
|
||||
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68)
|
||||
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28)
|
||||
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-06-16 09:43:59 [parallel-16] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[OFFLINE]
|
||||
2025-06-16 09:45:59 [reactor-http-nio-12] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
2025-06-16 09:46:29 [parallel-4] INFO d.c.b.a.s.services.StatusUpdater - Couldn't retrieve status for Instance(id=08432fb0b14f, version=4, registration=Registration(name=RuoYi-Vue-Plus, managementUrl=http://192.168.5.200:8033/actuator, healthUrl=http://192.168.5.200:8033/actuator/health, serviceUrl=http://192.168.5.200:8033/, source=http-api), registered=true, statusInfo=StatusInfo(status=UP, details={db={status=UP, details={database=MySQL, validationQuery=isValid()}}, diskSpace={status=UP, details={total=974330859520, free=778936766464, threshold=10485760, exists=true}}, ping={status=UP}, redis={status=UP, details={version=3.0.503}}}), statusTimestamp=2025-06-16T01:45:59.831Z, info=Info(values={}), endpoints=Endpoints(endpoints={caches=Endpoint(id=caches, url=http://192.168.5.200:8033/actuator/caches), loggers=Endpoint(id=loggers, url=http://192.168.5.200:8033/actuator/loggers), logfile=Endpoint(id=logfile, url=http://192.168.5.200:8033/actuator/logfile), health=Endpoint(id=health, url=http://192.168.5.200:8033/actuator/health), env=Endpoint(id=env, url=http://192.168.5.200:8033/actuator/env), heapdump=Endpoint(id=heapdump, url=http://192.168.5.200:8033/actuator/heapdump), scheduledtasks=Endpoint(id=scheduledtasks, url=http://192.168.5.200:8033/actuator/scheduledtasks), mappings=Endpoint(id=mappings, url=http://192.168.5.200:8033/actuator/mappings), startup=Endpoint(id=startup, url=http://192.168.5.200:8033/actuator/startup), beans=Endpoint(id=beans, url=http://192.168.5.200:8033/actuator/beans), configprops=Endpoint(id=configprops, url=http://192.168.5.200:8033/actuator/configprops), threaddump=Endpoint(id=threaddump, url=http://192.168.5.200:8033/actuator/threaddump), metrics=Endpoint(id=metrics, url=http://192.168.5.200:8033/actuator/metrics), conditions=Endpoint(id=conditions, url=http://192.168.5.200:8033/actuator/conditions), info=Endpoint(id=info, url=http://192.168.5.200:8033/actuator/info)}), buildVersion=null, tags=Tags(values={}))
|
||||
java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 10000ms in 'map' (and no fallback has been configured)
|
||||
at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.handleTimeout(FluxTimeout.java:295)
|
||||
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
|
||||
Error has been observed at the following site(s):
|
||||
*__checkpoint ⇢ Request to GET health [DefaultWebClient]
|
||||
Original Stack Trace:
|
||||
at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.handleTimeout(FluxTimeout.java:295)
|
||||
at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.doTimeout(FluxTimeout.java:280)
|
||||
at reactor.core.publisher.FluxTimeout$TimeoutTimeoutSubscriber.onNext(FluxTimeout.java:419)
|
||||
at reactor.core.publisher.FluxOnErrorReturn$ReturnSubscriber.onNext(FluxOnErrorReturn.java:162)
|
||||
at reactor.core.publisher.MonoDelay$MonoDelayRunnable.propagateDelay(MonoDelay.java:271)
|
||||
at reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:286)
|
||||
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68)
|
||||
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28)
|
||||
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-06-16 09:46:29 [parallel-4] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[OFFLINE]
|
||||
2025-06-16 09:47:29 [reactor-http-nio-15] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
2025-06-16 09:57:51 [reactor-http-nio-16] INFO d.c.b.a.s.services.StatusUpdater - Couldn't retrieve status for Instance(id=08432fb0b14f, version=6, registration=Registration(name=RuoYi-Vue-Plus, managementUrl=http://192.168.5.200:8033/actuator, healthUrl=http://192.168.5.200:8033/actuator/health, serviceUrl=http://192.168.5.200:8033/, source=http-api), registered=true, statusInfo=StatusInfo(status=UP, details={db={status=UP, details={database=MySQL, validationQuery=isValid()}}, diskSpace={status=UP, details={total=974330859520, free=778936745984, threshold=10485760, exists=true}}, ping={status=UP}, redis={status=UP, details={version=3.0.503}}}), statusTimestamp=2025-06-16T01:47:29.821Z, info=Info(values={}), endpoints=Endpoints(endpoints={caches=Endpoint(id=caches, url=http://192.168.5.200:8033/actuator/caches), loggers=Endpoint(id=loggers, url=http://192.168.5.200:8033/actuator/loggers), logfile=Endpoint(id=logfile, url=http://192.168.5.200:8033/actuator/logfile), health=Endpoint(id=health, url=http://192.168.5.200:8033/actuator/health), env=Endpoint(id=env, url=http://192.168.5.200:8033/actuator/env), heapdump=Endpoint(id=heapdump, url=http://192.168.5.200:8033/actuator/heapdump), scheduledtasks=Endpoint(id=scheduledtasks, url=http://192.168.5.200:8033/actuator/scheduledtasks), mappings=Endpoint(id=mappings, url=http://192.168.5.200:8033/actuator/mappings), startup=Endpoint(id=startup, url=http://192.168.5.200:8033/actuator/startup), beans=Endpoint(id=beans, url=http://192.168.5.200:8033/actuator/beans), configprops=Endpoint(id=configprops, url=http://192.168.5.200:8033/actuator/configprops), threaddump=Endpoint(id=threaddump, url=http://192.168.5.200:8033/actuator/threaddump), metrics=Endpoint(id=metrics, url=http://192.168.5.200:8033/actuator/metrics), conditions=Endpoint(id=conditions, url=http://192.168.5.200:8033/actuator/conditions), info=Endpoint(id=info, url=http://192.168.5.200:8033/actuator/info)}), buildVersion=null, tags=Tags(values={}))
|
||||
org.springframework.web.reactive.function.client.WebClientRequestException: Connection refused: no further information: /192.168.5.200:8033; nested exception is io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
|
||||
Error has been observed at the following site(s):
|
||||
*__checkpoint ⇢ Request to GET health [DefaultWebClient]
|
||||
Original Stack Trace:
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
at reactor.core.publisher.MonoErrorSupplied.subscribe(MonoErrorSupplied.java:55)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93)
|
||||
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:204)
|
||||
at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.whenError(FluxRetryWhen.java:225)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onError(FluxRetryWhen.java:274)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:415)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onNext(FluxConcatMap.java:251)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
|
||||
at reactor.core.publisher.EmitterProcessor.drain(EmitterProcessor.java:537)
|
||||
at reactor.core.publisher.EmitterProcessor.tryEmitNext(EmitterProcessor.java:343)
|
||||
at reactor.core.publisher.SinkManySerialized.tryEmitNext(SinkManySerialized.java:100)
|
||||
at reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:27)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:190)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect$ClientTransportSubscriber.onError(HttpClientConnect.java:311)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onError(DefaultPooledConnectionProvider.java:160)
|
||||
at reactor.netty.internal.shaded.reactor.pool.AbstractPool$Borrower.fail(AbstractPool.java:475)
|
||||
at reactor.netty.internal.shaded.reactor.pool.SimpleDequePool.lambda$drainLoop$9(SimpleDequePool.java:431)
|
||||
at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onError(FluxDoOnEach.java:186)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnectionAllocator$PooledConnectionInitializer.onError(DefaultPooledConnectionProvider.java:558)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:192)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:259)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106)
|
||||
at reactor.core.publisher.Operators.error(Operators.java:198)
|
||||
at reactor.core.publisher.MonoError.subscribe(MonoError.java:53)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.tryFailure(TransportConnector.java:580)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.setFailure(TransportConnector.java:534)
|
||||
at reactor.netty.transport.TransportConnector.lambda$doConnect$7(TransportConnector.java:265)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
|
||||
at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
|
||||
at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)
|
||||
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:321)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:337)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
Caused by: java.net.ConnectException: Connection refused: no further information
|
||||
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
|
||||
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:715)
|
||||
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-06-16 09:57:51 [reactor-http-nio-16] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[OFFLINE]
|
||||
2025-06-16 09:57:57 [reactor-http-nio-1] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
2025-06-16 13:43:17 [main] INFO c.r.m.admin.MonitorAdminApplication - Starting MonitorAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 19256 (F:\evo_k3cloud\ruoyi-extend\ruoyi-monitor-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-06-16 13:43:17 [main] INFO c.r.m.admin.MonitorAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-06-16 13:43:18 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9090 (http)
|
||||
2025-06-16 13:43:18 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9090"]
|
||||
2025-06-16 13:43:18 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-06-16 13:43:18 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-06-16 13:43:19 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2025-06-16 13:43:19 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1668 ms
|
||||
2025-06-16 13:43:19 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@6e02721d, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@902fdbe, org.springframework.security.web.context.SecurityContextPersistenceFilter@6c8fe7a4, org.springframework.security.web.header.HeaderWriterFilter@35adf623, org.springframework.security.web.authentication.logout.LogoutFilter@7e7743ec, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@459003a0, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@18a096b5, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@2ad99cf3, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@6f31df32, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@796d33eb, org.springframework.security.web.session.SessionManagementFilter@75d366c2, org.springframework.security.web.access.ExceptionTranslationFilter@44286963, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@359066bc]
|
||||
2025-06-16 13:43:19 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false)
|
||||
2025-06-16 13:43:20 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-06-16 13:43:20 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9090"]
|
||||
2025-06-16 13:43:20 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9090 (http) with context path ''
|
||||
2025-06-16 13:43:20 [main] INFO c.r.m.admin.MonitorAdminApplication - Started MonitorAdminApplication in 3.825 seconds (JVM running for 8.205)
|
||||
2025-06-16 13:43:20 [RMI TCP Connection(2)-192.168.5.200] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-06-16 13:43:20 [RMI TCP Connection(2)-192.168.5.200] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-06-16 13:43:20 [RMI TCP Connection(2)-192.168.5.200] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 2 ms
|
||||
2025-06-16 13:43:21 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as dacc90ea7863
|
||||
2025-06-16 13:43:21 [reactor-http-nio-2] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-monitor-admin],[dacc90ea7863],[UP]
|
||||
2025-06-16 13:43:21 [reactor-http-nio-3] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-xxl-job-admin],[cc38f3b5f0d4],[UP]
|
||||
2025-06-16 13:43:49 [reactor-http-nio-4] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
2025-06-16 15:12:30 [parallel-10] INFO d.c.b.a.s.services.StatusUpdater - Couldn't retrieve status for Instance(id=08432fb0b14f, version=2, registration=Registration(name=RuoYi-Vue-Plus, managementUrl=http://192.168.5.200:8033/actuator, healthUrl=http://192.168.5.200:8033/actuator/health, serviceUrl=http://192.168.5.200:8033/, source=http-api), registered=true, statusInfo=StatusInfo(status=UP, details={db={status=UP, details={database=MySQL, validationQuery=isValid()}}, diskSpace={status=UP, details={total=974330859520, free=778763952128, threshold=10485760, exists=true}}, ping={status=UP}, redis={status=UP, details={version=3.0.503}}}), statusTimestamp=2025-06-16T05:43:49.028Z, info=Info(values={}), endpoints=Endpoints(endpoints={caches=Endpoint(id=caches, url=http://192.168.5.200:8033/actuator/caches), loggers=Endpoint(id=loggers, url=http://192.168.5.200:8033/actuator/loggers), logfile=Endpoint(id=logfile, url=http://192.168.5.200:8033/actuator/logfile), health=Endpoint(id=health, url=http://192.168.5.200:8033/actuator/health), env=Endpoint(id=env, url=http://192.168.5.200:8033/actuator/env), heapdump=Endpoint(id=heapdump, url=http://192.168.5.200:8033/actuator/heapdump), scheduledtasks=Endpoint(id=scheduledtasks, url=http://192.168.5.200:8033/actuator/scheduledtasks), mappings=Endpoint(id=mappings, url=http://192.168.5.200:8033/actuator/mappings), startup=Endpoint(id=startup, url=http://192.168.5.200:8033/actuator/startup), beans=Endpoint(id=beans, url=http://192.168.5.200:8033/actuator/beans), configprops=Endpoint(id=configprops, url=http://192.168.5.200:8033/actuator/configprops), threaddump=Endpoint(id=threaddump, url=http://192.168.5.200:8033/actuator/threaddump), metrics=Endpoint(id=metrics, url=http://192.168.5.200:8033/actuator/metrics), conditions=Endpoint(id=conditions, url=http://192.168.5.200:8033/actuator/conditions), info=Endpoint(id=info, url=http://192.168.5.200:8033/actuator/info)}), buildVersion=null, tags=Tags(values={}))
|
||||
java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 10000ms in 'map' (and no fallback has been configured)
|
||||
at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.handleTimeout(FluxTimeout.java:295)
|
||||
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
|
||||
Error has been observed at the following site(s):
|
||||
*__checkpoint ⇢ Request to GET health [DefaultWebClient]
|
||||
Original Stack Trace:
|
||||
at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.handleTimeout(FluxTimeout.java:295)
|
||||
at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.doTimeout(FluxTimeout.java:280)
|
||||
at reactor.core.publisher.FluxTimeout$TimeoutTimeoutSubscriber.onNext(FluxTimeout.java:419)
|
||||
at reactor.core.publisher.FluxOnErrorReturn$ReturnSubscriber.onNext(FluxOnErrorReturn.java:162)
|
||||
at reactor.core.publisher.MonoDelay$MonoDelayRunnable.propagateDelay(MonoDelay.java:271)
|
||||
at reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:286)
|
||||
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68)
|
||||
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28)
|
||||
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-06-16 15:12:30 [parallel-10] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[OFFLINE]
|
||||
2025-06-16 16:05:22 [reactor-http-nio-14] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
2025-06-16 17:06:06 [main] INFO c.r.m.admin.MonitorAdminApplication - Starting MonitorAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 20944 (F:\evo_k3cloud\ruoyi-extend\ruoyi-monitor-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-06-16 17:06:06 [main] INFO c.r.m.admin.MonitorAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-06-16 17:06:07 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9090 (http)
|
||||
2025-06-16 17:06:07 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9090"]
|
||||
2025-06-16 17:06:07 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-06-16 17:06:07 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-06-16 17:06:07 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2025-06-16 17:06:07 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1359 ms
|
||||
2025-06-16 17:06:08 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@4b425577, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@5934153e, org.springframework.security.web.context.SecurityContextPersistenceFilter@41bfa9e9, org.springframework.security.web.header.HeaderWriterFilter@4bb1b96b, org.springframework.security.web.authentication.logout.LogoutFilter@6b321262, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@48268eec, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@3e900e1a, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@7069f076, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@4a070cf0, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@3bb9ca38, org.springframework.security.web.session.SessionManagementFilter@1f66d8e1, org.springframework.security.web.access.ExceptionTranslationFilter@5bcec67e, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@6d6f6860]
|
||||
2025-06-16 17:06:08 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false)
|
||||
2025-06-16 17:06:09 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-06-16 17:06:09 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9090"]
|
||||
2025-06-16 17:06:09 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9090 (http) with context path ''
|
||||
2025-06-16 17:06:09 [main] INFO c.r.m.admin.MonitorAdminApplication - Started MonitorAdminApplication in 3.835 seconds (JVM running for 6.99)
|
||||
2025-06-16 17:06:09 [http-nio-9090-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-06-16 17:06:09 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-06-16 17:06:09 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-06-16 17:06:10 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as dacc90ea7863
|
||||
2025-06-16 17:06:10 [reactor-http-nio-3] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-monitor-admin],[dacc90ea7863],[UP]
|
||||
2025-06-16 17:06:10 [reactor-http-nio-2] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-xxl-job-admin],[cc38f3b5f0d4],[UP]
|
||||
2025-06-16 17:06:46 [reactor-http-nio-4] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
@ -1,61 +0,0 @@
|
||||
2025-06-21 09:34:20 [main] INFO c.r.m.admin.MonitorAdminApplication - Starting MonitorAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 43192 (F:\evo_k3cloud\ruoyi-extend\ruoyi-monitor-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-06-21 09:34:20 [main] INFO c.r.m.admin.MonitorAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-06-21 09:34:21 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9090 (http)
|
||||
2025-06-21 09:34:21 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9090"]
|
||||
2025-06-21 09:34:21 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-06-21 09:34:21 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-06-21 09:34:21 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2025-06-21 09:34:21 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1710 ms
|
||||
2025-06-21 09:34:22 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@1e3f0aea, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@48268eec, org.springframework.security.web.context.SecurityContextPersistenceFilter@feb098f, org.springframework.security.web.header.HeaderWriterFilter@1b7f06c7, org.springframework.security.web.authentication.logout.LogoutFilter@7a2fce12, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@3f9b7fe1, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@2401856, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@31e739bf, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@29079032, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@69a024a0, org.springframework.security.web.session.SessionManagementFilter@729c8063, org.springframework.security.web.access.ExceptionTranslationFilter@1b3ab4f9, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@6e02721d]
|
||||
2025-06-21 09:34:22 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false)
|
||||
2025-06-21 09:34:23 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-06-21 09:34:24 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9090"]
|
||||
2025-06-21 09:34:24 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9090 (http) with context path ''
|
||||
2025-06-21 09:34:24 [main] INFO c.r.m.admin.MonitorAdminApplication - Started MonitorAdminApplication in 4.265 seconds (JVM running for 5.022)
|
||||
2025-06-21 09:34:24 [http-nio-9090-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-06-21 09:34:24 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-06-21 09:34:24 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-06-21 09:34:24 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as dacc90ea7863
|
||||
2025-06-21 09:34:24 [reactor-http-nio-2] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-monitor-admin],[dacc90ea7863],[UP]
|
||||
2025-06-21 09:34:24 [reactor-http-nio-3] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-xxl-job-admin],[cc38f3b5f0d4],[UP]
|
||||
2025-06-21 14:20:57 [main] INFO c.r.m.admin.MonitorAdminApplication - Starting MonitorAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 34800 (F:\evo_k3cloud\ruoyi-extend\ruoyi-monitor-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-06-21 14:20:57 [main] INFO c.r.m.admin.MonitorAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-06-21 14:20:57 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9090 (http)
|
||||
2025-06-21 14:20:57 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9090"]
|
||||
2025-06-21 14:20:57 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-06-21 14:20:57 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-06-21 14:20:58 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2025-06-21 14:20:58 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1260 ms
|
||||
2025-06-21 14:20:58 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@160e99e0, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@4f3e9fbb, org.springframework.security.web.context.SecurityContextPersistenceFilter@4a070cf0, org.springframework.security.web.header.HeaderWriterFilter@721d5b74, org.springframework.security.web.authentication.logout.LogoutFilter@357bc488, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@2d7637e6, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@5df7e31b, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@202d9236, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@1f782c05, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@365afe87, org.springframework.security.web.session.SessionManagementFilter@41bfa9e9, org.springframework.security.web.access.ExceptionTranslationFilter@66e17eff, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@8054fe2]
|
||||
2025-06-21 14:20:58 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false)
|
||||
2025-06-21 14:20:59 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-06-21 14:20:59 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9090"]
|
||||
2025-06-21 14:20:59 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9090 (http) with context path ''
|
||||
2025-06-21 14:20:59 [main] INFO c.r.m.admin.MonitorAdminApplication - Started MonitorAdminApplication in 2.828 seconds (JVM running for 6.824)
|
||||
2025-06-21 14:20:59 [http-nio-9090-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-06-21 14:20:59 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-06-21 14:20:59 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-06-21 14:21:00 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as dacc90ea7863
|
||||
2025-06-21 14:21:00 [reactor-http-nio-2] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-monitor-admin],[dacc90ea7863],[UP]
|
||||
2025-06-21 14:21:06 [reactor-http-nio-3] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-xxl-job-admin],[cc38f3b5f0d4],[UP]
|
||||
2025-06-21 15:04:38 [main] INFO c.r.m.admin.MonitorAdminApplication - Starting MonitorAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 44840 (F:\evo_k3cloud\ruoyi-extend\ruoyi-monitor-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-06-21 15:04:38 [main] INFO c.r.m.admin.MonitorAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-06-21 15:04:39 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9090 (http)
|
||||
2025-06-21 15:04:39 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9090"]
|
||||
2025-06-21 15:04:39 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-06-21 15:04:39 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-06-21 15:04:40 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2025-06-21 15:04:40 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1322 ms
|
||||
2025-06-21 15:04:40 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@8054fe2, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@1e3f0aea, org.springframework.security.web.context.SecurityContextPersistenceFilter@23c767e6, org.springframework.security.web.header.HeaderWriterFilter@552cede7, org.springframework.security.web.authentication.logout.LogoutFilter@2dafae61, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@21ea996f, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@31723307, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@19e21f89, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@31e739bf, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@48268eec, org.springframework.security.web.session.SessionManagementFilter@151732fb, org.springframework.security.web.access.ExceptionTranslationFilter@4a9a878, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@1b57c345]
|
||||
2025-06-21 15:04:40 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false)
|
||||
2025-06-21 15:04:41 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-06-21 15:04:41 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9090"]
|
||||
2025-06-21 15:04:41 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9090 (http) with context path ''
|
||||
2025-06-21 15:04:41 [main] INFO c.r.m.admin.MonitorAdminApplication - Started MonitorAdminApplication in 3.166 seconds (JVM running for 3.957)
|
||||
2025-06-21 15:04:41 [http-nio-9090-exec-2] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-06-21 15:04:41 [http-nio-9090-exec-2] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-06-21 15:04:41 [http-nio-9090-exec-2] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-06-21 15:04:41 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as dacc90ea7863
|
||||
2025-06-21 15:04:42 [reactor-http-nio-2] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-monitor-admin],[dacc90ea7863],[UP]
|
||||
2025-06-21 15:04:44 [reactor-http-nio-3] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
2025-06-21 15:04:48 [reactor-http-nio-4] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-xxl-job-admin],[cc38f3b5f0d4],[UP]
|
||||
@ -1,122 +0,0 @@
|
||||
2025-06-23 11:36:54 [main] INFO c.r.m.admin.MonitorAdminApplication - Starting MonitorAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 533056 (F:\evo_k3cloud\ruoyi-extend\ruoyi-monitor-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-06-23 11:36:54 [main] INFO c.r.m.admin.MonitorAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-06-23 11:36:56 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9090 (http)
|
||||
2025-06-23 11:36:56 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9090"]
|
||||
2025-06-23 11:36:56 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-06-23 11:36:56 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-06-23 11:36:56 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2025-06-23 11:36:56 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1741 ms
|
||||
2025-06-23 11:36:57 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@2401856, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@6d6f6860, org.springframework.security.web.context.SecurityContextPersistenceFilter@1b7f06c7, org.springframework.security.web.header.HeaderWriterFilter@4a9a878, org.springframework.security.web.authentication.logout.LogoutFilter@4db77402, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@6e02721d, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@2e1eb85f, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@729c8063, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@40ed1802, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@2a4f8009, org.springframework.security.web.session.SessionManagementFilter@5c6a5192, org.springframework.security.web.access.ExceptionTranslationFilter@3ba1308d, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@18a096b5]
|
||||
2025-06-23 11:36:57 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false)
|
||||
2025-06-23 11:36:58 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-06-23 11:36:58 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9090"]
|
||||
2025-06-23 11:36:58 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9090 (http) with context path ''
|
||||
2025-06-23 11:36:58 [main] INFO c.r.m.admin.MonitorAdminApplication - Started MonitorAdminApplication in 4.241 seconds (JVM running for 5.161)
|
||||
2025-06-23 11:36:58 [http-nio-9090-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-06-23 11:36:58 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-06-23 11:36:58 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-06-23 11:36:58 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as dacc90ea7863
|
||||
2025-06-23 11:36:59 [reactor-http-nio-2] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-monitor-admin],[dacc90ea7863],[UP]
|
||||
2025-06-23 11:37:06 [reactor-http-nio-3] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-xxl-job-admin],[cc38f3b5f0d4],[UP]
|
||||
2025-06-23 11:38:12 [reactor-http-nio-4] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
2025-06-23 16:06:47 [main] INFO c.r.m.admin.MonitorAdminApplication - Starting MonitorAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 27864 (F:\evo_k3cloud\ruoyi-extend\ruoyi-monitor-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-06-23 16:06:47 [main] INFO c.r.m.admin.MonitorAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-06-23 16:06:48 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9090 (http)
|
||||
2025-06-23 16:06:48 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9090"]
|
||||
2025-06-23 16:06:48 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-06-23 16:06:48 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-06-23 16:06:48 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2025-06-23 16:06:48 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1117 ms
|
||||
2025-06-23 16:06:48 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@32a4ecbe, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@2e71240b, org.springframework.security.web.context.SecurityContextPersistenceFilter@5bcec67e, org.springframework.security.web.header.HeaderWriterFilter@315c081, org.springframework.security.web.authentication.logout.LogoutFilter@713a35c5, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@7d42404e, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@69a024a0, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@7a2fce12, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@66e17eff, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@23cd5d42, org.springframework.security.web.session.SessionManagementFilter@4db77402, org.springframework.security.web.access.ExceptionTranslationFilter@6661d8c0, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@5fdfe8cf]
|
||||
2025-06-23 16:06:49 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false)
|
||||
2025-06-23 16:06:50 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-06-23 16:06:50 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9090"]
|
||||
2025-06-23 16:06:50 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9090 (http) with context path ''
|
||||
2025-06-23 16:06:50 [main] INFO c.r.m.admin.MonitorAdminApplication - Started MonitorAdminApplication in 3.242 seconds (JVM running for 5.976)
|
||||
2025-06-23 16:06:50 [http-nio-9090-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-06-23 16:06:50 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-06-23 16:06:50 [http-nio-9090-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-06-23 16:06:50 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as dacc90ea7863
|
||||
2025-06-23 16:06:50 [reactor-http-nio-3] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-monitor-admin],[dacc90ea7863],[UP]
|
||||
2025-06-23 16:06:51 [reactor-http-nio-2] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [ruoyi-xxl-job-admin],[cc38f3b5f0d4],[UP]
|
||||
2025-06-23 16:08:02 [reactor-http-nio-4] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
2025-06-23 16:12:22 [reactor-http-nio-5] INFO d.c.b.a.s.services.StatusUpdater - Couldn't retrieve status for Instance(id=08432fb0b14f, version=2, registration=Registration(name=RuoYi-Vue-Plus, managementUrl=http://192.168.5.200:8033/actuator, healthUrl=http://192.168.5.200:8033/actuator/health, serviceUrl=http://192.168.5.200:8033/, source=http-api), registered=true, statusInfo=StatusInfo(status=UP, details={db={status=UP, details={database=MySQL, validationQuery=isValid()}}, diskSpace={status=UP, details={total=974330859520, free=773693919232, threshold=10485760, exists=true}}, ping={status=UP}, redis={status=UP, details={version=3.0.503}}}), statusTimestamp=2025-06-23T08:08:02.376Z, info=Info(values={}), endpoints=Endpoints(endpoints={caches=Endpoint(id=caches, url=http://192.168.5.200:8033/actuator/caches), loggers=Endpoint(id=loggers, url=http://192.168.5.200:8033/actuator/loggers), logfile=Endpoint(id=logfile, url=http://192.168.5.200:8033/actuator/logfile), health=Endpoint(id=health, url=http://192.168.5.200:8033/actuator/health), env=Endpoint(id=env, url=http://192.168.5.200:8033/actuator/env), heapdump=Endpoint(id=heapdump, url=http://192.168.5.200:8033/actuator/heapdump), scheduledtasks=Endpoint(id=scheduledtasks, url=http://192.168.5.200:8033/actuator/scheduledtasks), mappings=Endpoint(id=mappings, url=http://192.168.5.200:8033/actuator/mappings), startup=Endpoint(id=startup, url=http://192.168.5.200:8033/actuator/startup), beans=Endpoint(id=beans, url=http://192.168.5.200:8033/actuator/beans), configprops=Endpoint(id=configprops, url=http://192.168.5.200:8033/actuator/configprops), threaddump=Endpoint(id=threaddump, url=http://192.168.5.200:8033/actuator/threaddump), metrics=Endpoint(id=metrics, url=http://192.168.5.200:8033/actuator/metrics), conditions=Endpoint(id=conditions, url=http://192.168.5.200:8033/actuator/conditions), info=Endpoint(id=info, url=http://192.168.5.200:8033/actuator/info)}), buildVersion=null, tags=Tags(values={}))
|
||||
org.springframework.web.reactive.function.client.WebClientRequestException: Connection refused: no further information: /192.168.5.200:8033; nested exception is io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
|
||||
Error has been observed at the following site(s):
|
||||
*__checkpoint ⇢ Request to GET health [DefaultWebClient]
|
||||
Original Stack Trace:
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
at reactor.core.publisher.MonoErrorSupplied.subscribe(MonoErrorSupplied.java:55)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93)
|
||||
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:204)
|
||||
at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.whenError(FluxRetryWhen.java:225)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onError(FluxRetryWhen.java:274)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:415)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onNext(FluxConcatMap.java:251)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
|
||||
at reactor.core.publisher.EmitterProcessor.drain(EmitterProcessor.java:537)
|
||||
at reactor.core.publisher.EmitterProcessor.tryEmitNext(EmitterProcessor.java:343)
|
||||
at reactor.core.publisher.SinkManySerialized.tryEmitNext(SinkManySerialized.java:100)
|
||||
at reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:27)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:190)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect$ClientTransportSubscriber.onError(HttpClientConnect.java:311)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onError(DefaultPooledConnectionProvider.java:160)
|
||||
at reactor.netty.internal.shaded.reactor.pool.AbstractPool$Borrower.fail(AbstractPool.java:475)
|
||||
at reactor.netty.internal.shaded.reactor.pool.SimpleDequePool.lambda$drainLoop$9(SimpleDequePool.java:431)
|
||||
at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onError(FluxDoOnEach.java:186)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnectionAllocator$PooledConnectionInitializer.onError(DefaultPooledConnectionProvider.java:558)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:192)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:259)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106)
|
||||
at reactor.core.publisher.Operators.error(Operators.java:198)
|
||||
at reactor.core.publisher.MonoError.subscribe(MonoError.java:53)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.tryFailure(TransportConnector.java:580)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.setFailure(TransportConnector.java:534)
|
||||
at reactor.netty.transport.TransportConnector.lambda$doConnect$7(TransportConnector.java:265)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
|
||||
at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
|
||||
at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)
|
||||
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:321)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:337)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
Caused by: java.net.ConnectException: Connection refused: no further information
|
||||
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
|
||||
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:715)
|
||||
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-06-23 16:12:22 [reactor-http-nio-5] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[OFFLINE]
|
||||
2025-06-23 16:15:19 [reactor-http-nio-14] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
@ -1,4 +1,4 @@
|
||||
2025-06-25 10:36:09 [reactor-http-nio-14] INFO d.c.b.a.s.services.StatusUpdater - Couldn't retrieve status for Instance(id=08432fb0b14f, version=150, registration=Registration(name=RuoYi-Vue-Plus, managementUrl=http://192.168.5.200:8033/actuator, healthUrl=http://192.168.5.200:8033/actuator/health, serviceUrl=http://192.168.5.200:8033/, source=http-api), registered=true, statusInfo=StatusInfo(status=UP, details={db={status=UP, details={database=MySQL, validationQuery=isValid()}}, diskSpace={status=UP, details={total=974330859520, free=771447140352, threshold=10485760, exists=true}}, ping={status=UP}, redis={status=UP, details={version=3.0.503}}}), statusTimestamp=2025-06-24T08:48:13.035Z, info=Info(values={}), endpoints=Endpoints(endpoints={caches=Endpoint(id=caches, url=http://192.168.5.200:8033/actuator/caches), loggers=Endpoint(id=loggers, url=http://192.168.5.200:8033/actuator/loggers), logfile=Endpoint(id=logfile, url=http://192.168.5.200:8033/actuator/logfile), health=Endpoint(id=health, url=http://192.168.5.200:8033/actuator/health), env=Endpoint(id=env, url=http://192.168.5.200:8033/actuator/env), heapdump=Endpoint(id=heapdump, url=http://192.168.5.200:8033/actuator/heapdump), scheduledtasks=Endpoint(id=scheduledtasks, url=http://192.168.5.200:8033/actuator/scheduledtasks), mappings=Endpoint(id=mappings, url=http://192.168.5.200:8033/actuator/mappings), startup=Endpoint(id=startup, url=http://192.168.5.200:8033/actuator/startup), beans=Endpoint(id=beans, url=http://192.168.5.200:8033/actuator/beans), configprops=Endpoint(id=configprops, url=http://192.168.5.200:8033/actuator/configprops), threaddump=Endpoint(id=threaddump, url=http://192.168.5.200:8033/actuator/threaddump), metrics=Endpoint(id=metrics, url=http://192.168.5.200:8033/actuator/metrics), conditions=Endpoint(id=conditions, url=http://192.168.5.200:8033/actuator/conditions), info=Endpoint(id=info, url=http://192.168.5.200:8033/actuator/info)}), buildVersion=null, tags=Tags(values={}))
|
||||
2026-02-13 09:12:26 [reactor-http-nio-10] INFO d.c.b.a.s.services.StatusUpdater - Couldn't retrieve status for Instance(id=08432fb0b14f, version=2, registration=Registration(name=RuoYi-Vue-Plus, managementUrl=http://192.168.5.200:8033/actuator, healthUrl=http://192.168.5.200:8033/actuator/health, serviceUrl=http://192.168.5.200:8033/, source=http-api), registered=true, statusInfo=StatusInfo(status=UP, details={db={status=UP, details={database=MySQL, validationQuery=isValid()}}, diskSpace={status=UP, details={total=974330859520, free=702342062080, threshold=10485760, exists=true}}, ping={status=UP}, redis={status=UP, details={version=3.0.503}}}), statusTimestamp=2026-02-12T09:50:54.228Z, info=Info(values={}), endpoints=Endpoints(endpoints={caches=Endpoint(id=caches, url=http://192.168.5.200:8033/actuator/caches), loggers=Endpoint(id=loggers, url=http://192.168.5.200:8033/actuator/loggers), logfile=Endpoint(id=logfile, url=http://192.168.5.200:8033/actuator/logfile), health=Endpoint(id=health, url=http://192.168.5.200:8033/actuator/health), env=Endpoint(id=env, url=http://192.168.5.200:8033/actuator/env), heapdump=Endpoint(id=heapdump, url=http://192.168.5.200:8033/actuator/heapdump), scheduledtasks=Endpoint(id=scheduledtasks, url=http://192.168.5.200:8033/actuator/scheduledtasks), mappings=Endpoint(id=mappings, url=http://192.168.5.200:8033/actuator/mappings), startup=Endpoint(id=startup, url=http://192.168.5.200:8033/actuator/startup), beans=Endpoint(id=beans, url=http://192.168.5.200:8033/actuator/beans), configprops=Endpoint(id=configprops, url=http://192.168.5.200:8033/actuator/configprops), threaddump=Endpoint(id=threaddump, url=http://192.168.5.200:8033/actuator/threaddump), metrics=Endpoint(id=metrics, url=http://192.168.5.200:8033/actuator/metrics), conditions=Endpoint(id=conditions, url=http://192.168.5.200:8033/actuator/conditions), info=Endpoint(id=info, url=http://192.168.5.200:8033/actuator/info)}), buildVersion=null, tags=Tags(values={}))
|
||||
org.springframework.web.reactive.function.client.WebClientRequestException: Connection refused: no further information: /192.168.5.200:8033; nested exception is io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
|
||||
@ -76,881 +76,5 @@ Caused by: java.net.ConnectException: Connection refused: no further information
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-06-25 10:36:09 [reactor-http-nio-14] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[OFFLINE]
|
||||
2025-06-25 10:36:36 [reactor-http-nio-16] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
2025-06-25 13:37:09 [reactor-http-nio-16] WARN d.c.b.a.server.services.InfoUpdater - Couldn't retrieve info for Instance(id=08432fb0b14f, version=153, registration=Registration(name=RuoYi-Vue-Plus, managementUrl=http://192.168.5.200:8033/actuator, healthUrl=http://192.168.5.200:8033/actuator/health, serviceUrl=http://192.168.5.200:8033/, source=http-api), registered=true, statusInfo=StatusInfo(status=UP, details={db={status=UP, details={database=MySQL, validationQuery=isValid()}}, diskSpace={status=UP, details={total=974330859520, free=769874894848, threshold=10485760, exists=true}}, ping={status=UP}, redis={status=UP, details={version=3.0.503}}}), statusTimestamp=2025-06-25T02:36:36.224Z, info=Info(values={}), endpoints=Endpoints(endpoints={caches=Endpoint(id=caches, url=http://192.168.5.200:8033/actuator/caches), loggers=Endpoint(id=loggers, url=http://192.168.5.200:8033/actuator/loggers), logfile=Endpoint(id=logfile, url=http://192.168.5.200:8033/actuator/logfile), health=Endpoint(id=health, url=http://192.168.5.200:8033/actuator/health), env=Endpoint(id=env, url=http://192.168.5.200:8033/actuator/env), heapdump=Endpoint(id=heapdump, url=http://192.168.5.200:8033/actuator/heapdump), mappings=Endpoint(id=mappings, url=http://192.168.5.200:8033/actuator/mappings), scheduledtasks=Endpoint(id=scheduledtasks, url=http://192.168.5.200:8033/actuator/scheduledtasks), startup=Endpoint(id=startup, url=http://192.168.5.200:8033/actuator/startup), configprops=Endpoint(id=configprops, url=http://192.168.5.200:8033/actuator/configprops), beans=Endpoint(id=beans, url=http://192.168.5.200:8033/actuator/beans), threaddump=Endpoint(id=threaddump, url=http://192.168.5.200:8033/actuator/threaddump), metrics=Endpoint(id=metrics, url=http://192.168.5.200:8033/actuator/metrics), conditions=Endpoint(id=conditions, url=http://192.168.5.200:8033/actuator/conditions), info=Endpoint(id=info, url=http://192.168.5.200:8033/actuator/info)}), buildVersion=null, tags=Tags(values={}))
|
||||
org.springframework.web.reactive.function.client.WebClientRequestException: Connection refused: no further information: /192.168.5.200:8033; nested exception is io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
|
||||
Error has been observed at the following site(s):
|
||||
*__checkpoint ⇢ Request to GET info [DefaultWebClient]
|
||||
Original Stack Trace:
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
at reactor.core.publisher.MonoErrorSupplied.subscribe(MonoErrorSupplied.java:55)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93)
|
||||
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:204)
|
||||
at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.whenError(FluxRetryWhen.java:225)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onError(FluxRetryWhen.java:274)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:415)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onNext(FluxConcatMap.java:251)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
|
||||
at reactor.core.publisher.EmitterProcessor.drain(EmitterProcessor.java:537)
|
||||
at reactor.core.publisher.EmitterProcessor.tryEmitNext(EmitterProcessor.java:343)
|
||||
at reactor.core.publisher.SinkManySerialized.tryEmitNext(SinkManySerialized.java:100)
|
||||
at reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:27)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:190)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect$ClientTransportSubscriber.onError(HttpClientConnect.java:311)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onError(DefaultPooledConnectionProvider.java:160)
|
||||
at reactor.netty.internal.shaded.reactor.pool.AbstractPool$Borrower.fail(AbstractPool.java:475)
|
||||
at reactor.netty.internal.shaded.reactor.pool.SimpleDequePool.lambda$drainLoop$9(SimpleDequePool.java:431)
|
||||
at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onError(FluxDoOnEach.java:186)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnectionAllocator$PooledConnectionInitializer.onError(DefaultPooledConnectionProvider.java:558)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:192)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:259)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106)
|
||||
at reactor.core.publisher.Operators.error(Operators.java:198)
|
||||
at reactor.core.publisher.MonoError.subscribe(MonoError.java:53)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.tryFailure(TransportConnector.java:580)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.setFailure(TransportConnector.java:534)
|
||||
at reactor.netty.transport.TransportConnector.lambda$doConnect$7(TransportConnector.java:265)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
|
||||
at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
|
||||
at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)
|
||||
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:321)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:337)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
Caused by: java.net.ConnectException: Connection refused: no further information
|
||||
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
|
||||
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:715)
|
||||
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-06-25 13:37:09 [reactor-http-nio-15] INFO d.c.b.a.s.services.StatusUpdater - Couldn't retrieve status for Instance(id=08432fb0b14f, version=153, registration=Registration(name=RuoYi-Vue-Plus, managementUrl=http://192.168.5.200:8033/actuator, healthUrl=http://192.168.5.200:8033/actuator/health, serviceUrl=http://192.168.5.200:8033/, source=http-api), registered=true, statusInfo=StatusInfo(status=UP, details={db={status=UP, details={database=MySQL, validationQuery=isValid()}}, diskSpace={status=UP, details={total=974330859520, free=769874894848, threshold=10485760, exists=true}}, ping={status=UP}, redis={status=UP, details={version=3.0.503}}}), statusTimestamp=2025-06-25T02:36:36.224Z, info=Info(values={}), endpoints=Endpoints(endpoints={caches=Endpoint(id=caches, url=http://192.168.5.200:8033/actuator/caches), loggers=Endpoint(id=loggers, url=http://192.168.5.200:8033/actuator/loggers), logfile=Endpoint(id=logfile, url=http://192.168.5.200:8033/actuator/logfile), health=Endpoint(id=health, url=http://192.168.5.200:8033/actuator/health), env=Endpoint(id=env, url=http://192.168.5.200:8033/actuator/env), heapdump=Endpoint(id=heapdump, url=http://192.168.5.200:8033/actuator/heapdump), mappings=Endpoint(id=mappings, url=http://192.168.5.200:8033/actuator/mappings), scheduledtasks=Endpoint(id=scheduledtasks, url=http://192.168.5.200:8033/actuator/scheduledtasks), startup=Endpoint(id=startup, url=http://192.168.5.200:8033/actuator/startup), configprops=Endpoint(id=configprops, url=http://192.168.5.200:8033/actuator/configprops), beans=Endpoint(id=beans, url=http://192.168.5.200:8033/actuator/beans), threaddump=Endpoint(id=threaddump, url=http://192.168.5.200:8033/actuator/threaddump), metrics=Endpoint(id=metrics, url=http://192.168.5.200:8033/actuator/metrics), conditions=Endpoint(id=conditions, url=http://192.168.5.200:8033/actuator/conditions), info=Endpoint(id=info, url=http://192.168.5.200:8033/actuator/info)}), buildVersion=null, tags=Tags(values={}))
|
||||
org.springframework.web.reactive.function.client.WebClientRequestException: Connection refused: no further information: /192.168.5.200:8033; nested exception is io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
|
||||
Error has been observed at the following site(s):
|
||||
*__checkpoint ⇢ Request to GET health [DefaultWebClient]
|
||||
Original Stack Trace:
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
at reactor.core.publisher.MonoErrorSupplied.subscribe(MonoErrorSupplied.java:55)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93)
|
||||
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:204)
|
||||
at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.whenError(FluxRetryWhen.java:225)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onError(FluxRetryWhen.java:274)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:415)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onNext(FluxConcatMap.java:251)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
|
||||
at reactor.core.publisher.EmitterProcessor.drain(EmitterProcessor.java:537)
|
||||
at reactor.core.publisher.EmitterProcessor.tryEmitNext(EmitterProcessor.java:343)
|
||||
at reactor.core.publisher.SinkManySerialized.tryEmitNext(SinkManySerialized.java:100)
|
||||
at reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:27)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:190)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect$ClientTransportSubscriber.onError(HttpClientConnect.java:311)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onError(DefaultPooledConnectionProvider.java:160)
|
||||
at reactor.netty.internal.shaded.reactor.pool.AbstractPool$Borrower.fail(AbstractPool.java:475)
|
||||
at reactor.netty.internal.shaded.reactor.pool.SimpleDequePool.lambda$drainLoop$9(SimpleDequePool.java:431)
|
||||
at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onError(FluxDoOnEach.java:186)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnectionAllocator$PooledConnectionInitializer.onError(DefaultPooledConnectionProvider.java:558)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:192)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:259)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106)
|
||||
at reactor.core.publisher.Operators.error(Operators.java:198)
|
||||
at reactor.core.publisher.MonoError.subscribe(MonoError.java:53)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.tryFailure(TransportConnector.java:580)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.setFailure(TransportConnector.java:534)
|
||||
at reactor.netty.transport.TransportConnector.lambda$doConnect$7(TransportConnector.java:265)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
|
||||
at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
|
||||
at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)
|
||||
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:321)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:337)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
Caused by: java.net.ConnectException: Connection refused: no further information
|
||||
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
|
||||
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:715)
|
||||
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-06-25 13:37:09 [reactor-http-nio-15] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[OFFLINE]
|
||||
2025-06-25 13:37:28 [reactor-http-nio-2] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
2025-06-25 13:39:09 [reactor-http-nio-4] INFO d.c.b.a.s.services.StatusUpdater - Couldn't retrieve status for Instance(id=08432fb0b14f, version=156, registration=Registration(name=RuoYi-Vue-Plus, managementUrl=http://192.168.5.200:8033/actuator, healthUrl=http://192.168.5.200:8033/actuator/health, serviceUrl=http://192.168.5.200:8033/, source=http-api), registered=true, statusInfo=StatusInfo(status=UP, details={db={status=UP, details={database=MySQL, validationQuery=isValid()}}, diskSpace={status=UP, details={total=974330859520, free=769808678912, threshold=10485760, exists=true}}, ping={status=UP}, redis={status=UP, details={version=3.0.503}}}), statusTimestamp=2025-06-25T05:37:28.505Z, info=Info(values={}), endpoints=Endpoints(endpoints={caches=Endpoint(id=caches, url=http://192.168.5.200:8033/actuator/caches), loggers=Endpoint(id=loggers, url=http://192.168.5.200:8033/actuator/loggers), logfile=Endpoint(id=logfile, url=http://192.168.5.200:8033/actuator/logfile), health=Endpoint(id=health, url=http://192.168.5.200:8033/actuator/health), env=Endpoint(id=env, url=http://192.168.5.200:8033/actuator/env), heapdump=Endpoint(id=heapdump, url=http://192.168.5.200:8033/actuator/heapdump), scheduledtasks=Endpoint(id=scheduledtasks, url=http://192.168.5.200:8033/actuator/scheduledtasks), mappings=Endpoint(id=mappings, url=http://192.168.5.200:8033/actuator/mappings), startup=Endpoint(id=startup, url=http://192.168.5.200:8033/actuator/startup), beans=Endpoint(id=beans, url=http://192.168.5.200:8033/actuator/beans), configprops=Endpoint(id=configprops, url=http://192.168.5.200:8033/actuator/configprops), threaddump=Endpoint(id=threaddump, url=http://192.168.5.200:8033/actuator/threaddump), metrics=Endpoint(id=metrics, url=http://192.168.5.200:8033/actuator/metrics), conditions=Endpoint(id=conditions, url=http://192.168.5.200:8033/actuator/conditions), info=Endpoint(id=info, url=http://192.168.5.200:8033/actuator/info)}), buildVersion=null, tags=Tags(values={}))
|
||||
org.springframework.web.reactive.function.client.WebClientRequestException: Connection refused: no further information: /192.168.5.200:8033; nested exception is io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
|
||||
Error has been observed at the following site(s):
|
||||
*__checkpoint ⇢ Request to GET health [DefaultWebClient]
|
||||
Original Stack Trace:
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
at reactor.core.publisher.MonoErrorSupplied.subscribe(MonoErrorSupplied.java:55)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93)
|
||||
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:204)
|
||||
at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.whenError(FluxRetryWhen.java:225)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onError(FluxRetryWhen.java:274)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:415)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onNext(FluxConcatMap.java:251)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
|
||||
at reactor.core.publisher.EmitterProcessor.drain(EmitterProcessor.java:537)
|
||||
at reactor.core.publisher.EmitterProcessor.tryEmitNext(EmitterProcessor.java:343)
|
||||
at reactor.core.publisher.SinkManySerialized.tryEmitNext(SinkManySerialized.java:100)
|
||||
at reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:27)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:190)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect$ClientTransportSubscriber.onError(HttpClientConnect.java:311)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onError(DefaultPooledConnectionProvider.java:160)
|
||||
at reactor.netty.internal.shaded.reactor.pool.AbstractPool$Borrower.fail(AbstractPool.java:475)
|
||||
at reactor.netty.internal.shaded.reactor.pool.SimpleDequePool.lambda$drainLoop$9(SimpleDequePool.java:431)
|
||||
at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onError(FluxDoOnEach.java:186)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnectionAllocator$PooledConnectionInitializer.onError(DefaultPooledConnectionProvider.java:558)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:192)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:259)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106)
|
||||
at reactor.core.publisher.Operators.error(Operators.java:198)
|
||||
at reactor.core.publisher.MonoError.subscribe(MonoError.java:53)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.tryFailure(TransportConnector.java:580)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.setFailure(TransportConnector.java:534)
|
||||
at reactor.netty.transport.TransportConnector.lambda$doConnect$7(TransportConnector.java:265)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
|
||||
at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
|
||||
at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)
|
||||
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:321)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:337)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
Caused by: java.net.ConnectException: Connection refused: no further information
|
||||
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
|
||||
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:715)
|
||||
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-06-25 13:39:09 [reactor-http-nio-3] WARN d.c.b.a.server.services.InfoUpdater - Couldn't retrieve info for Instance(id=08432fb0b14f, version=156, registration=Registration(name=RuoYi-Vue-Plus, managementUrl=http://192.168.5.200:8033/actuator, healthUrl=http://192.168.5.200:8033/actuator/health, serviceUrl=http://192.168.5.200:8033/, source=http-api), registered=true, statusInfo=StatusInfo(status=UP, details={db={status=UP, details={database=MySQL, validationQuery=isValid()}}, diskSpace={status=UP, details={total=974330859520, free=769808678912, threshold=10485760, exists=true}}, ping={status=UP}, redis={status=UP, details={version=3.0.503}}}), statusTimestamp=2025-06-25T05:37:28.505Z, info=Info(values={}), endpoints=Endpoints(endpoints={caches=Endpoint(id=caches, url=http://192.168.5.200:8033/actuator/caches), loggers=Endpoint(id=loggers, url=http://192.168.5.200:8033/actuator/loggers), logfile=Endpoint(id=logfile, url=http://192.168.5.200:8033/actuator/logfile), health=Endpoint(id=health, url=http://192.168.5.200:8033/actuator/health), env=Endpoint(id=env, url=http://192.168.5.200:8033/actuator/env), heapdump=Endpoint(id=heapdump, url=http://192.168.5.200:8033/actuator/heapdump), scheduledtasks=Endpoint(id=scheduledtasks, url=http://192.168.5.200:8033/actuator/scheduledtasks), mappings=Endpoint(id=mappings, url=http://192.168.5.200:8033/actuator/mappings), startup=Endpoint(id=startup, url=http://192.168.5.200:8033/actuator/startup), beans=Endpoint(id=beans, url=http://192.168.5.200:8033/actuator/beans), configprops=Endpoint(id=configprops, url=http://192.168.5.200:8033/actuator/configprops), threaddump=Endpoint(id=threaddump, url=http://192.168.5.200:8033/actuator/threaddump), metrics=Endpoint(id=metrics, url=http://192.168.5.200:8033/actuator/metrics), conditions=Endpoint(id=conditions, url=http://192.168.5.200:8033/actuator/conditions), info=Endpoint(id=info, url=http://192.168.5.200:8033/actuator/info)}), buildVersion=null, tags=Tags(values={}))
|
||||
org.springframework.web.reactive.function.client.WebClientRequestException: Connection refused: no further information: /192.168.5.200:8033; nested exception is io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
|
||||
Error has been observed at the following site(s):
|
||||
*__checkpoint ⇢ Request to GET info [DefaultWebClient]
|
||||
Original Stack Trace:
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
at reactor.core.publisher.MonoErrorSupplied.subscribe(MonoErrorSupplied.java:55)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93)
|
||||
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:204)
|
||||
at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.whenError(FluxRetryWhen.java:225)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onError(FluxRetryWhen.java:274)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:415)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onNext(FluxConcatMap.java:251)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
|
||||
at reactor.core.publisher.EmitterProcessor.drain(EmitterProcessor.java:537)
|
||||
at reactor.core.publisher.EmitterProcessor.tryEmitNext(EmitterProcessor.java:343)
|
||||
at reactor.core.publisher.SinkManySerialized.tryEmitNext(SinkManySerialized.java:100)
|
||||
at reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:27)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:190)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect$ClientTransportSubscriber.onError(HttpClientConnect.java:311)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onError(DefaultPooledConnectionProvider.java:160)
|
||||
at reactor.netty.internal.shaded.reactor.pool.AbstractPool$Borrower.fail(AbstractPool.java:475)
|
||||
at reactor.netty.internal.shaded.reactor.pool.SimpleDequePool.lambda$drainLoop$9(SimpleDequePool.java:431)
|
||||
at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onError(FluxDoOnEach.java:186)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnectionAllocator$PooledConnectionInitializer.onError(DefaultPooledConnectionProvider.java:558)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:192)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:259)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106)
|
||||
at reactor.core.publisher.Operators.error(Operators.java:198)
|
||||
at reactor.core.publisher.MonoError.subscribe(MonoError.java:53)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.tryFailure(TransportConnector.java:580)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.setFailure(TransportConnector.java:534)
|
||||
at reactor.netty.transport.TransportConnector.lambda$doConnect$7(TransportConnector.java:265)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
|
||||
at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
|
||||
at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)
|
||||
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:321)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:337)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
Caused by: java.net.ConnectException: Connection refused: no further information
|
||||
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
|
||||
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:715)
|
||||
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-06-25 13:39:09 [reactor-http-nio-4] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[OFFLINE]
|
||||
2025-06-25 13:39:28 [reactor-http-nio-7] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
2025-06-25 13:44:59 [reactor-http-nio-8] INFO d.c.b.a.s.services.StatusUpdater - Couldn't retrieve status for Instance(id=08432fb0b14f, version=159, registration=Registration(name=RuoYi-Vue-Plus, managementUrl=http://192.168.5.200:8033/actuator, healthUrl=http://192.168.5.200:8033/actuator/health, serviceUrl=http://192.168.5.200:8033/, source=http-api), registered=true, statusInfo=StatusInfo(status=UP, details={db={status=UP, details={database=MySQL, validationQuery=isValid()}}, diskSpace={status=UP, details={total=974330859520, free=769808269312, threshold=10485760, exists=true}}, ping={status=UP}, redis={status=UP, details={version=3.0.503}}}), statusTimestamp=2025-06-25T05:39:28.313Z, info=Info(values={}), endpoints=Endpoints(endpoints={caches=Endpoint(id=caches, url=http://192.168.5.200:8033/actuator/caches), loggers=Endpoint(id=loggers, url=http://192.168.5.200:8033/actuator/loggers), logfile=Endpoint(id=logfile, url=http://192.168.5.200:8033/actuator/logfile), health=Endpoint(id=health, url=http://192.168.5.200:8033/actuator/health), env=Endpoint(id=env, url=http://192.168.5.200:8033/actuator/env), heapdump=Endpoint(id=heapdump, url=http://192.168.5.200:8033/actuator/heapdump), mappings=Endpoint(id=mappings, url=http://192.168.5.200:8033/actuator/mappings), scheduledtasks=Endpoint(id=scheduledtasks, url=http://192.168.5.200:8033/actuator/scheduledtasks), startup=Endpoint(id=startup, url=http://192.168.5.200:8033/actuator/startup), configprops=Endpoint(id=configprops, url=http://192.168.5.200:8033/actuator/configprops), beans=Endpoint(id=beans, url=http://192.168.5.200:8033/actuator/beans), threaddump=Endpoint(id=threaddump, url=http://192.168.5.200:8033/actuator/threaddump), metrics=Endpoint(id=metrics, url=http://192.168.5.200:8033/actuator/metrics), conditions=Endpoint(id=conditions, url=http://192.168.5.200:8033/actuator/conditions), info=Endpoint(id=info, url=http://192.168.5.200:8033/actuator/info)}), buildVersion=null, tags=Tags(values={}))
|
||||
org.springframework.web.reactive.function.client.WebClientRequestException: Connection refused: no further information: /192.168.5.200:8033; nested exception is io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
|
||||
Error has been observed at the following site(s):
|
||||
*__checkpoint ⇢ Request to GET health [DefaultWebClient]
|
||||
Original Stack Trace:
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
at reactor.core.publisher.MonoErrorSupplied.subscribe(MonoErrorSupplied.java:55)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93)
|
||||
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:204)
|
||||
at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.whenError(FluxRetryWhen.java:225)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onError(FluxRetryWhen.java:274)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:415)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onNext(FluxConcatMap.java:251)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
|
||||
at reactor.core.publisher.EmitterProcessor.drain(EmitterProcessor.java:537)
|
||||
at reactor.core.publisher.EmitterProcessor.tryEmitNext(EmitterProcessor.java:343)
|
||||
at reactor.core.publisher.SinkManySerialized.tryEmitNext(SinkManySerialized.java:100)
|
||||
at reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:27)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:190)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect$ClientTransportSubscriber.onError(HttpClientConnect.java:311)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onError(DefaultPooledConnectionProvider.java:160)
|
||||
at reactor.netty.internal.shaded.reactor.pool.AbstractPool$Borrower.fail(AbstractPool.java:475)
|
||||
at reactor.netty.internal.shaded.reactor.pool.SimpleDequePool.lambda$drainLoop$9(SimpleDequePool.java:431)
|
||||
at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onError(FluxDoOnEach.java:186)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnectionAllocator$PooledConnectionInitializer.onError(DefaultPooledConnectionProvider.java:558)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:192)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:259)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106)
|
||||
at reactor.core.publisher.Operators.error(Operators.java:198)
|
||||
at reactor.core.publisher.MonoError.subscribe(MonoError.java:53)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.tryFailure(TransportConnector.java:580)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.setFailure(TransportConnector.java:534)
|
||||
at reactor.netty.transport.TransportConnector.lambda$doConnect$7(TransportConnector.java:265)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
|
||||
at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
|
||||
at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)
|
||||
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:321)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:337)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
Caused by: java.net.ConnectException: Connection refused: no further information
|
||||
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
|
||||
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:715)
|
||||
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-06-25 13:44:59 [reactor-http-nio-8] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[OFFLINE]
|
||||
2025-06-25 13:46:15 [reactor-http-nio-12] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
2025-06-25 14:28:49 [reactor-http-nio-16] INFO d.c.b.a.s.services.StatusUpdater - Couldn't retrieve status for Instance(id=08432fb0b14f, version=162, registration=Registration(name=RuoYi-Vue-Plus, managementUrl=http://192.168.5.200:8033/actuator, healthUrl=http://192.168.5.200:8033/actuator/health, serviceUrl=http://192.168.5.200:8033/, source=http-api), registered=true, statusInfo=StatusInfo(status=UP, details={db={status=UP, details={database=MySQL, validationQuery=isValid()}}, diskSpace={status=UP, details={total=974330859520, free=769808195584, threshold=10485760, exists=true}}, ping={status=UP}, redis={status=UP, details={version=3.0.503}}}), statusTimestamp=2025-06-25T05:46:15.261Z, info=Info(values={}), endpoints=Endpoints(endpoints={caches=Endpoint(id=caches, url=http://192.168.5.200:8033/actuator/caches), loggers=Endpoint(id=loggers, url=http://192.168.5.200:8033/actuator/loggers), logfile=Endpoint(id=logfile, url=http://192.168.5.200:8033/actuator/logfile), health=Endpoint(id=health, url=http://192.168.5.200:8033/actuator/health), env=Endpoint(id=env, url=http://192.168.5.200:8033/actuator/env), heapdump=Endpoint(id=heapdump, url=http://192.168.5.200:8033/actuator/heapdump), scheduledtasks=Endpoint(id=scheduledtasks, url=http://192.168.5.200:8033/actuator/scheduledtasks), mappings=Endpoint(id=mappings, url=http://192.168.5.200:8033/actuator/mappings), startup=Endpoint(id=startup, url=http://192.168.5.200:8033/actuator/startup), beans=Endpoint(id=beans, url=http://192.168.5.200:8033/actuator/beans), configprops=Endpoint(id=configprops, url=http://192.168.5.200:8033/actuator/configprops), threaddump=Endpoint(id=threaddump, url=http://192.168.5.200:8033/actuator/threaddump), metrics=Endpoint(id=metrics, url=http://192.168.5.200:8033/actuator/metrics), conditions=Endpoint(id=conditions, url=http://192.168.5.200:8033/actuator/conditions), info=Endpoint(id=info, url=http://192.168.5.200:8033/actuator/info)}), buildVersion=null, tags=Tags(values={}))
|
||||
org.springframework.web.reactive.function.client.WebClientRequestException: Connection refused: no further information: /192.168.5.200:8033; nested exception is io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
|
||||
Error has been observed at the following site(s):
|
||||
*__checkpoint ⇢ Request to GET health [DefaultWebClient]
|
||||
Original Stack Trace:
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
at reactor.core.publisher.MonoErrorSupplied.subscribe(MonoErrorSupplied.java:55)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93)
|
||||
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:204)
|
||||
at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.whenError(FluxRetryWhen.java:225)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onError(FluxRetryWhen.java:274)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:415)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onNext(FluxConcatMap.java:251)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
|
||||
at reactor.core.publisher.EmitterProcessor.drain(EmitterProcessor.java:537)
|
||||
at reactor.core.publisher.EmitterProcessor.tryEmitNext(EmitterProcessor.java:343)
|
||||
at reactor.core.publisher.SinkManySerialized.tryEmitNext(SinkManySerialized.java:100)
|
||||
at reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:27)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:190)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect$ClientTransportSubscriber.onError(HttpClientConnect.java:311)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onError(DefaultPooledConnectionProvider.java:160)
|
||||
at reactor.netty.internal.shaded.reactor.pool.AbstractPool$Borrower.fail(AbstractPool.java:475)
|
||||
at reactor.netty.internal.shaded.reactor.pool.SimpleDequePool.lambda$drainLoop$9(SimpleDequePool.java:431)
|
||||
at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onError(FluxDoOnEach.java:186)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnectionAllocator$PooledConnectionInitializer.onError(DefaultPooledConnectionProvider.java:558)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:192)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:259)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106)
|
||||
at reactor.core.publisher.Operators.error(Operators.java:198)
|
||||
at reactor.core.publisher.MonoError.subscribe(MonoError.java:53)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.tryFailure(TransportConnector.java:580)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.setFailure(TransportConnector.java:534)
|
||||
at reactor.netty.transport.TransportConnector.lambda$doConnect$7(TransportConnector.java:265)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
|
||||
at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
|
||||
at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)
|
||||
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:321)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:337)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
Caused by: java.net.ConnectException: Connection refused: no further information
|
||||
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
|
||||
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:715)
|
||||
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-06-25 14:28:49 [reactor-http-nio-16] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[OFFLINE]
|
||||
2025-06-25 14:29:20 [reactor-http-nio-2] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
2025-06-25 14:35:29 [reactor-http-nio-4] INFO d.c.b.a.s.services.StatusUpdater - Couldn't retrieve status for Instance(id=08432fb0b14f, version=165, registration=Registration(name=RuoYi-Vue-Plus, managementUrl=http://192.168.5.200:8033/actuator, healthUrl=http://192.168.5.200:8033/actuator/health, serviceUrl=http://192.168.5.200:8033/, source=http-api), registered=true, statusInfo=StatusInfo(status=UP, details={db={status=UP, details={database=MySQL, validationQuery=isValid()}}, diskSpace={status=UP, details={total=974330859520, free=769806860288, threshold=10485760, exists=true}}, ping={status=UP}, redis={status=UP, details={version=3.0.503}}}), statusTimestamp=2025-06-25T06:29:20.917Z, info=Info(values={}), endpoints=Endpoints(endpoints={caches=Endpoint(id=caches, url=http://192.168.5.200:8033/actuator/caches), loggers=Endpoint(id=loggers, url=http://192.168.5.200:8033/actuator/loggers), logfile=Endpoint(id=logfile, url=http://192.168.5.200:8033/actuator/logfile), health=Endpoint(id=health, url=http://192.168.5.200:8033/actuator/health), env=Endpoint(id=env, url=http://192.168.5.200:8033/actuator/env), heapdump=Endpoint(id=heapdump, url=http://192.168.5.200:8033/actuator/heapdump), mappings=Endpoint(id=mappings, url=http://192.168.5.200:8033/actuator/mappings), scheduledtasks=Endpoint(id=scheduledtasks, url=http://192.168.5.200:8033/actuator/scheduledtasks), startup=Endpoint(id=startup, url=http://192.168.5.200:8033/actuator/startup), configprops=Endpoint(id=configprops, url=http://192.168.5.200:8033/actuator/configprops), beans=Endpoint(id=beans, url=http://192.168.5.200:8033/actuator/beans), threaddump=Endpoint(id=threaddump, url=http://192.168.5.200:8033/actuator/threaddump), metrics=Endpoint(id=metrics, url=http://192.168.5.200:8033/actuator/metrics), conditions=Endpoint(id=conditions, url=http://192.168.5.200:8033/actuator/conditions), info=Endpoint(id=info, url=http://192.168.5.200:8033/actuator/info)}), buildVersion=null, tags=Tags(values={}))
|
||||
org.springframework.web.reactive.function.client.WebClientRequestException: Connection refused: no further information: /192.168.5.200:8033; nested exception is io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
|
||||
Error has been observed at the following site(s):
|
||||
*__checkpoint ⇢ Request to GET health [DefaultWebClient]
|
||||
Original Stack Trace:
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
at reactor.core.publisher.MonoErrorSupplied.subscribe(MonoErrorSupplied.java:55)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93)
|
||||
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:204)
|
||||
at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.whenError(FluxRetryWhen.java:225)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onError(FluxRetryWhen.java:274)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:415)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onNext(FluxConcatMap.java:251)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
|
||||
at reactor.core.publisher.EmitterProcessor.drain(EmitterProcessor.java:537)
|
||||
at reactor.core.publisher.EmitterProcessor.tryEmitNext(EmitterProcessor.java:343)
|
||||
at reactor.core.publisher.SinkManySerialized.tryEmitNext(SinkManySerialized.java:100)
|
||||
at reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:27)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:190)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect$ClientTransportSubscriber.onError(HttpClientConnect.java:311)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onError(DefaultPooledConnectionProvider.java:160)
|
||||
at reactor.netty.internal.shaded.reactor.pool.AbstractPool$Borrower.fail(AbstractPool.java:475)
|
||||
at reactor.netty.internal.shaded.reactor.pool.SimpleDequePool.lambda$drainLoop$9(SimpleDequePool.java:431)
|
||||
at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onError(FluxDoOnEach.java:186)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnectionAllocator$PooledConnectionInitializer.onError(DefaultPooledConnectionProvider.java:558)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:192)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:259)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106)
|
||||
at reactor.core.publisher.Operators.error(Operators.java:198)
|
||||
at reactor.core.publisher.MonoError.subscribe(MonoError.java:53)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.tryFailure(TransportConnector.java:580)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.setFailure(TransportConnector.java:534)
|
||||
at reactor.netty.transport.TransportConnector.lambda$doConnect$7(TransportConnector.java:265)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
|
||||
at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
|
||||
at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)
|
||||
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:321)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:337)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
Caused by: java.net.ConnectException: Connection refused: no further information
|
||||
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
|
||||
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:715)
|
||||
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-06-25 14:35:29 [reactor-http-nio-4] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[OFFLINE]
|
||||
2025-06-25 14:35:44 [reactor-http-nio-5] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
2025-06-25 14:37:59 [reactor-http-nio-6] INFO d.c.b.a.s.services.StatusUpdater - Couldn't retrieve status for Instance(id=08432fb0b14f, version=168, registration=Registration(name=RuoYi-Vue-Plus, managementUrl=http://192.168.5.200:8033/actuator, healthUrl=http://192.168.5.200:8033/actuator/health, serviceUrl=http://192.168.5.200:8033/, source=http-api), registered=true, statusInfo=StatusInfo(status=UP, details={db={status=UP, details={database=MySQL, validationQuery=isValid()}}, diskSpace={status=UP, details={total=974330859520, free=769806716928, threshold=10485760, exists=true}}, ping={status=UP}, redis={status=UP, details={version=3.0.503}}}), statusTimestamp=2025-06-25T06:35:44.484Z, info=Info(values={}), endpoints=Endpoints(endpoints={caches=Endpoint(id=caches, url=http://192.168.5.200:8033/actuator/caches), loggers=Endpoint(id=loggers, url=http://192.168.5.200:8033/actuator/loggers), logfile=Endpoint(id=logfile, url=http://192.168.5.200:8033/actuator/logfile), health=Endpoint(id=health, url=http://192.168.5.200:8033/actuator/health), env=Endpoint(id=env, url=http://192.168.5.200:8033/actuator/env), heapdump=Endpoint(id=heapdump, url=http://192.168.5.200:8033/actuator/heapdump), scheduledtasks=Endpoint(id=scheduledtasks, url=http://192.168.5.200:8033/actuator/scheduledtasks), mappings=Endpoint(id=mappings, url=http://192.168.5.200:8033/actuator/mappings), startup=Endpoint(id=startup, url=http://192.168.5.200:8033/actuator/startup), beans=Endpoint(id=beans, url=http://192.168.5.200:8033/actuator/beans), configprops=Endpoint(id=configprops, url=http://192.168.5.200:8033/actuator/configprops), threaddump=Endpoint(id=threaddump, url=http://192.168.5.200:8033/actuator/threaddump), metrics=Endpoint(id=metrics, url=http://192.168.5.200:8033/actuator/metrics), conditions=Endpoint(id=conditions, url=http://192.168.5.200:8033/actuator/conditions), info=Endpoint(id=info, url=http://192.168.5.200:8033/actuator/info)}), buildVersion=null, tags=Tags(values={}))
|
||||
org.springframework.web.reactive.function.client.WebClientRequestException: Connection refused: no further information: /192.168.5.200:8033; nested exception is io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
|
||||
Error has been observed at the following site(s):
|
||||
*__checkpoint ⇢ Request to GET health [DefaultWebClient]
|
||||
Original Stack Trace:
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
at reactor.core.publisher.MonoErrorSupplied.subscribe(MonoErrorSupplied.java:55)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93)
|
||||
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:204)
|
||||
at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.whenError(FluxRetryWhen.java:225)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onError(FluxRetryWhen.java:274)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:415)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onNext(FluxConcatMap.java:251)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
|
||||
at reactor.core.publisher.EmitterProcessor.drain(EmitterProcessor.java:537)
|
||||
at reactor.core.publisher.EmitterProcessor.tryEmitNext(EmitterProcessor.java:343)
|
||||
at reactor.core.publisher.SinkManySerialized.tryEmitNext(SinkManySerialized.java:100)
|
||||
at reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:27)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:190)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect$ClientTransportSubscriber.onError(HttpClientConnect.java:311)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onError(DefaultPooledConnectionProvider.java:160)
|
||||
at reactor.netty.internal.shaded.reactor.pool.AbstractPool$Borrower.fail(AbstractPool.java:475)
|
||||
at reactor.netty.internal.shaded.reactor.pool.SimpleDequePool.lambda$drainLoop$9(SimpleDequePool.java:431)
|
||||
at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onError(FluxDoOnEach.java:186)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnectionAllocator$PooledConnectionInitializer.onError(DefaultPooledConnectionProvider.java:558)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:192)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:259)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106)
|
||||
at reactor.core.publisher.Operators.error(Operators.java:198)
|
||||
at reactor.core.publisher.MonoError.subscribe(MonoError.java:53)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.tryFailure(TransportConnector.java:580)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.setFailure(TransportConnector.java:534)
|
||||
at reactor.netty.transport.TransportConnector.lambda$doConnect$7(TransportConnector.java:265)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
|
||||
at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
|
||||
at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)
|
||||
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:321)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:337)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
Caused by: java.net.ConnectException: Connection refused: no further information
|
||||
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
|
||||
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:715)
|
||||
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-06-25 14:37:59 [reactor-http-nio-6] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[OFFLINE]
|
||||
2025-06-25 14:38:22 [reactor-http-nio-8] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
2025-06-25 15:03:19 [reactor-http-nio-10] INFO d.c.b.a.s.services.StatusUpdater - Couldn't retrieve status for Instance(id=08432fb0b14f, version=171, registration=Registration(name=RuoYi-Vue-Plus, managementUrl=http://192.168.5.200:8033/actuator, healthUrl=http://192.168.5.200:8033/actuator/health, serviceUrl=http://192.168.5.200:8033/, source=http-api), registered=true, statusInfo=StatusInfo(status=UP, details={db={status=UP, details={database=MySQL, validationQuery=isValid()}}, diskSpace={status=UP, details={total=974330859520, free=769806602240, threshold=10485760, exists=true}}, ping={status=UP}, redis={status=UP, details={version=3.0.503}}}), statusTimestamp=2025-06-25T06:38:22.616Z, info=Info(values={}), endpoints=Endpoints(endpoints={caches=Endpoint(id=caches, url=http://192.168.5.200:8033/actuator/caches), loggers=Endpoint(id=loggers, url=http://192.168.5.200:8033/actuator/loggers), logfile=Endpoint(id=logfile, url=http://192.168.5.200:8033/actuator/logfile), health=Endpoint(id=health, url=http://192.168.5.200:8033/actuator/health), env=Endpoint(id=env, url=http://192.168.5.200:8033/actuator/env), heapdump=Endpoint(id=heapdump, url=http://192.168.5.200:8033/actuator/heapdump), mappings=Endpoint(id=mappings, url=http://192.168.5.200:8033/actuator/mappings), scheduledtasks=Endpoint(id=scheduledtasks, url=http://192.168.5.200:8033/actuator/scheduledtasks), startup=Endpoint(id=startup, url=http://192.168.5.200:8033/actuator/startup), configprops=Endpoint(id=configprops, url=http://192.168.5.200:8033/actuator/configprops), beans=Endpoint(id=beans, url=http://192.168.5.200:8033/actuator/beans), threaddump=Endpoint(id=threaddump, url=http://192.168.5.200:8033/actuator/threaddump), metrics=Endpoint(id=metrics, url=http://192.168.5.200:8033/actuator/metrics), conditions=Endpoint(id=conditions, url=http://192.168.5.200:8033/actuator/conditions), info=Endpoint(id=info, url=http://192.168.5.200:8033/actuator/info)}), buildVersion=null, tags=Tags(values={}))
|
||||
org.springframework.web.reactive.function.client.WebClientRequestException: Connection refused: no further information: /192.168.5.200:8033; nested exception is io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
|
||||
Error has been observed at the following site(s):
|
||||
*__checkpoint ⇢ Request to GET health [DefaultWebClient]
|
||||
Original Stack Trace:
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
at reactor.core.publisher.MonoErrorSupplied.subscribe(MonoErrorSupplied.java:55)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93)
|
||||
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:204)
|
||||
at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.whenError(FluxRetryWhen.java:225)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onError(FluxRetryWhen.java:274)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:415)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onNext(FluxConcatMap.java:251)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
|
||||
at reactor.core.publisher.EmitterProcessor.drain(EmitterProcessor.java:537)
|
||||
at reactor.core.publisher.EmitterProcessor.tryEmitNext(EmitterProcessor.java:343)
|
||||
at reactor.core.publisher.SinkManySerialized.tryEmitNext(SinkManySerialized.java:100)
|
||||
at reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:27)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:190)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect$ClientTransportSubscriber.onError(HttpClientConnect.java:311)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onError(DefaultPooledConnectionProvider.java:160)
|
||||
at reactor.netty.internal.shaded.reactor.pool.AbstractPool$Borrower.fail(AbstractPool.java:475)
|
||||
at reactor.netty.internal.shaded.reactor.pool.SimpleDequePool.lambda$drainLoop$9(SimpleDequePool.java:431)
|
||||
at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onError(FluxDoOnEach.java:186)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnectionAllocator$PooledConnectionInitializer.onError(DefaultPooledConnectionProvider.java:558)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:192)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:259)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106)
|
||||
at reactor.core.publisher.Operators.error(Operators.java:198)
|
||||
at reactor.core.publisher.MonoError.subscribe(MonoError.java:53)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.tryFailure(TransportConnector.java:580)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.setFailure(TransportConnector.java:534)
|
||||
at reactor.netty.transport.TransportConnector.lambda$doConnect$7(TransportConnector.java:265)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
|
||||
at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
|
||||
at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)
|
||||
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:321)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:337)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
Caused by: java.net.ConnectException: Connection refused: no further information
|
||||
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
|
||||
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:715)
|
||||
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-06-25 15:03:19 [reactor-http-nio-10] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[OFFLINE]
|
||||
2025-06-25 15:03:35 [reactor-http-nio-11] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
2025-06-25 15:04:49 [reactor-http-nio-12] INFO d.c.b.a.s.services.StatusUpdater - Couldn't retrieve status for Instance(id=08432fb0b14f, version=174, registration=Registration(name=RuoYi-Vue-Plus, managementUrl=http://192.168.5.200:8033/actuator, healthUrl=http://192.168.5.200:8033/actuator/health, serviceUrl=http://192.168.5.200:8033/, source=http-api), registered=true, statusInfo=StatusInfo(status=UP, details={db={status=UP, details={database=MySQL, validationQuery=isValid()}}, diskSpace={status=UP, details={total=974330859520, free=769806303232, threshold=10485760, exists=true}}, ping={status=UP}, redis={status=UP, details={version=3.0.503}}}), statusTimestamp=2025-06-25T07:03:35.765Z, info=Info(values={}), endpoints=Endpoints(endpoints={caches=Endpoint(id=caches, url=http://192.168.5.200:8033/actuator/caches), loggers=Endpoint(id=loggers, url=http://192.168.5.200:8033/actuator/loggers), logfile=Endpoint(id=logfile, url=http://192.168.5.200:8033/actuator/logfile), health=Endpoint(id=health, url=http://192.168.5.200:8033/actuator/health), env=Endpoint(id=env, url=http://192.168.5.200:8033/actuator/env), heapdump=Endpoint(id=heapdump, url=http://192.168.5.200:8033/actuator/heapdump), scheduledtasks=Endpoint(id=scheduledtasks, url=http://192.168.5.200:8033/actuator/scheduledtasks), mappings=Endpoint(id=mappings, url=http://192.168.5.200:8033/actuator/mappings), startup=Endpoint(id=startup, url=http://192.168.5.200:8033/actuator/startup), beans=Endpoint(id=beans, url=http://192.168.5.200:8033/actuator/beans), configprops=Endpoint(id=configprops, url=http://192.168.5.200:8033/actuator/configprops), threaddump=Endpoint(id=threaddump, url=http://192.168.5.200:8033/actuator/threaddump), metrics=Endpoint(id=metrics, url=http://192.168.5.200:8033/actuator/metrics), conditions=Endpoint(id=conditions, url=http://192.168.5.200:8033/actuator/conditions), info=Endpoint(id=info, url=http://192.168.5.200:8033/actuator/info)}), buildVersion=null, tags=Tags(values={}))
|
||||
org.springframework.web.reactive.function.client.WebClientRequestException: Connection refused: no further information: /192.168.5.200:8033; nested exception is io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
|
||||
Error has been observed at the following site(s):
|
||||
*__checkpoint ⇢ Request to GET health [DefaultWebClient]
|
||||
Original Stack Trace:
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
at reactor.core.publisher.MonoErrorSupplied.subscribe(MonoErrorSupplied.java:55)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93)
|
||||
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:204)
|
||||
at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.whenError(FluxRetryWhen.java:225)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onError(FluxRetryWhen.java:274)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:415)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onNext(FluxConcatMap.java:251)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
|
||||
at reactor.core.publisher.EmitterProcessor.drain(EmitterProcessor.java:537)
|
||||
at reactor.core.publisher.EmitterProcessor.tryEmitNext(EmitterProcessor.java:343)
|
||||
at reactor.core.publisher.SinkManySerialized.tryEmitNext(SinkManySerialized.java:100)
|
||||
at reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:27)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:190)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect$ClientTransportSubscriber.onError(HttpClientConnect.java:311)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onError(DefaultPooledConnectionProvider.java:160)
|
||||
at reactor.netty.internal.shaded.reactor.pool.AbstractPool$Borrower.fail(AbstractPool.java:475)
|
||||
at reactor.netty.internal.shaded.reactor.pool.SimpleDequePool.lambda$drainLoop$9(SimpleDequePool.java:431)
|
||||
at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onError(FluxDoOnEach.java:186)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnectionAllocator$PooledConnectionInitializer.onError(DefaultPooledConnectionProvider.java:558)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:192)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:259)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106)
|
||||
at reactor.core.publisher.Operators.error(Operators.java:198)
|
||||
at reactor.core.publisher.MonoError.subscribe(MonoError.java:53)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.tryFailure(TransportConnector.java:580)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.setFailure(TransportConnector.java:534)
|
||||
at reactor.netty.transport.TransportConnector.lambda$doConnect$7(TransportConnector.java:265)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
|
||||
at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
|
||||
at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)
|
||||
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:321)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:337)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
Caused by: java.net.ConnectException: Connection refused: no further information
|
||||
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
|
||||
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:715)
|
||||
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-06-25 15:04:49 [reactor-http-nio-12] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[OFFLINE]
|
||||
2025-06-25 15:05:07 [reactor-http-nio-13] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
2025-06-25 15:09:59 [reactor-http-nio-15] INFO d.c.b.a.s.services.StatusUpdater - Couldn't retrieve status for Instance(id=08432fb0b14f, version=177, registration=Registration(name=RuoYi-Vue-Plus, managementUrl=http://192.168.5.200:8033/actuator, healthUrl=http://192.168.5.200:8033/actuator/health, serviceUrl=http://192.168.5.200:8033/, source=http-api), registered=true, statusInfo=StatusInfo(status=UP, details={db={status=UP, details={database=MySQL, validationQuery=isValid()}}, diskSpace={status=UP, details={total=974330859520, free=769806192640, threshold=10485760, exists=true}}, ping={status=UP}, redis={status=UP, details={version=3.0.503}}}), statusTimestamp=2025-06-25T07:05:07.734Z, info=Info(values={}), endpoints=Endpoints(endpoints={caches=Endpoint(id=caches, url=http://192.168.5.200:8033/actuator/caches), loggers=Endpoint(id=loggers, url=http://192.168.5.200:8033/actuator/loggers), logfile=Endpoint(id=logfile, url=http://192.168.5.200:8033/actuator/logfile), health=Endpoint(id=health, url=http://192.168.5.200:8033/actuator/health), env=Endpoint(id=env, url=http://192.168.5.200:8033/actuator/env), heapdump=Endpoint(id=heapdump, url=http://192.168.5.200:8033/actuator/heapdump), mappings=Endpoint(id=mappings, url=http://192.168.5.200:8033/actuator/mappings), scheduledtasks=Endpoint(id=scheduledtasks, url=http://192.168.5.200:8033/actuator/scheduledtasks), startup=Endpoint(id=startup, url=http://192.168.5.200:8033/actuator/startup), configprops=Endpoint(id=configprops, url=http://192.168.5.200:8033/actuator/configprops), beans=Endpoint(id=beans, url=http://192.168.5.200:8033/actuator/beans), threaddump=Endpoint(id=threaddump, url=http://192.168.5.200:8033/actuator/threaddump), metrics=Endpoint(id=metrics, url=http://192.168.5.200:8033/actuator/metrics), conditions=Endpoint(id=conditions, url=http://192.168.5.200:8033/actuator/conditions), info=Endpoint(id=info, url=http://192.168.5.200:8033/actuator/info)}), buildVersion=null, tags=Tags(values={}))
|
||||
org.springframework.web.reactive.function.client.WebClientRequestException: Connection refused: no further information: /192.168.5.200:8033; nested exception is io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
|
||||
Error has been observed at the following site(s):
|
||||
*__checkpoint ⇢ Request to GET health [DefaultWebClient]
|
||||
Original Stack Trace:
|
||||
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
|
||||
at reactor.core.publisher.MonoErrorSupplied.subscribe(MonoErrorSupplied.java:55)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
|
||||
at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93)
|
||||
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:204)
|
||||
at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.whenError(FluxRetryWhen.java:225)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onError(FluxRetryWhen.java:274)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:415)
|
||||
at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onNext(FluxConcatMap.java:251)
|
||||
at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
|
||||
at reactor.core.publisher.EmitterProcessor.drain(EmitterProcessor.java:537)
|
||||
at reactor.core.publisher.EmitterProcessor.tryEmitNext(EmitterProcessor.java:343)
|
||||
at reactor.core.publisher.SinkManySerialized.tryEmitNext(SinkManySerialized.java:100)
|
||||
at reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:27)
|
||||
at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:190)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect$ClientTransportSubscriber.onError(HttpClientConnect.java:311)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onError(DefaultPooledConnectionProvider.java:160)
|
||||
at reactor.netty.internal.shaded.reactor.pool.AbstractPool$Borrower.fail(AbstractPool.java:475)
|
||||
at reactor.netty.internal.shaded.reactor.pool.SimpleDequePool.lambda$drainLoop$9(SimpleDequePool.java:431)
|
||||
at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onError(FluxDoOnEach.java:186)
|
||||
at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
|
||||
at reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnectionAllocator$PooledConnectionInitializer.onError(DefaultPooledConnectionProvider.java:558)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:192)
|
||||
at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:259)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106)
|
||||
at reactor.core.publisher.Operators.error(Operators.java:198)
|
||||
at reactor.core.publisher.MonoError.subscribe(MonoError.java:53)
|
||||
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
|
||||
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.tryFailure(TransportConnector.java:580)
|
||||
at reactor.netty.transport.TransportConnector$MonoChannelPromise.setFailure(TransportConnector.java:534)
|
||||
at reactor.netty.transport.TransportConnector.lambda$doConnect$7(TransportConnector.java:265)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559)
|
||||
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
|
||||
at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
|
||||
at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)
|
||||
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:321)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:337)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.5.200:8033
|
||||
Caused by: java.net.ConnectException: Connection refused: no further information
|
||||
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
|
||||
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:715)
|
||||
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-06-25 15:09:59 [reactor-http-nio-15] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[OFFLINE]
|
||||
2025-06-25 15:10:05 [reactor-http-nio-16] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
2026-02-13 09:12:26 [reactor-http-nio-10] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[OFFLINE]
|
||||
2026-02-13 09:13:02 [reactor-http-nio-12] INFO c.r.m.admin.notifier.CustomNotifier - Instance Status Change: [RuoYi-Vue-Plus],[08432fb0b14f],[UP]
|
||||
|
||||
@ -1,41 +0,0 @@
|
||||
2025-05-13 08:37:59 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#scheduleThread stop
|
||||
2025-05-13 08:38:00 [xxl-job, admin JobScheduleHelper#ringThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#ringThread stop
|
||||
2025-05-13 08:38:00 [SpringApplicationShutdownHook] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper stop
|
||||
2025-05-13 08:38:00 [xxl-job, admin JobLogReportHelper] INFO c.x.j.a.c.thread.JobLogReportHelper - >>>>>>>>>>> xxl-job, job log report thread stop
|
||||
2025-05-13 08:38:00 [xxl-job, admin JobLosedMonitorHelper] INFO c.x.j.a.c.thread.JobCompleteHelper - >>>>>>>>>>> xxl-job, JobLosedMonitorHelper stop
|
||||
2025-05-13 08:38:00 [xxl-job, admin JobFailMonitorHelper] INFO c.x.j.a.c.t.JobFailMonitorHelper - >>>>>>>>>>> xxl-job, job fail monitor thread stop
|
||||
2025-05-13 08:38:00 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO c.x.j.a.c.thread.JobRegistryHelper - >>>>>>>>>>> xxl-job, job registry monitor thread stop
|
||||
2025-05-13 08:38:00 [SpringApplicationShutdownHook] INFO c.x.j.a.c.t.JobTriggerPoolHelper - >>>>>>>>> xxl-job trigger thread pool shutdown success.
|
||||
2025-05-13 08:38:00 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown initiated...
|
||||
2025-05-13 08:38:00 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown completed.
|
||||
2025-05-13 11:47:33 [main] INFO c.x.job.admin.XxlJobAdminApplication - Starting XxlJobAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 18496 (F:\evo_k3cloud\ruoyi-extend\ruoyi-xxl-job-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-05-13 11:47:33 [main] INFO c.x.job.admin.XxlJobAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-05-13 11:47:35 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9100 (http)
|
||||
2025-05-13 11:47:35 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9100"]
|
||||
2025-05-13 11:47:35 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-05-13 11:47:35 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-05-13 11:47:35 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring embedded WebApplicationContext
|
||||
2025-05-13 11:47:35 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1448 ms
|
||||
2025-05-13 11:47:35 [main] INFO c.x.j.a.c.scheduler.XxlJobScheduler - >>>>>>>>> init xxl-job admin success.
|
||||
2025-05-13 11:47:35 [xxl-job, admin JobFailMonitorHelper] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Starting...
|
||||
2025-05-13 11:47:35 [main] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page template: index
|
||||
2025-05-13 11:47:35 [xxl-job, admin JobFailMonitorHelper] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Start completed.
|
||||
2025-05-13 11:47:36 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-05-13 11:47:36 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9100"]
|
||||
2025-05-13 11:47:36 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-05-13 11:47:36 [main] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-05-13 11:47:36 [main] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-05-13 11:47:36 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9100 (http) with context path '/xxl-job-admin'
|
||||
2025-05-13 11:47:36 [main] INFO c.x.job.admin.XxlJobAdminApplication - Started XxlJobAdminApplication in 2.777 seconds (JVM running for 6.398)
|
||||
2025-05-13 11:47:38 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as cc38f3b5f0d4
|
||||
2025-05-13 11:47:40 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>> init xxl-job admin scheduler success.
|
||||
2025-05-13 11:52:27 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#scheduleThread stop
|
||||
2025-05-13 11:52:28 [xxl-job, admin JobScheduleHelper#ringThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#ringThread stop
|
||||
2025-05-13 11:52:28 [SpringApplicationShutdownHook] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper stop
|
||||
2025-05-13 11:52:28 [xxl-job, admin JobLogReportHelper] INFO c.x.j.a.c.thread.JobLogReportHelper - >>>>>>>>>>> xxl-job, job log report thread stop
|
||||
2025-05-13 11:52:28 [xxl-job, admin JobLosedMonitorHelper] INFO c.x.j.a.c.thread.JobCompleteHelper - >>>>>>>>>>> xxl-job, JobLosedMonitorHelper stop
|
||||
2025-05-13 11:52:28 [xxl-job, admin JobFailMonitorHelper] INFO c.x.j.a.c.t.JobFailMonitorHelper - >>>>>>>>>>> xxl-job, job fail monitor thread stop
|
||||
2025-05-13 11:52:28 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO c.x.j.a.c.thread.JobRegistryHelper - >>>>>>>>>>> xxl-job, job registry monitor thread stop
|
||||
2025-05-13 11:52:28 [SpringApplicationShutdownHook] INFO c.x.j.a.c.t.JobTriggerPoolHelper - >>>>>>>>> xxl-job trigger thread pool shutdown success.
|
||||
2025-05-13 11:52:28 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown initiated...
|
||||
2025-05-13 11:52:28 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown completed.
|
||||
@ -1,64 +0,0 @@
|
||||
2025-05-17 09:51:25 [registrationTask1] WARN d.c.b.a.c.r.ApplicationRegistrator - Failed to register application as Application(name=ruoyi-xxl-job-admin, managementUrl=http://192.168.5.200:9100/xxl-job-admin/actuator, healthUrl=http://192.168.5.200:9100/xxl-job-admin/actuator/health, serviceUrl=http://192.168.5.200:9100/xxl-job-admin) at spring-boot-admin ([http://localhost:9090/admin/instances]): I/O error on POST request for "http://localhost:9090/admin/instances": Read timed out; nested exception is java.net.SocketTimeoutException: Read timed out. Further attempts are logged on DEBUG level
|
||||
2025-05-17 10:43:00 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#scheduleThread stop
|
||||
2025-05-17 10:43:01 [xxl-job, admin JobScheduleHelper#ringThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#ringThread stop
|
||||
2025-05-17 10:43:01 [SpringApplicationShutdownHook] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper stop
|
||||
2025-05-17 10:43:01 [xxl-job, admin JobLogReportHelper] INFO c.x.j.a.c.thread.JobLogReportHelper - >>>>>>>>>>> xxl-job, job log report thread stop
|
||||
2025-05-17 10:43:01 [xxl-job, admin JobLosedMonitorHelper] INFO c.x.j.a.c.thread.JobCompleteHelper - >>>>>>>>>>> xxl-job, JobLosedMonitorHelper stop
|
||||
2025-05-17 10:43:01 [xxl-job, admin JobFailMonitorHelper] INFO c.x.j.a.c.t.JobFailMonitorHelper - >>>>>>>>>>> xxl-job, job fail monitor thread stop
|
||||
2025-05-17 10:43:01 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO c.x.j.a.c.thread.JobRegistryHelper - >>>>>>>>>>> xxl-job, job registry monitor thread stop
|
||||
2025-05-17 10:43:01 [SpringApplicationShutdownHook] INFO c.x.j.a.c.t.JobTriggerPoolHelper - >>>>>>>>> xxl-job trigger thread pool shutdown success.
|
||||
2025-05-17 10:43:01 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown initiated...
|
||||
2025-05-17 10:43:01 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown completed.
|
||||
2025-05-17 10:51:02 [main] INFO c.x.job.admin.XxlJobAdminApplication - Starting XxlJobAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 9792 (F:\evo_k3cloud\ruoyi-extend\ruoyi-xxl-job-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-05-17 10:51:02 [main] INFO c.x.job.admin.XxlJobAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-05-17 10:51:03 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9100 (http)
|
||||
2025-05-17 10:51:03 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9100"]
|
||||
2025-05-17 10:51:03 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-05-17 10:51:03 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-05-17 10:51:03 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring embedded WebApplicationContext
|
||||
2025-05-17 10:51:03 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1372 ms
|
||||
2025-05-17 10:51:04 [main] INFO c.x.j.a.c.scheduler.XxlJobScheduler - >>>>>>>>> init xxl-job admin success.
|
||||
2025-05-17 10:51:04 [xxl-job, admin JobFailMonitorHelper] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Starting...
|
||||
2025-05-17 10:51:04 [main] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page template: index
|
||||
2025-05-17 10:51:04 [xxl-job, admin JobFailMonitorHelper] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Start completed.
|
||||
2025-05-17 10:51:04 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-05-17 10:51:04 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9100"]
|
||||
2025-05-17 10:51:04 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-05-17 10:51:04 [main] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-05-17 10:51:04 [main] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-05-17 10:51:04 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9100 (http) with context path '/xxl-job-admin'
|
||||
2025-05-17 10:51:04 [main] INFO c.x.job.admin.XxlJobAdminApplication - Started XxlJobAdminApplication in 3.007 seconds (JVM running for 4.68)
|
||||
2025-05-17 10:51:05 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as cc38f3b5f0d4
|
||||
2025-05-17 10:51:09 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>> init xxl-job admin scheduler success.
|
||||
2025-05-17 16:03:55 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#scheduleThread stop
|
||||
2025-05-17 16:03:56 [xxl-job, admin JobScheduleHelper#ringThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#ringThread stop
|
||||
2025-05-17 16:03:56 [SpringApplicationShutdownHook] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper stop
|
||||
2025-05-17 16:03:56 [xxl-job, admin JobLogReportHelper] INFO c.x.j.a.c.thread.JobLogReportHelper - >>>>>>>>>>> xxl-job, job log report thread stop
|
||||
2025-05-17 16:03:56 [xxl-job, admin JobLosedMonitorHelper] INFO c.x.j.a.c.thread.JobCompleteHelper - >>>>>>>>>>> xxl-job, JobLosedMonitorHelper stop
|
||||
2025-05-17 16:03:56 [xxl-job, admin JobFailMonitorHelper] INFO c.x.j.a.c.t.JobFailMonitorHelper - >>>>>>>>>>> xxl-job, job fail monitor thread stop
|
||||
2025-05-17 16:03:56 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO c.x.j.a.c.thread.JobRegistryHelper - >>>>>>>>>>> xxl-job, job registry monitor thread stop
|
||||
2025-05-17 16:03:56 [SpringApplicationShutdownHook] INFO c.x.j.a.c.t.JobTriggerPoolHelper - >>>>>>>>> xxl-job trigger thread pool shutdown success.
|
||||
2025-05-17 16:03:56 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown initiated...
|
||||
2025-05-17 16:03:56 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown completed.
|
||||
2025-05-17 16:05:35 [main] INFO c.x.job.admin.XxlJobAdminApplication - Starting XxlJobAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 18872 (F:\evo_k3cloud\ruoyi-extend\ruoyi-xxl-job-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-05-17 16:05:35 [main] INFO c.x.job.admin.XxlJobAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-05-17 16:05:36 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9100 (http)
|
||||
2025-05-17 16:05:36 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9100"]
|
||||
2025-05-17 16:05:36 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-05-17 16:05:36 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-05-17 16:05:36 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring embedded WebApplicationContext
|
||||
2025-05-17 16:05:36 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1274 ms
|
||||
2025-05-17 16:05:37 [main] INFO c.x.j.a.c.scheduler.XxlJobScheduler - >>>>>>>>> init xxl-job admin success.
|
||||
2025-05-17 16:05:37 [xxl-job, admin JobFailMonitorHelper] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Starting...
|
||||
2025-05-17 16:05:37 [main] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page template: index
|
||||
2025-05-17 16:05:37 [xxl-job, admin JobFailMonitorHelper] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Start completed.
|
||||
2025-05-17 16:05:37 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-05-17 16:05:37 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9100"]
|
||||
2025-05-17 16:05:37 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-05-17 16:05:37 [main] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-05-17 16:05:37 [main] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-05-17 16:05:37 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9100 (http) with context path '/xxl-job-admin'
|
||||
2025-05-17 16:05:37 [main] INFO c.x.job.admin.XxlJobAdminApplication - Started XxlJobAdminApplication in 2.965 seconds (JVM running for 3.603)
|
||||
2025-05-17 16:05:39 [registrationTask1] WARN d.c.b.a.c.r.ApplicationRegistrator - Failed to register application as Application(name=ruoyi-xxl-job-admin, managementUrl=http://192.168.5.200:9100/xxl-job-admin/actuator, healthUrl=http://192.168.5.200:9100/xxl-job-admin/actuator/health, serviceUrl=http://192.168.5.200:9100/xxl-job-admin) at spring-boot-admin ([http://localhost:9090/admin/instances]): I/O error on POST request for "http://localhost:9090/admin/instances": Connection refused: connect; nested exception is java.net.ConnectException: Connection refused: connect. Further attempts are logged on DEBUG level
|
||||
2025-05-17 16:05:42 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>> init xxl-job admin scheduler success.
|
||||
2025-05-17 16:05:47 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as cc38f3b5f0d4
|
||||
@ -1,104 +0,0 @@
|
||||
2025-05-20 08:44:16 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#scheduleThread stop
|
||||
2025-05-20 08:44:17 [xxl-job, admin JobScheduleHelper#ringThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#ringThread stop
|
||||
2025-05-20 08:44:17 [SpringApplicationShutdownHook] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper stop
|
||||
2025-05-20 08:44:17 [xxl-job, admin JobLogReportHelper] INFO c.x.j.a.c.thread.JobLogReportHelper - >>>>>>>>>>> xxl-job, job log report thread stop
|
||||
2025-05-20 08:44:17 [xxl-job, admin JobLosedMonitorHelper] INFO c.x.j.a.c.thread.JobCompleteHelper - >>>>>>>>>>> xxl-job, JobLosedMonitorHelper stop
|
||||
2025-05-20 08:44:17 [xxl-job, admin JobFailMonitorHelper] INFO c.x.j.a.c.t.JobFailMonitorHelper - >>>>>>>>>>> xxl-job, job fail monitor thread stop
|
||||
2025-05-20 08:44:17 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO c.x.j.a.c.thread.JobRegistryHelper - >>>>>>>>>>> xxl-job, job registry monitor thread stop
|
||||
2025-05-20 08:44:17 [SpringApplicationShutdownHook] INFO c.x.j.a.c.t.JobTriggerPoolHelper - >>>>>>>>> xxl-job trigger thread pool shutdown success.
|
||||
2025-05-20 08:44:17 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown initiated...
|
||||
2025-05-20 08:44:17 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown completed.
|
||||
2025-05-20 08:52:11 [main] INFO c.x.job.admin.XxlJobAdminApplication - Starting XxlJobAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 29188 (F:\evo_k3cloud\ruoyi-extend\ruoyi-xxl-job-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-05-20 08:52:11 [main] INFO c.x.job.admin.XxlJobAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-05-20 08:52:12 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9100 (http)
|
||||
2025-05-20 08:52:12 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9100"]
|
||||
2025-05-20 08:52:12 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-05-20 08:52:12 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-05-20 08:52:12 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring embedded WebApplicationContext
|
||||
2025-05-20 08:52:12 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 960 ms
|
||||
2025-05-20 08:52:12 [main] INFO c.x.j.a.c.scheduler.XxlJobScheduler - >>>>>>>>> init xxl-job admin success.
|
||||
2025-05-20 08:52:12 [xxl-job, admin JobLogReportHelper] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Starting...
|
||||
2025-05-20 08:52:13 [main] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page template: index
|
||||
2025-05-20 08:52:13 [xxl-job, admin JobLogReportHelper] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Start completed.
|
||||
2025-05-20 08:52:13 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-05-20 08:52:13 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9100"]
|
||||
2025-05-20 08:52:13 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-05-20 08:52:13 [main] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-05-20 08:52:13 [main] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-05-20 08:52:13 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9100 (http) with context path '/xxl-job-admin'
|
||||
2025-05-20 08:52:13 [main] INFO c.x.job.admin.XxlJobAdminApplication - Started XxlJobAdminApplication in 2.537 seconds (JVM running for 3.268)
|
||||
2025-05-20 08:52:13 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as cc38f3b5f0d4
|
||||
2025-05-20 08:52:17 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>> init xxl-job admin scheduler success.
|
||||
2025-05-20 09:03:20 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#scheduleThread stop
|
||||
2025-05-20 09:03:21 [xxl-job, admin JobScheduleHelper#ringThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#ringThread stop
|
||||
2025-05-20 09:03:21 [SpringApplicationShutdownHook] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper stop
|
||||
2025-05-20 09:03:21 [xxl-job, admin JobLogReportHelper] INFO c.x.j.a.c.thread.JobLogReportHelper - >>>>>>>>>>> xxl-job, job log report thread stop
|
||||
2025-05-20 09:03:21 [xxl-job, admin JobLosedMonitorHelper] INFO c.x.j.a.c.thread.JobCompleteHelper - >>>>>>>>>>> xxl-job, JobLosedMonitorHelper stop
|
||||
2025-05-20 09:03:21 [xxl-job, admin JobFailMonitorHelper] INFO c.x.j.a.c.t.JobFailMonitorHelper - >>>>>>>>>>> xxl-job, job fail monitor thread stop
|
||||
2025-05-20 09:03:21 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO c.x.j.a.c.thread.JobRegistryHelper - >>>>>>>>>>> xxl-job, job registry monitor thread stop
|
||||
2025-05-20 09:03:21 [SpringApplicationShutdownHook] INFO c.x.j.a.c.t.JobTriggerPoolHelper - >>>>>>>>> xxl-job trigger thread pool shutdown success.
|
||||
2025-05-20 09:03:21 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown initiated...
|
||||
2025-05-20 09:03:21 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown completed.
|
||||
2025-05-20 10:56:52 [main] INFO c.x.job.admin.XxlJobAdminApplication - Starting XxlJobAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 27040 (F:\evo_k3cloud\ruoyi-extend\ruoyi-xxl-job-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-05-20 10:56:52 [main] INFO c.x.job.admin.XxlJobAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-05-20 10:56:53 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9100 (http)
|
||||
2025-05-20 10:56:53 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9100"]
|
||||
2025-05-20 10:56:53 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-05-20 10:56:53 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-05-20 10:56:53 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring embedded WebApplicationContext
|
||||
2025-05-20 10:56:53 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1198 ms
|
||||
2025-05-20 10:56:54 [main] INFO c.x.j.a.c.scheduler.XxlJobScheduler - >>>>>>>>> init xxl-job admin success.
|
||||
2025-05-20 10:56:54 [xxl-job, admin JobLogReportHelper] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Starting...
|
||||
2025-05-20 10:56:54 [main] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page template: index
|
||||
2025-05-20 10:56:54 [xxl-job, admin JobLogReportHelper] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Start completed.
|
||||
2025-05-20 10:56:54 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-05-20 10:56:54 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9100"]
|
||||
2025-05-20 10:56:54 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-05-20 10:56:54 [main] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-05-20 10:56:54 [main] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-05-20 10:56:54 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9100 (http) with context path '/xxl-job-admin'
|
||||
2025-05-20 10:56:54 [main] INFO c.x.job.admin.XxlJobAdminApplication - Started XxlJobAdminApplication in 2.874 seconds (JVM running for 3.568)
|
||||
2025-05-20 10:56:56 [registrationTask1] WARN d.c.b.a.c.r.ApplicationRegistrator - Failed to register application as Application(name=ruoyi-xxl-job-admin, managementUrl=http://192.168.5.200:9100/xxl-job-admin/actuator, healthUrl=http://192.168.5.200:9100/xxl-job-admin/actuator/health, serviceUrl=http://192.168.5.200:9100/xxl-job-admin) at spring-boot-admin ([http://localhost:9090/admin/instances]): I/O error on POST request for "http://localhost:9090/admin/instances": Connection refused: connect; nested exception is java.net.ConnectException: Connection refused: connect. Further attempts are logged on DEBUG level
|
||||
2025-05-20 10:56:59 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>> init xxl-job admin scheduler success.
|
||||
2025-05-20 10:57:04 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as cc38f3b5f0d4
|
||||
2025-05-20 13:16:37 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#scheduleThread stop
|
||||
2025-05-20 13:16:38 [xxl-job, admin JobScheduleHelper#ringThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#ringThread stop
|
||||
2025-05-20 13:16:38 [SpringApplicationShutdownHook] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper stop
|
||||
2025-05-20 13:16:38 [xxl-job, admin JobLogReportHelper] INFO c.x.j.a.c.thread.JobLogReportHelper - >>>>>>>>>>> xxl-job, job log report thread stop
|
||||
2025-05-20 13:16:38 [xxl-job, admin JobLosedMonitorHelper] INFO c.x.j.a.c.thread.JobCompleteHelper - >>>>>>>>>>> xxl-job, JobLosedMonitorHelper stop
|
||||
2025-05-20 13:16:38 [xxl-job, admin JobFailMonitorHelper] INFO c.x.j.a.c.t.JobFailMonitorHelper - >>>>>>>>>>> xxl-job, job fail monitor thread stop
|
||||
2025-05-20 13:16:38 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO c.x.j.a.c.thread.JobRegistryHelper - >>>>>>>>>>> xxl-job, job registry monitor thread stop
|
||||
2025-05-20 13:16:38 [SpringApplicationShutdownHook] INFO c.x.j.a.c.t.JobTriggerPoolHelper - >>>>>>>>> xxl-job trigger thread pool shutdown success.
|
||||
2025-05-20 13:16:38 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown initiated...
|
||||
2025-05-20 13:16:38 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown completed.
|
||||
2025-05-20 13:21:30 [main] INFO c.x.job.admin.XxlJobAdminApplication - Starting XxlJobAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 10264 (F:\evo_k3cloud\ruoyi-extend\ruoyi-xxl-job-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-05-20 13:21:30 [main] INFO c.x.job.admin.XxlJobAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-05-20 13:21:32 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9100 (http)
|
||||
2025-05-20 13:21:32 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9100"]
|
||||
2025-05-20 13:21:32 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-05-20 13:21:32 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-05-20 13:21:32 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring embedded WebApplicationContext
|
||||
2025-05-20 13:21:32 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1785 ms
|
||||
2025-05-20 13:21:33 [main] INFO c.x.j.a.c.scheduler.XxlJobScheduler - >>>>>>>>> init xxl-job admin success.
|
||||
2025-05-20 13:21:33 [xxl-job, admin JobFailMonitorHelper] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Starting...
|
||||
2025-05-20 13:21:33 [main] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page template: index
|
||||
2025-05-20 13:21:33 [xxl-job, admin JobFailMonitorHelper] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Start completed.
|
||||
2025-05-20 13:21:33 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-05-20 13:21:33 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9100"]
|
||||
2025-05-20 13:21:33 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-05-20 13:21:33 [main] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-05-20 13:21:33 [main] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-05-20 13:21:33 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9100 (http) with context path '/xxl-job-admin'
|
||||
2025-05-20 13:21:33 [main] INFO c.x.job.admin.XxlJobAdminApplication - Started XxlJobAdminApplication in 3.964 seconds (JVM running for 4.877)
|
||||
2025-05-20 13:21:34 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as cc38f3b5f0d4
|
||||
2025-05-20 13:21:38 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>> init xxl-job admin scheduler success.
|
||||
2025-05-20 14:22:50 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#scheduleThread stop
|
||||
2025-05-20 14:22:51 [xxl-job, admin JobScheduleHelper#ringThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#ringThread stop
|
||||
2025-05-20 14:22:51 [SpringApplicationShutdownHook] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper stop
|
||||
2025-05-20 14:22:51 [xxl-job, admin JobLogReportHelper] INFO c.x.j.a.c.thread.JobLogReportHelper - >>>>>>>>>>> xxl-job, job log report thread stop
|
||||
2025-05-20 14:22:51 [xxl-job, admin JobLosedMonitorHelper] INFO c.x.j.a.c.thread.JobCompleteHelper - >>>>>>>>>>> xxl-job, JobLosedMonitorHelper stop
|
||||
2025-05-20 14:22:51 [xxl-job, admin JobFailMonitorHelper] INFO c.x.j.a.c.t.JobFailMonitorHelper - >>>>>>>>>>> xxl-job, job fail monitor thread stop
|
||||
2025-05-20 14:22:51 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO c.x.j.a.c.thread.JobRegistryHelper - >>>>>>>>>>> xxl-job, job registry monitor thread stop
|
||||
2025-05-20 14:22:51 [SpringApplicationShutdownHook] INFO c.x.j.a.c.t.JobTriggerPoolHelper - >>>>>>>>> xxl-job trigger thread pool shutdown success.
|
||||
2025-05-20 14:22:51 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown initiated...
|
||||
2025-05-20 14:22:51 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown completed.
|
||||
@ -1,33 +0,0 @@
|
||||
2025-05-21 08:12:00 [main] INFO c.x.job.admin.XxlJobAdminApplication - Starting XxlJobAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 16020 (F:\evo_k3cloud\ruoyi-extend\ruoyi-xxl-job-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-05-21 08:12:00 [main] INFO c.x.job.admin.XxlJobAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-05-21 08:12:01 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9100 (http)
|
||||
2025-05-21 08:12:01 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9100"]
|
||||
2025-05-21 08:12:01 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-05-21 08:12:01 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-05-21 08:12:01 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring embedded WebApplicationContext
|
||||
2025-05-21 08:12:01 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1285 ms
|
||||
2025-05-21 08:12:02 [main] INFO c.x.j.a.c.scheduler.XxlJobScheduler - >>>>>>>>> init xxl-job admin success.
|
||||
2025-05-21 08:12:02 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Starting...
|
||||
2025-05-21 08:12:02 [main] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page template: index
|
||||
2025-05-21 08:12:02 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Start completed.
|
||||
2025-05-21 08:12:03 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-05-21 08:12:03 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9100"]
|
||||
2025-05-21 08:12:03 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-05-21 08:12:03 [main] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-05-21 08:12:03 [main] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-05-21 08:12:03 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9100 (http) with context path '/xxl-job-admin'
|
||||
2025-05-21 08:12:03 [main] INFO c.x.job.admin.XxlJobAdminApplication - Started XxlJobAdminApplication in 3.008 seconds (JVM running for 4.494)
|
||||
2025-05-21 08:12:05 [registrationTask1] WARN d.c.b.a.c.r.ApplicationRegistrator - Failed to register application as Application(name=ruoyi-xxl-job-admin, managementUrl=http://192.168.5.200:9100/xxl-job-admin/actuator, healthUrl=http://192.168.5.200:9100/xxl-job-admin/actuator/health, serviceUrl=http://192.168.5.200:9100/xxl-job-admin) at spring-boot-admin ([http://localhost:9090/admin/instances]): I/O error on POST request for "http://localhost:9090/admin/instances": Connection refused: connect; nested exception is java.net.ConnectException: Connection refused: connect. Further attempts are logged on DEBUG level
|
||||
2025-05-21 08:12:07 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>> init xxl-job admin scheduler success.
|
||||
2025-05-21 08:12:07 [xxl-job, admin JobScheduleHelper#scheduleThread] WARN c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, schedule misfire, jobId = 15
|
||||
2025-05-21 08:12:13 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as cc38f3b5f0d4
|
||||
2025-05-21 08:45:08 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#scheduleThread stop
|
||||
2025-05-21 08:45:09 [xxl-job, admin JobScheduleHelper#ringThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#ringThread stop
|
||||
2025-05-21 08:45:09 [SpringApplicationShutdownHook] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper stop
|
||||
2025-05-21 08:45:09 [xxl-job, admin JobLogReportHelper] INFO c.x.j.a.c.thread.JobLogReportHelper - >>>>>>>>>>> xxl-job, job log report thread stop
|
||||
2025-05-21 08:45:09 [xxl-job, admin JobLosedMonitorHelper] INFO c.x.j.a.c.thread.JobCompleteHelper - >>>>>>>>>>> xxl-job, JobLosedMonitorHelper stop
|
||||
2025-05-21 08:45:09 [xxl-job, admin JobFailMonitorHelper] INFO c.x.j.a.c.t.JobFailMonitorHelper - >>>>>>>>>>> xxl-job, job fail monitor thread stop
|
||||
2025-05-21 08:45:09 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO c.x.j.a.c.thread.JobRegistryHelper - >>>>>>>>>>> xxl-job, job registry monitor thread stop
|
||||
2025-05-21 08:45:09 [SpringApplicationShutdownHook] INFO c.x.j.a.c.t.JobTriggerPoolHelper - >>>>>>>>> xxl-job trigger thread pool shutdown success.
|
||||
2025-05-21 08:45:09 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown initiated...
|
||||
2025-05-21 08:45:09 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown completed.
|
||||
@ -1,34 +0,0 @@
|
||||
2025-05-22 08:30:54 [main] INFO c.x.job.admin.XxlJobAdminApplication - Starting XxlJobAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 28440 (F:\evo_k3cloud\ruoyi-extend\ruoyi-xxl-job-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-05-22 08:30:54 [main] INFO c.x.job.admin.XxlJobAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-05-22 08:30:55 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9100 (http)
|
||||
2025-05-22 08:30:55 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9100"]
|
||||
2025-05-22 08:30:55 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-05-22 08:30:55 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-05-22 08:30:56 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring embedded WebApplicationContext
|
||||
2025-05-22 08:30:56 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1007 ms
|
||||
2025-05-22 08:30:56 [main] INFO c.x.j.a.c.scheduler.XxlJobScheduler - >>>>>>>>> init xxl-job admin success.
|
||||
2025-05-22 08:30:56 [xxl-job, admin JobLogReportHelper] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Starting...
|
||||
2025-05-22 08:30:56 [main] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page template: index
|
||||
2025-05-22 08:30:56 [xxl-job, admin JobLogReportHelper] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Start completed.
|
||||
2025-05-22 08:30:56 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-05-22 08:30:56 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9100"]
|
||||
2025-05-22 08:30:56 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-05-22 08:30:56 [main] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-05-22 08:30:56 [main] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-05-22 08:30:56 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9100 (http) with context path '/xxl-job-admin'
|
||||
2025-05-22 08:30:56 [main] INFO c.x.job.admin.XxlJobAdminApplication - Started XxlJobAdminApplication in 2.476 seconds (JVM running for 3.139)
|
||||
2025-05-22 08:30:57 [registrationTask1] WARN d.c.b.a.c.r.ApplicationRegistrator - Failed to register application as Application(name=ruoyi-xxl-job-admin, managementUrl=http://192.168.5.200:9100/xxl-job-admin/actuator, healthUrl=http://192.168.5.200:9100/xxl-job-admin/actuator/health, serviceUrl=http://192.168.5.200:9100/xxl-job-admin) at spring-boot-admin ([http://localhost:9090/admin/instances]): I/O error on POST request for "http://localhost:9090/admin/instances": Software caused connection abort: recv failed; nested exception is java.net.SocketException: Software caused connection abort: recv failed. Further attempts are logged on DEBUG level
|
||||
2025-05-22 08:31:01 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>> init xxl-job admin scheduler success.
|
||||
2025-05-22 08:31:01 [xxl-job, admin JobScheduleHelper#scheduleThread] WARN c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, schedule misfire, jobId = 15
|
||||
2025-05-22 08:31:01 [xxl-job, admin JobScheduleHelper#scheduleThread] WARN c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, schedule misfire, jobId = 16
|
||||
2025-05-22 08:31:07 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as cc38f3b5f0d4
|
||||
2025-05-22 08:58:48 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#scheduleThread stop
|
||||
2025-05-22 08:58:49 [xxl-job, admin JobScheduleHelper#ringThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#ringThread stop
|
||||
2025-05-22 08:58:49 [SpringApplicationShutdownHook] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper stop
|
||||
2025-05-22 08:58:49 [xxl-job, admin JobLogReportHelper] INFO c.x.j.a.c.thread.JobLogReportHelper - >>>>>>>>>>> xxl-job, job log report thread stop
|
||||
2025-05-22 08:58:49 [xxl-job, admin JobLosedMonitorHelper] INFO c.x.j.a.c.thread.JobCompleteHelper - >>>>>>>>>>> xxl-job, JobLosedMonitorHelper stop
|
||||
2025-05-22 08:58:49 [xxl-job, admin JobFailMonitorHelper] INFO c.x.j.a.c.t.JobFailMonitorHelper - >>>>>>>>>>> xxl-job, job fail monitor thread stop
|
||||
2025-05-22 08:58:49 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO c.x.j.a.c.thread.JobRegistryHelper - >>>>>>>>>>> xxl-job, job registry monitor thread stop
|
||||
2025-05-22 08:58:49 [SpringApplicationShutdownHook] INFO c.x.j.a.c.t.JobTriggerPoolHelper - >>>>>>>>> xxl-job trigger thread pool shutdown success.
|
||||
2025-05-22 08:58:49 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown initiated...
|
||||
2025-05-22 08:58:49 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown completed.
|
||||
@ -1,10 +0,0 @@
|
||||
2025-06-13 09:42:46 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#scheduleThread stop
|
||||
2025-06-13 09:42:47 [xxl-job, admin JobScheduleHelper#ringThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#ringThread stop
|
||||
2025-06-13 09:42:47 [SpringApplicationShutdownHook] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper stop
|
||||
2025-06-13 09:42:47 [xxl-job, admin JobLogReportHelper] INFO c.x.j.a.c.thread.JobLogReportHelper - >>>>>>>>>>> xxl-job, job log report thread stop
|
||||
2025-06-13 09:42:47 [xxl-job, admin JobLosedMonitorHelper] INFO c.x.j.a.c.thread.JobCompleteHelper - >>>>>>>>>>> xxl-job, JobLosedMonitorHelper stop
|
||||
2025-06-13 09:42:47 [xxl-job, admin JobFailMonitorHelper] INFO c.x.j.a.c.t.JobFailMonitorHelper - >>>>>>>>>>> xxl-job, job fail monitor thread stop
|
||||
2025-06-13 09:42:47 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO c.x.j.a.c.thread.JobRegistryHelper - >>>>>>>>>>> xxl-job, job registry monitor thread stop
|
||||
2025-06-13 09:42:47 [SpringApplicationShutdownHook] INFO c.x.j.a.c.t.JobTriggerPoolHelper - >>>>>>>>> xxl-job trigger thread pool shutdown success.
|
||||
2025-06-13 09:42:47 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown initiated...
|
||||
2025-06-13 09:42:47 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown completed.
|
||||
@ -1,97 +0,0 @@
|
||||
2025-06-21 09:34:19 [main] INFO c.x.job.admin.XxlJobAdminApplication - Starting XxlJobAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 33496 (F:\evo_k3cloud\ruoyi-extend\ruoyi-xxl-job-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-06-21 09:34:19 [main] INFO c.x.job.admin.XxlJobAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-06-21 09:34:21 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9100 (http)
|
||||
2025-06-21 09:34:21 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9100"]
|
||||
2025-06-21 09:34:21 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-06-21 09:34:21 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-06-21 09:34:21 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring embedded WebApplicationContext
|
||||
2025-06-21 09:34:21 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1778 ms
|
||||
2025-06-21 09:34:22 [main] INFO c.x.j.a.c.scheduler.XxlJobScheduler - >>>>>>>>> init xxl-job admin success.
|
||||
2025-06-21 09:34:22 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Starting...
|
||||
2025-06-21 09:34:22 [main] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page template: index
|
||||
2025-06-21 09:34:22 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Start completed.
|
||||
2025-06-21 09:34:23 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-06-21 09:34:23 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9100"]
|
||||
2025-06-21 09:34:23 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-06-21 09:34:23 [main] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-06-21 09:34:23 [main] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 2 ms
|
||||
2025-06-21 09:34:23 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9100 (http) with context path '/xxl-job-admin'
|
||||
2025-06-21 09:34:23 [main] INFO c.x.job.admin.XxlJobAdminApplication - Started XxlJobAdminApplication in 3.961 seconds (JVM running for 5.809)
|
||||
2025-06-21 09:34:24 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as cc38f3b5f0d4
|
||||
2025-06-21 09:34:27 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>> init xxl-job admin scheduler success.
|
||||
2025-06-21 09:34:27 [xxl-job, admin JobScheduleHelper#scheduleThread] WARN c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, schedule misfire, jobId = 15
|
||||
2025-06-21 09:34:27 [xxl-job, admin JobScheduleHelper#scheduleThread] WARN c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, schedule misfire, jobId = 16
|
||||
2025-06-21 14:19:37 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#scheduleThread stop
|
||||
2025-06-21 14:19:38 [xxl-job, admin JobScheduleHelper#ringThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#ringThread stop
|
||||
2025-06-21 14:19:38 [SpringApplicationShutdownHook] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper stop
|
||||
2025-06-21 14:19:38 [xxl-job, admin JobLogReportHelper] INFO c.x.j.a.c.thread.JobLogReportHelper - >>>>>>>>>>> xxl-job, job log report thread stop
|
||||
2025-06-21 14:19:38 [xxl-job, admin JobLosedMonitorHelper] INFO c.x.j.a.c.thread.JobCompleteHelper - >>>>>>>>>>> xxl-job, JobLosedMonitorHelper stop
|
||||
2025-06-21 14:19:38 [xxl-job, admin JobFailMonitorHelper] INFO c.x.j.a.c.t.JobFailMonitorHelper - >>>>>>>>>>> xxl-job, job fail monitor thread stop
|
||||
2025-06-21 14:19:38 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO c.x.j.a.c.thread.JobRegistryHelper - >>>>>>>>>>> xxl-job, job registry monitor thread stop
|
||||
2025-06-21 14:19:38 [SpringApplicationShutdownHook] INFO c.x.j.a.c.t.JobTriggerPoolHelper - >>>>>>>>> xxl-job trigger thread pool shutdown success.
|
||||
2025-06-21 14:19:38 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown initiated...
|
||||
2025-06-21 14:19:38 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown completed.
|
||||
2025-06-21 14:21:04 [main] INFO c.x.job.admin.XxlJobAdminApplication - Starting XxlJobAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 44720 (F:\evo_k3cloud\ruoyi-extend\ruoyi-xxl-job-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-06-21 14:21:04 [main] INFO c.x.job.admin.XxlJobAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-06-21 14:21:05 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9100 (http)
|
||||
2025-06-21 14:21:05 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9100"]
|
||||
2025-06-21 14:21:05 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-06-21 14:21:05 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-06-21 14:21:05 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring embedded WebApplicationContext
|
||||
2025-06-21 14:21:05 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 938 ms
|
||||
2025-06-21 14:21:05 [main] INFO c.x.j.a.c.scheduler.XxlJobScheduler - >>>>>>>>> init xxl-job admin success.
|
||||
2025-06-21 14:21:05 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Starting...
|
||||
2025-06-21 14:21:05 [main] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page template: index
|
||||
2025-06-21 14:21:05 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Start completed.
|
||||
2025-06-21 14:21:05 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-06-21 14:21:05 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9100"]
|
||||
2025-06-21 14:21:05 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-06-21 14:21:05 [main] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-06-21 14:21:05 [main] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 0 ms
|
||||
2025-06-21 14:21:05 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9100 (http) with context path '/xxl-job-admin'
|
||||
2025-06-21 14:21:05 [main] INFO c.x.job.admin.XxlJobAdminApplication - Started XxlJobAdminApplication in 2.242 seconds (JVM running for 3.437)
|
||||
2025-06-21 14:21:06 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as cc38f3b5f0d4
|
||||
2025-06-21 14:21:10 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>> init xxl-job admin scheduler success.
|
||||
2025-06-21 14:54:48 [registrationTask1] WARN d.c.b.a.c.r.ApplicationRegistrator - Failed to register application as Application(name=ruoyi-xxl-job-admin, managementUrl=http://192.168.5.200:9100/xxl-job-admin/actuator, healthUrl=http://192.168.5.200:9100/xxl-job-admin/actuator/health, serviceUrl=http://192.168.5.200:9100/xxl-job-admin) at spring-boot-admin ([http://localhost:9090/admin/instances]): I/O error on POST request for "http://localhost:9090/admin/instances": Connection refused: connect; nested exception is java.net.ConnectException: Connection refused: connect. Further attempts are logged on DEBUG level
|
||||
2025-06-21 14:55:49 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#scheduleThread stop
|
||||
2025-06-21 14:55:50 [xxl-job, admin JobScheduleHelper#ringThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#ringThread stop
|
||||
2025-06-21 14:55:50 [SpringApplicationShutdownHook] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper stop
|
||||
2025-06-21 14:55:50 [xxl-job, admin JobLogReportHelper] INFO c.x.j.a.c.thread.JobLogReportHelper - >>>>>>>>>>> xxl-job, job log report thread stop
|
||||
2025-06-21 14:55:50 [xxl-job, admin JobLosedMonitorHelper] INFO c.x.j.a.c.thread.JobCompleteHelper - >>>>>>>>>>> xxl-job, JobLosedMonitorHelper stop
|
||||
2025-06-21 14:55:50 [xxl-job, admin JobFailMonitorHelper] INFO c.x.j.a.c.t.JobFailMonitorHelper - >>>>>>>>>>> xxl-job, job fail monitor thread stop
|
||||
2025-06-21 14:55:50 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO c.x.j.a.c.thread.JobRegistryHelper - >>>>>>>>>>> xxl-job, job registry monitor thread stop
|
||||
2025-06-21 14:55:50 [SpringApplicationShutdownHook] INFO c.x.j.a.c.t.JobTriggerPoolHelper - >>>>>>>>> xxl-job trigger thread pool shutdown success.
|
||||
2025-06-21 14:55:50 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown initiated...
|
||||
2025-06-21 14:55:50 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown completed.
|
||||
2025-06-21 15:04:36 [main] INFO c.x.job.admin.XxlJobAdminApplication - Starting XxlJobAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 38816 (F:\evo_k3cloud\ruoyi-extend\ruoyi-xxl-job-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-06-21 15:04:36 [main] INFO c.x.job.admin.XxlJobAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-06-21 15:04:37 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9100 (http)
|
||||
2025-06-21 15:04:37 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9100"]
|
||||
2025-06-21 15:04:37 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-06-21 15:04:37 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-06-21 15:04:37 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring embedded WebApplicationContext
|
||||
2025-06-21 15:04:37 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1290 ms
|
||||
2025-06-21 15:04:38 [main] INFO c.x.j.a.c.scheduler.XxlJobScheduler - >>>>>>>>> init xxl-job admin success.
|
||||
2025-06-21 15:04:38 [xxl-job, admin JobFailMonitorHelper] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Starting...
|
||||
2025-06-21 15:04:38 [main] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page template: index
|
||||
2025-06-21 15:04:38 [xxl-job, admin JobFailMonitorHelper] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Start completed.
|
||||
2025-06-21 15:04:38 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-06-21 15:04:38 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9100"]
|
||||
2025-06-21 15:04:38 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-06-21 15:04:38 [main] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-06-21 15:04:38 [main] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-06-21 15:04:38 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9100 (http) with context path '/xxl-job-admin'
|
||||
2025-06-21 15:04:38 [main] INFO c.x.job.admin.XxlJobAdminApplication - Started XxlJobAdminApplication in 3.062 seconds (JVM running for 3.812)
|
||||
2025-06-21 15:04:40 [registrationTask1] WARN d.c.b.a.c.r.ApplicationRegistrator - Failed to register application as Application(name=ruoyi-xxl-job-admin, managementUrl=http://192.168.5.200:9100/xxl-job-admin/actuator, healthUrl=http://192.168.5.200:9100/xxl-job-admin/actuator/health, serviceUrl=http://192.168.5.200:9100/xxl-job-admin) at spring-boot-admin ([http://localhost:9090/admin/instances]): I/O error on POST request for "http://localhost:9090/admin/instances": Connection refused: connect; nested exception is java.net.ConnectException: Connection refused: connect. Further attempts are logged on DEBUG level
|
||||
2025-06-21 15:04:43 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>> init xxl-job admin scheduler success.
|
||||
2025-06-21 15:04:48 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as cc38f3b5f0d4
|
||||
2025-06-21 17:45:01 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#scheduleThread stop
|
||||
2025-06-21 17:45:02 [xxl-job, admin JobScheduleHelper#ringThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#ringThread stop
|
||||
2025-06-21 17:45:02 [SpringApplicationShutdownHook] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper stop
|
||||
2025-06-21 17:45:02 [xxl-job, admin JobLogReportHelper] INFO c.x.j.a.c.thread.JobLogReportHelper - >>>>>>>>>>> xxl-job, job log report thread stop
|
||||
2025-06-21 17:45:02 [xxl-job, admin JobLosedMonitorHelper] INFO c.x.j.a.c.thread.JobCompleteHelper - >>>>>>>>>>> xxl-job, JobLosedMonitorHelper stop
|
||||
2025-06-21 17:45:02 [xxl-job, admin JobFailMonitorHelper] INFO c.x.j.a.c.t.JobFailMonitorHelper - >>>>>>>>>>> xxl-job, job fail monitor thread stop
|
||||
2025-06-21 17:45:02 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO c.x.j.a.c.thread.JobRegistryHelper - >>>>>>>>>>> xxl-job, job registry monitor thread stop
|
||||
2025-06-21 17:45:02 [SpringApplicationShutdownHook] INFO c.x.j.a.c.t.JobTriggerPoolHelper - >>>>>>>>> xxl-job trigger thread pool shutdown success.
|
||||
2025-06-21 17:45:02 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown initiated...
|
||||
2025-06-21 17:45:02 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Shutdown completed.
|
||||
@ -1,46 +0,0 @@
|
||||
2025-06-23 11:37:03 [main] INFO c.x.job.admin.XxlJobAdminApplication - Starting XxlJobAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 538140 (F:\evo_k3cloud\ruoyi-extend\ruoyi-xxl-job-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-06-23 11:37:03 [main] INFO c.x.job.admin.XxlJobAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-06-23 11:37:04 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9100 (http)
|
||||
2025-06-23 11:37:04 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9100"]
|
||||
2025-06-23 11:37:04 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-06-23 11:37:04 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-06-23 11:37:05 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring embedded WebApplicationContext
|
||||
2025-06-23 11:37:05 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1149 ms
|
||||
2025-06-23 11:37:05 [main] INFO c.x.j.a.c.scheduler.XxlJobScheduler - >>>>>>>>> init xxl-job admin success.
|
||||
2025-06-23 11:37:05 [xxl-job, admin JobLogReportHelper] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Starting...
|
||||
2025-06-23 11:37:05 [main] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page template: index
|
||||
2025-06-23 11:37:05 [xxl-job, admin JobLogReportHelper] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Start completed.
|
||||
2025-06-23 11:37:06 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-06-23 11:37:06 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9100"]
|
||||
2025-06-23 11:37:06 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-06-23 11:37:06 [main] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-06-23 11:37:06 [main] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-06-23 11:37:06 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9100 (http) with context path '/xxl-job-admin'
|
||||
2025-06-23 11:37:06 [main] INFO c.x.job.admin.XxlJobAdminApplication - Started XxlJobAdminApplication in 3.034 seconds (JVM running for 3.779)
|
||||
2025-06-23 11:37:06 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as cc38f3b5f0d4
|
||||
2025-06-23 11:37:10 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>> init xxl-job admin scheduler success.
|
||||
2025-06-23 11:37:10 [xxl-job, admin JobScheduleHelper#scheduleThread] WARN c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, schedule misfire, jobId = 15
|
||||
2025-06-23 11:37:10 [xxl-job, admin JobScheduleHelper#scheduleThread] WARN c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, schedule misfire, jobId = 16
|
||||
2025-06-23 16:06:46 [main] INFO c.x.job.admin.XxlJobAdminApplication - Starting XxlJobAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 23480 (F:\evo_k3cloud\ruoyi-extend\ruoyi-xxl-job-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-06-23 16:06:46 [main] INFO c.x.job.admin.XxlJobAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-06-23 16:06:48 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9100 (http)
|
||||
2025-06-23 16:06:48 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9100"]
|
||||
2025-06-23 16:06:48 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-06-23 16:06:48 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-06-23 16:06:48 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring embedded WebApplicationContext
|
||||
2025-06-23 16:06:48 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1475 ms
|
||||
2025-06-23 16:06:48 [main] INFO c.x.j.a.c.scheduler.XxlJobScheduler - >>>>>>>>> init xxl-job admin success.
|
||||
2025-06-23 16:06:48 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Starting...
|
||||
2025-06-23 16:06:48 [main] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page template: index
|
||||
2025-06-23 16:06:48 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Start completed.
|
||||
2025-06-23 16:06:49 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-06-23 16:06:49 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9100"]
|
||||
2025-06-23 16:06:49 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-06-23 16:06:49 [main] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-06-23 16:06:49 [main] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-06-23 16:06:49 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9100 (http) with context path '/xxl-job-admin'
|
||||
2025-06-23 16:06:49 [main] INFO c.x.job.admin.XxlJobAdminApplication - Started XxlJobAdminApplication in 3.214 seconds (JVM running for 7.052)
|
||||
2025-06-23 16:06:50 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as cc38f3b5f0d4
|
||||
2025-06-23 16:06:53 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>> init xxl-job admin scheduler success.
|
||||
2025-06-23 17:40:47 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#scheduleThread stop
|
||||
2025-06-23 17:40:48 [xxl-job, admin JobScheduleHelper#ringThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#ringThread stop
|
||||
@ -1,98 +1,27 @@
|
||||
2025-06-24 08:32:24 [main] INFO c.x.job.admin.XxlJobAdminApplication - Starting XxlJobAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 26856 (F:\evo_k3cloud\ruoyi-extend\ruoyi-xxl-job-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-06-24 08:32:24 [main] INFO c.x.job.admin.XxlJobAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-06-24 08:32:25 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9100 (http)
|
||||
2025-06-24 08:32:25 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9100"]
|
||||
2025-06-24 08:32:25 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-06-24 08:32:25 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-06-24 08:32:26 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring embedded WebApplicationContext
|
||||
2025-06-24 08:32:26 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1791 ms
|
||||
2025-06-24 08:32:26 [main] INFO c.x.j.a.c.scheduler.XxlJobScheduler - >>>>>>>>> init xxl-job admin success.
|
||||
2025-06-24 08:32:26 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Starting...
|
||||
2025-06-24 08:32:26 [main] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page template: index
|
||||
2025-06-24 08:32:26 [xxl-job, admin JobRegistryMonitorHelper-registryMonitorThread] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Start completed.
|
||||
2025-06-24 08:32:26 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-06-24 08:32:26 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9100"]
|
||||
2025-06-24 08:32:26 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-06-24 08:32:26 [main] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-06-24 08:32:26 [main] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-06-24 08:32:26 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9100 (http) with context path '/xxl-job-admin'
|
||||
2025-06-24 08:32:26 [main] INFO c.x.job.admin.XxlJobAdminApplication - Started XxlJobAdminApplication in 3.342 seconds (JVM running for 5.631)
|
||||
2025-06-24 08:32:28 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as cc38f3b5f0d4
|
||||
2025-06-24 08:32:31 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>> init xxl-job admin scheduler success.
|
||||
2025-06-24 08:32:31 [xxl-job, admin JobScheduleHelper#scheduleThread] WARN c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, schedule misfire, jobId = 15
|
||||
2025-06-24 08:32:31 [xxl-job, admin JobScheduleHelper#scheduleThread] WARN c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, schedule misfire, jobId = 16
|
||||
2025-06-24 09:07:46 [xxl-job, admin JobFailMonitorHelper] ERROR c.x.j.a.c.t.JobFailMonitorHelper - >>>>>>>>>>> xxl-job, job fail monitor thread error:{}
|
||||
org.springframework.jdbc.BadSqlGrammarException:
|
||||
### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table 'item_retrieval-evo.xxl_job_log' doesn't exist
|
||||
### The error may exist in file [F:\evo_k3cloud\ruoyi-extend\ruoyi-xxl-job-admin\target\classes\mybatis-mapper\XxlJobLogMapper.xml]
|
||||
### The error may involve defaultParameterMap
|
||||
### The error occurred while setting parameters
|
||||
### SQL: SELECT id FROM `xxl_job_log` WHERE !( (trigger_code in (0, 200) and handle_code = 0) OR (handle_code = 200) ) AND `alarm_status` = 0 ORDER BY id ASC LIMIT ?
|
||||
### Cause: java.sql.SQLSyntaxErrorException: Table 'item_retrieval-evo.xxl_job_log' doesn't exist
|
||||
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table 'item_retrieval-evo.xxl_job_log' doesn't exist
|
||||
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)
|
||||
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)
|
||||
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)
|
||||
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)
|
||||
at com.sun.proxy.$Proxy78.selectList(Unknown Source)
|
||||
at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)
|
||||
at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147)
|
||||
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80)
|
||||
at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:145)
|
||||
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86)
|
||||
at com.sun.proxy.$Proxy81.findFailJobLogIds(Unknown Source)
|
||||
at com.xxl.job.admin.core.thread.JobFailMonitorHelper$1.run(JobFailMonitorHelper.java:43)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
Caused by: java.sql.SQLSyntaxErrorException: Table 'item_retrieval-evo.xxl_job_log' doesn't exist
|
||||
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)
|
||||
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
|
||||
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)
|
||||
at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)
|
||||
at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
|
||||
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java)
|
||||
at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)
|
||||
at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)
|
||||
at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)
|
||||
at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
|
||||
at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
|
||||
at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
|
||||
at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:89)
|
||||
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)
|
||||
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)
|
||||
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
|
||||
at sun.reflect.GeneratedMethodAccessor49.invoke(Unknown Source)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)
|
||||
... 9 common frames omitted
|
||||
2025-06-24 09:07:47 [xxl-job, admin JobScheduleHelper#scheduleThread] ERROR c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, JobScheduleHelper#scheduleThread error:{}
|
||||
java.sql.SQLSyntaxErrorException: Table 'item_retrieval-evo.xxl_job_lock' doesn't exist
|
||||
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)
|
||||
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
|
||||
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)
|
||||
at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)
|
||||
at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
|
||||
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java)
|
||||
at com.xxl.job.admin.core.thread.JobScheduleHelper$1.run(JobScheduleHelper.java:75)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-06-24 09:35:03 [main] INFO c.x.job.admin.XxlJobAdminApplication - Starting XxlJobAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 12328 (F:\evo_k3cloud\ruoyi-extend\ruoyi-xxl-job-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-06-24 09:35:03 [main] INFO c.x.job.admin.XxlJobAdminApplication - The following 1 profile is active: "dev"
|
||||
2025-06-24 09:35:04 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9100 (http)
|
||||
2025-06-24 09:35:04 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9100"]
|
||||
2025-06-24 09:35:04 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-06-24 09:35:04 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2025-06-24 09:35:05 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring embedded WebApplicationContext
|
||||
2025-06-24 09:35:05 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1445 ms
|
||||
2025-06-24 09:35:05 [main] INFO c.x.j.a.c.scheduler.XxlJobScheduler - >>>>>>>>> init xxl-job admin success.
|
||||
2025-06-24 09:35:05 [xxl-job, admin JobFailMonitorHelper] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Starting...
|
||||
2025-06-24 09:35:05 [main] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page template: index
|
||||
2025-06-24 09:35:05 [xxl-job, admin JobFailMonitorHelper] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Start completed.
|
||||
2025-06-24 09:35:06 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2025-06-24 09:35:06 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9100"]
|
||||
2025-06-24 09:35:06 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-06-24 09:35:06 [main] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2025-06-24 09:35:06 [main] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2025-06-24 09:35:06 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9100 (http) with context path '/xxl-job-admin'
|
||||
2025-06-24 09:35:06 [main] INFO c.x.job.admin.XxlJobAdminApplication - Started XxlJobAdminApplication in 3.102 seconds (JVM running for 6.315)
|
||||
2025-06-24 09:35:07 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as cc38f3b5f0d4
|
||||
2025-06-24 09:35:10 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>> init xxl-job admin scheduler success.
|
||||
2026-02-12 00:29:30 [HikariCP housekeeper] WARN com.zaxxer.hikari.pool.HikariPool - HikariCP - Thread starvation or clock leap detected (housekeeper delta=46s179ms400µs600ns).
|
||||
2026-02-12 02:57:51 [HikariCP housekeeper] WARN com.zaxxer.hikari.pool.HikariPool - HikariCP - Thread starvation or clock leap detected (housekeeper delta=45s809ms35µs400ns).
|
||||
2026-02-12 03:21:20 [HikariCP housekeeper] WARN com.zaxxer.hikari.pool.HikariPool - HikariCP - Thread starvation or clock leap detected (housekeeper delta=58s730ms424µs).
|
||||
2026-02-12 17:50:07 [main] INFO c.x.job.admin.XxlJobAdminApplication - Starting XxlJobAdminApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 32340 (F:\evo_k3cloud\ruoyi-extend\ruoyi-xxl-job-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2026-02-12 17:50:07 [main] INFO c.x.job.admin.XxlJobAdminApplication - The following 1 profile is active: "dev"
|
||||
2026-02-12 17:50:11 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 9100 (http)
|
||||
2026-02-12 17:50:11 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-9100"]
|
||||
2026-02-12 17:50:11 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2026-02-12 17:50:11 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.74]
|
||||
2026-02-12 17:50:11 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring embedded WebApplicationContext
|
||||
2026-02-12 17:50:11 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 4328 ms
|
||||
2026-02-12 17:50:12 [main] INFO c.x.j.a.c.scheduler.XxlJobScheduler - >>>>>>>>> init xxl-job admin success.
|
||||
2026-02-12 17:50:12 [xxl-job, admin JobFailMonitorHelper] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Starting...
|
||||
2026-02-12 17:50:12 [main] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page template: index
|
||||
2026-02-12 17:50:12 [xxl-job, admin JobFailMonitorHelper] INFO com.zaxxer.hikari.HikariDataSource - HikariCP - Start completed.
|
||||
2026-02-12 17:50:13 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 14 endpoint(s) beneath base path '/actuator'
|
||||
2026-02-12 17:50:13 [main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-9100"]
|
||||
2026-02-12 17:50:13 [main] INFO o.a.c.c.C.[.[.[/xxl-job-admin] - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2026-02-12 17:50:13 [main] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
|
||||
2026-02-12 17:50:13 [main] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
|
||||
2026-02-12 17:50:13 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 9100 (http) with context path '/xxl-job-admin'
|
||||
2026-02-12 17:50:13 [main] INFO c.x.job.admin.XxlJobAdminApplication - Started XxlJobAdminApplication in 7.259 seconds (JVM running for 8.794)
|
||||
2026-02-12 17:50:15 [registrationTask1] WARN d.c.b.a.c.r.ApplicationRegistrator - Failed to register application as Application(name=ruoyi-xxl-job-admin, managementUrl=http://192.168.5.200:9100/xxl-job-admin/actuator, healthUrl=http://192.168.5.200:9100/xxl-job-admin/actuator/health, serviceUrl=http://192.168.5.200:9100/xxl-job-admin) at spring-boot-admin ([http://localhost:9090/admin/instances]): I/O error on POST request for "http://localhost:9090/admin/instances": Connection refused: connect; nested exception is java.net.ConnectException: Connection refused: connect. Further attempts are logged on DEBUG level
|
||||
2026-02-12 17:50:17 [xxl-job, admin JobScheduleHelper#scheduleThread] INFO c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>> init xxl-job admin scheduler success.
|
||||
2026-02-12 17:50:17 [xxl-job, admin JobScheduleHelper#scheduleThread] WARN c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, schedule misfire, jobId = 2
|
||||
2026-02-12 17:50:17 [xxl-job, admin JobScheduleHelper#scheduleThread] WARN c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>>>> xxl-job, schedule misfire, jobId = 23
|
||||
2026-02-12 17:50:24 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as cc38f3b5f0d4
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
4048
logs/sys-console.log
4048
logs/sys-console.log
File diff suppressed because one or more lines are too long
@ -1,104 +0,0 @@
|
||||
2025-05-07 19:17:55 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-07 19:18:00 [main] ERROR o.s.boot.SpringApplication - Application run failed
|
||||
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'cacheController' defined in file [F:\evo_k3cloud\ruoyi-admin\target\classes\com\ruoyi\web\controller\monitor\CacheController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'redissonConnectionFactory' defined in class path resource [org/redisson/spring/starter/RedissonAutoConfiguration.class]: Unsatisfied dependency expressed through method 'redissonConnectionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisson' defined in class path resource [org/redisson/spring/starter/RedissonAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.redisson.api.RedissonClient]: Factory method 'redisson' threw exception; nested exception is org.redisson.client.RedisConnectionException: Unable to connect to Redis server: localhost/127.0.0.1:6379
|
||||
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800)
|
||||
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229)
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372)
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222)
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
|
||||
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
|
||||
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
|
||||
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
|
||||
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
|
||||
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955)
|
||||
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:920)
|
||||
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
|
||||
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147)
|
||||
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731)
|
||||
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408)
|
||||
at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
|
||||
at com.ruoyi.RuoYiApplication.main(RuoYiApplication.java:28)
|
||||
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'redissonConnectionFactory' defined in class path resource [org/redisson/spring/starter/RedissonAutoConfiguration.class]: Unsatisfied dependency expressed through method 'redissonConnectionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisson' defined in class path resource [org/redisson/spring/starter/RedissonAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.redisson.api.RedissonClient]: Factory method 'redisson' threw exception; nested exception is org.redisson.client.RedisConnectionException: Unable to connect to Redis server: localhost/127.0.0.1:6379
|
||||
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800)
|
||||
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:541)
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352)
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195)
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
|
||||
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
|
||||
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
|
||||
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
|
||||
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
|
||||
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
|
||||
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391)
|
||||
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311)
|
||||
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887)
|
||||
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
|
||||
... 17 common frames omitted
|
||||
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisson' defined in class path resource [org/redisson/spring/starter/RedissonAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.redisson.api.RedissonClient]: Factory method 'redisson' threw exception; nested exception is org.redisson.client.RedisConnectionException: Unable to connect to Redis server: localhost/127.0.0.1:6379
|
||||
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:658)
|
||||
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:486)
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352)
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195)
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
|
||||
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
|
||||
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
|
||||
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
|
||||
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
|
||||
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
|
||||
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
|
||||
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391)
|
||||
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311)
|
||||
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887)
|
||||
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
|
||||
... 31 common frames omitted
|
||||
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.redisson.api.RedissonClient]: Factory method 'redisson' threw exception; nested exception is org.redisson.client.RedisConnectionException: Unable to connect to Redis server: localhost/127.0.0.1:6379
|
||||
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
|
||||
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)
|
||||
... 45 common frames omitted
|
||||
Caused by: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: localhost/127.0.0.1:6379
|
||||
at org.redisson.connection.pool.ConnectionPool.lambda$createConnection$0(ConnectionPool.java:154)
|
||||
at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:774)
|
||||
at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:750)
|
||||
at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488)
|
||||
at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1990)
|
||||
at org.redisson.connection.pool.ConnectionPool.promiseFailure(ConnectionPool.java:318)
|
||||
at org.redisson.connection.pool.ConnectionPool.lambda$createConnection$6(ConnectionPool.java:277)
|
||||
at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:774)
|
||||
at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:750)
|
||||
at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488)
|
||||
at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1990)
|
||||
at org.redisson.client.RedisClient$1$2.run(RedisClient.java:257)
|
||||
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
|
||||
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:167)
|
||||
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
Caused by: java.util.concurrent.CompletionException: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: localhost/127.0.0.1:6379
|
||||
at java.util.concurrent.CompletableFuture.encodeRelay(CompletableFuture.java:326)
|
||||
at java.util.concurrent.CompletableFuture.completeRelay(CompletableFuture.java:338)
|
||||
at java.util.concurrent.CompletableFuture.uniRelay(CompletableFuture.java:925)
|
||||
at java.util.concurrent.CompletableFuture$UniRelay.tryFire(CompletableFuture.java:913)
|
||||
... 12 common frames omitted
|
||||
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: localhost/127.0.0.1:6379
|
||||
Caused by: java.net.ConnectException: Connection refused: no further information
|
||||
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
|
||||
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:715)
|
||||
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337)
|
||||
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
|
||||
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
|
||||
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
|
||||
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
|
||||
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
|
||||
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-05-07 19:18:33 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-07 19:20:42 [Thread-61] ERROR c.ruoyi.framework.aspectj.LogAspect - 异常信息:null
|
||||
2025-05-07 19:21:55 [xxl-job, JobThread-16-1746616908132] ERROR c.ruoyi.framework.aspectj.LogAspect - 异常信息:null
|
||||
@ -1,196 +0,0 @@
|
||||
2025-05-13 07:15:55 [Thread-82] ERROR c.ruoyi.framework.aspectj.LogAspect - 异常信息:null
|
||||
2025-05-13 08:15:08 [xxl-job, JobThread-16-1747095300030] ERROR c.ruoyi.framework.aspectj.LogAspect - 异常信息:null
|
||||
2025-05-13 11:47:57 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-13 11:48:40 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-13 11:49:05 [XNIO-1 task-8] ERROR c.r.f.w.e.GlobalExceptionHandler - 请求地址'/login',发生未知异常.
|
||||
com.ruoyi.common.exception.user.UserException: 密码输入错误1次
|
||||
at com.ruoyi.system.service.SysLoginService.checkLogin(SysLoginService.java:326)
|
||||
at com.ruoyi.system.service.SysLoginService.login(SysLoginService.java:77)
|
||||
at com.ruoyi.web.controller.system.SysLoginController.login(SysLoginController.java:54)
|
||||
at com.ruoyi.web.controller.system.SysLoginController$$FastClassBySpringCGLIB$$f5b1313e.invoke(<generated>)
|
||||
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
|
||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
|
||||
at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)
|
||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
|
||||
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
|
||||
at com.ruoyi.web.controller.system.SysLoginController$$EnhancerBySpringCGLIB$$c4dd4323.login(<generated>)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
|
||||
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
|
||||
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
|
||||
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:517)
|
||||
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)
|
||||
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
|
||||
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at com.ruoyi.common.filter.RepeatableFilter.doFilter(RepeatableFilter.java:32)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at cn.dev33.satoken.filter.SaPathCheckFilterForServlet.doFilter(SaPathCheckFilterForServlet.java:55)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
|
||||
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
|
||||
at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
|
||||
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
|
||||
at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
|
||||
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
|
||||
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
|
||||
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
|
||||
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
|
||||
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
|
||||
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:275)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131)
|
||||
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
|
||||
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100)
|
||||
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:393)
|
||||
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852)
|
||||
at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
|
||||
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)
|
||||
at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-05-13 11:49:10 [XNIO-1 task-8] ERROR c.r.f.w.e.GlobalExceptionHandler - 请求地址'/login',发生未知异常.
|
||||
com.ruoyi.common.exception.user.UserException: 密码输入错误2次
|
||||
at com.ruoyi.system.service.SysLoginService.checkLogin(SysLoginService.java:326)
|
||||
at com.ruoyi.system.service.SysLoginService.login(SysLoginService.java:77)
|
||||
at com.ruoyi.web.controller.system.SysLoginController.login(SysLoginController.java:54)
|
||||
at com.ruoyi.web.controller.system.SysLoginController$$FastClassBySpringCGLIB$$f5b1313e.invoke(<generated>)
|
||||
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
|
||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
|
||||
at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)
|
||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
|
||||
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
|
||||
at com.ruoyi.web.controller.system.SysLoginController$$EnhancerBySpringCGLIB$$c4dd4323.login(<generated>)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
|
||||
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
|
||||
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
|
||||
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:517)
|
||||
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)
|
||||
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
|
||||
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at com.ruoyi.common.filter.RepeatableFilter.doFilter(RepeatableFilter.java:32)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at cn.dev33.satoken.filter.SaPathCheckFilterForServlet.doFilter(SaPathCheckFilterForServlet.java:55)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
|
||||
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
|
||||
at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
|
||||
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
|
||||
at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
|
||||
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
|
||||
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
|
||||
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
|
||||
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
|
||||
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
|
||||
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:275)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131)
|
||||
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
|
||||
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100)
|
||||
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:393)
|
||||
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852)
|
||||
at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
|
||||
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)
|
||||
at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,2 +0,0 @@
|
||||
2025-05-18 07:16:20 [Thread-50] ERROR c.ruoyi.framework.aspectj.LogAspect - 异常信息:null
|
||||
2025-05-18 08:15:03 [xxl-job, JobThread-16-1747527300023] ERROR c.ruoyi.framework.aspectj.LogAspect - 异常信息:null
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,361 +0,0 @@
|
||||
2025-05-20 07:16:16 [Thread-61] ERROR c.ruoyi.framework.aspectj.LogAspect - 异常信息:null
|
||||
2025-05-20 08:15:05 [xxl-job, JobThread-16-1747700100011] ERROR c.ruoyi.framework.aspectj.LogAspect - 异常信息:null
|
||||
2025-05-20 08:39:50 [xxl-job, JobThread-17-1747701588460] ERROR c.ruoyi.framework.aspectj.LogAspect - 异常信息:null
|
||||
2025-05-20 08:42:31 [xxl-job, JobThread-17-1747701734397] ERROR c.ruoyi.framework.aspectj.LogAspect - 异常信息:null
|
||||
2025-05-20 08:43:31 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-20 08:43:59 [xxl-job, JobThread-17-1747701830842] ERROR c.ruoyi.framework.aspectj.LogAspect - 异常信息:null
|
||||
2025-05-20 08:53:18 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-20 08:53:42 [XNIO-1 task-1] ERROR c.r.f.w.e.GlobalExceptionHandler - 请求地址'/login',发生未知异常.
|
||||
com.ruoyi.common.exception.user.CaptchaException: 验证码错误
|
||||
at com.ruoyi.system.service.SysLoginService.validateCaptcha(SysLoginService.java:208)
|
||||
at com.ruoyi.system.service.SysLoginService.login(SysLoginService.java:74)
|
||||
at com.ruoyi.web.controller.system.SysLoginController.login(SysLoginController.java:54)
|
||||
at com.ruoyi.web.controller.system.SysLoginController$$FastClassBySpringCGLIB$$f5b1313e.invoke(<generated>)
|
||||
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
|
||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
|
||||
at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)
|
||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
|
||||
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
|
||||
at com.ruoyi.web.controller.system.SysLoginController$$EnhancerBySpringCGLIB$$7c699f05.login(<generated>)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
|
||||
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
|
||||
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
|
||||
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:517)
|
||||
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)
|
||||
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
|
||||
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at com.ruoyi.common.filter.RepeatableFilter.doFilter(RepeatableFilter.java:32)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at cn.dev33.satoken.filter.SaPathCheckFilterForServlet.doFilter(SaPathCheckFilterForServlet.java:55)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
|
||||
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
|
||||
at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
|
||||
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
|
||||
at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
|
||||
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
|
||||
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
|
||||
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
|
||||
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
|
||||
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
|
||||
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:275)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131)
|
||||
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
|
||||
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100)
|
||||
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:393)
|
||||
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852)
|
||||
at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
|
||||
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)
|
||||
at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-05-20 10:57:06 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-20 10:58:55 [XNIO-1 task-2] ERROR c.r.f.w.e.GlobalExceptionHandler - 请求地址'/getInfo',认证失败'token 无效:eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjYyMWJlMWU4LTg5YzItNGVkMS1hMTM0LTJiY2JjNDA2Yzc3NCJ9.mmMtJrl3lQHVP66oEiS-t95p2Ug99QKfIpQc-aSgfy8ldsDJEo0oPoPENwkaBSjCFzAze3nDm3k6EEQZBJ-PVA',无法访问系统资源
|
||||
2025-05-20 11:00:07 [XNIO-1 task-2] ERROR c.r.f.w.e.GlobalExceptionHandler - 请求地址'/login',发生未知异常.
|
||||
com.ruoyi.common.exception.user.UserException: 密码输入错误1次
|
||||
at com.ruoyi.system.service.SysLoginService.checkLogin(SysLoginService.java:326)
|
||||
at com.ruoyi.system.service.SysLoginService.login(SysLoginService.java:77)
|
||||
at com.ruoyi.web.controller.system.SysLoginController.login(SysLoginController.java:54)
|
||||
at com.ruoyi.web.controller.system.SysLoginController$$FastClassBySpringCGLIB$$f5b1313e.invoke(<generated>)
|
||||
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
|
||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
|
||||
at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)
|
||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
|
||||
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
|
||||
at com.ruoyi.web.controller.system.SysLoginController$$EnhancerBySpringCGLIB$$3b818036.login(<generated>)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
|
||||
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
|
||||
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
|
||||
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:517)
|
||||
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)
|
||||
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
|
||||
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at com.ruoyi.common.filter.RepeatableFilter.doFilter(RepeatableFilter.java:32)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at cn.dev33.satoken.filter.SaPathCheckFilterForServlet.doFilter(SaPathCheckFilterForServlet.java:55)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
|
||||
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
|
||||
at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
|
||||
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
|
||||
at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
|
||||
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
|
||||
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
|
||||
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
|
||||
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
|
||||
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
|
||||
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:275)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131)
|
||||
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
|
||||
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100)
|
||||
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:393)
|
||||
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852)
|
||||
at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
|
||||
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)
|
||||
at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-05-20 11:06:16 [XNIO-1 task-3] ERROR com.ruoyi.system.runner.JdUtil - 接口返回结果: {"ErrorCode":"500","IsSuccess":false,"Errors":[{"FieldName":"FNumber,FUseOrgId","Message":"编码为“40SX.11.3(0019-25)”的物料,组织内编码唯一","DIndex":0},{"FieldName":"FNumber","Message":"系统中已存在相同编码40SX.11.3(0019-25)的物料,保存失败,请修改。","DIndex":0}],"SuccessEntitys":[]}
|
||||
2025-05-20 11:06:16 [XNIO-1 task-3] ERROR c.r.s.c.BomDetailsController - 物料信息不完整,无法新增物料
|
||||
2025-05-20 11:06:16 [XNIO-1 task-3] ERROR c.r.s.c.BomDetailsController - 物料信息不完整,无法新增物料
|
||||
2025-05-20 11:11:48 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-20 11:17:51 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-20 11:24:07 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-20 11:28:25 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-20 11:33:15 [XNIO-1 task-3] ERROR com.ruoyi.system.runner.JdUtil - 接口返回结果: {"ErrorCode":"500","IsSuccess":false,"Errors":[{"FieldName":"FNumber,FUseOrgId","Message":"编码为“40SX.11.3(0019-25)”的物料,组织内编码唯一","DIndex":0},{"FieldName":"FNumber","Message":"系统中已存在相同编码40SX.11.3(0019-25)的物料,保存失败,请修改。","DIndex":0}],"SuccessEntitys":[]}
|
||||
2025-05-20 11:33:15 [XNIO-1 task-3] ERROR c.r.s.c.BomDetailsController - 物料信息不完整,无法新增物料
|
||||
2025-05-20 11:38:03 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-20 11:43:03 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-20 13:04:08 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-20 13:21:47 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-20 13:24:38 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-20 13:29:48 [XNIO-1 task-19] ERROR c.r.c.excel.DefaultExcelListener - 第10行-第5列-表头物料编码: 解析异常<br/>
|
||||
2025-05-20 13:29:48 [XNIO-1 task-19] ERROR c.r.f.w.e.GlobalExceptionHandler - 请求地址'/system/route/export',发生未知异常.
|
||||
java.lang.RuntimeException: com.alibaba.excel.exception.ExcelAnalysisException: 第10行-第5列-表头物料编码: 解析异常<br/>
|
||||
at com.ruoyi.system.controller.ProcessRouteController.export(ProcessRouteController.java:306)
|
||||
at com.ruoyi.system.controller.ProcessRouteController$$FastClassBySpringCGLIB$$9986b228.invoke(<generated>)
|
||||
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
|
||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
|
||||
at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)
|
||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
|
||||
at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:64)
|
||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
|
||||
at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57)
|
||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
|
||||
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
|
||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
|
||||
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
|
||||
at com.ruoyi.system.controller.ProcessRouteController$$EnhancerBySpringCGLIB$$fd1b9ce.export(<generated>)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
|
||||
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
|
||||
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
|
||||
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:517)
|
||||
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)
|
||||
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
|
||||
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at com.ruoyi.common.filter.RepeatableFilter.doFilter(RepeatableFilter.java:30)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at cn.dev33.satoken.filter.SaPathCheckFilterForServlet.doFilter(SaPathCheckFilterForServlet.java:55)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at com.ruoyi.common.filter.XssFilter.doFilter(XssFilter.java:45)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
|
||||
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
|
||||
at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
|
||||
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
|
||||
at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
|
||||
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
|
||||
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
|
||||
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
|
||||
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
|
||||
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
|
||||
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:275)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131)
|
||||
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
|
||||
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100)
|
||||
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:393)
|
||||
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852)
|
||||
at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
|
||||
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)
|
||||
at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
Caused by: com.alibaba.excel.exception.ExcelAnalysisException: 第10行-第5列-表头物料编码: 解析异常<br/>
|
||||
at com.ruoyi.common.excel.DefaultExcelListener.onException(DefaultExcelListener.java:79)
|
||||
at com.alibaba.excel.read.processor.DefaultAnalysisEventProcessor.onException(DefaultAnalysisEventProcessor.java:83)
|
||||
at com.alibaba.excel.read.processor.DefaultAnalysisEventProcessor.dealData(DefaultAnalysisEventProcessor.java:114)
|
||||
at com.alibaba.excel.read.processor.DefaultAnalysisEventProcessor.endRow(DefaultAnalysisEventProcessor.java:50)
|
||||
at com.alibaba.excel.analysis.v07.handlers.RowTagHandler.endElement(RowTagHandler.java:66)
|
||||
at com.alibaba.excel.analysis.v07.handlers.sax.XlsxRowHandler.endElement(XlsxRowHandler.java:99)
|
||||
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
|
||||
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
|
||||
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
|
||||
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
|
||||
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
|
||||
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
|
||||
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
|
||||
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
|
||||
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
|
||||
at com.alibaba.excel.analysis.v07.XlsxSaxAnalyser.parseXmlSource(XlsxSaxAnalyser.java:239)
|
||||
at com.alibaba.excel.analysis.v07.XlsxSaxAnalyser.execute(XlsxSaxAnalyser.java:261)
|
||||
at com.alibaba.excel.analysis.ExcelAnalyserImpl.analysis(ExcelAnalyserImpl.java:124)
|
||||
at com.alibaba.excel.ExcelReader.read(ExcelReader.java:66)
|
||||
at com.alibaba.excel.ExcelReader.read(ExcelReader.java:56)
|
||||
at com.alibaba.excel.read.builder.ExcelReaderSheetBuilder.doRead(ExcelReaderSheetBuilder.java:65)
|
||||
at com.ruoyi.system.controller.ProcessRouteController.export(ProcessRouteController.java:303)
|
||||
... 103 common frames omitted
|
||||
2025-05-20 13:46:04 [XNIO-1 task-83] ERROR com.ruoyi.system.runner.JdUtil - 接口返回结果: {"ErrorCode":"500","IsSuccess":false,"Errors":[{"FieldName":"FNumber,FUseOrgId","Message":"编码为“FS25020.02.01.2”的物料,组织内编码唯一","DIndex":0},{"FieldName":"FNumber","Message":"系统中已存在相同编码FS25020.02.01.2的物料,保存失败,请修改。","DIndex":0}],"SuccessEntitys":[]}
|
||||
2025-05-20 13:46:04 [XNIO-1 task-18] ERROR com.ruoyi.system.runner.JdUtil - 接口返回结果: {"ErrorCode":"500","IsSuccess":false,"Errors":[{"FieldName":"FNumber,FUseOrgId","Message":"编码为“FS25020.02.01.2”的物料,组织内编码唯一","DIndex":0},{"FieldName":"FNumber","Message":"系统中已存在相同编码FS25020.02.01.2的物料,保存失败,请修改。","DIndex":0}],"SuccessEntitys":[]}
|
||||
2025-05-20 13:46:04 [XNIO-1 task-83] ERROR c.r.s.c.BomDetailsController - 物料信息不完整,无法新增物料
|
||||
2025-05-20 13:46:04 [XNIO-1 task-18] ERROR c.r.s.c.BomDetailsController - 物料信息不完整,无法新增物料
|
||||
2025-05-20 13:48:46 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-20 13:53:44 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-20 13:54:51 [XNIO-1 task-17] ERROR com.ruoyi.system.runner.JdUtil - 接口返回结果: {"ErrorCode":"500","IsSuccess":false,"Errors":[{"FieldName":"FNumber,FUseOrgId","Message":"编码为“FS25020.02.01.2”的物料,组织内编码唯一","DIndex":0},{"FieldName":"FNumber","Message":"系统中已存在相同编码FS25020.02.01.2的物料,保存失败,请修改。","DIndex":0}],"SuccessEntitys":[]}
|
||||
2025-05-20 13:54:51 [XNIO-1 task-17] ERROR c.r.s.c.BomDetailsController - 物料信息不完整,无法新增物料
|
||||
2025-05-20 13:55:40 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-20 14:05:12 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-20 14:06:41 [XNIO-1 task-17] ERROR com.ruoyi.system.runner.JdUtil - 接口返回结果: {"ErrorCode":"500","IsSuccess":false,"Errors":[{"FieldName":"FNumber,FUseOrgId","Message":"编码为“FS25020.02.01.2”的物料,组织内编码唯一","DIndex":0},{"FieldName":"FNumber","Message":"系统中已存在相同编码FS25020.02.01.2的物料,保存失败,请修改。","DIndex":0}],"SuccessEntitys":[]}
|
||||
2025-05-20 14:06:41 [XNIO-1 task-17] ERROR c.r.s.c.BomDetailsController - 物料信息不完整,无法新增物料
|
||||
2025-05-20 14:06:41 [XNIO-1 task-17] ERROR c.r.s.c.BomDetailsController - BOM校验失败,物料编码: FS25020.02.01.2
|
||||
2025-05-20 14:07:36 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-20 14:07:56 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
@ -1,198 +0,0 @@
|
||||
2025-05-21 08:12:17 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-21 08:13:52 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-21 08:14:52 [XNIO-1 task-1] ERROR c.r.f.w.e.GlobalExceptionHandler - 请求地址'/login',发生未知异常.
|
||||
com.ruoyi.common.exception.user.UserException: 密码输入错误1次
|
||||
at com.ruoyi.system.service.SysLoginService.checkLogin(SysLoginService.java:326)
|
||||
at com.ruoyi.system.service.SysLoginService.login(SysLoginService.java:77)
|
||||
at com.ruoyi.web.controller.system.SysLoginController.login(SysLoginController.java:54)
|
||||
at com.ruoyi.web.controller.system.SysLoginController$$FastClassBySpringCGLIB$$f5b1313e.invoke(<generated>)
|
||||
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
|
||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
|
||||
at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)
|
||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
|
||||
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
|
||||
at com.ruoyi.web.controller.system.SysLoginController$$EnhancerBySpringCGLIB$$7269266b.login(<generated>)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
|
||||
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
|
||||
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
|
||||
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:517)
|
||||
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)
|
||||
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
|
||||
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at com.ruoyi.common.filter.RepeatableFilter.doFilter(RepeatableFilter.java:32)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at cn.dev33.satoken.filter.SaPathCheckFilterForServlet.doFilter(SaPathCheckFilterForServlet.java:55)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
|
||||
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
|
||||
at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
|
||||
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
|
||||
at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
|
||||
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
|
||||
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
|
||||
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
|
||||
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
|
||||
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
|
||||
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:275)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131)
|
||||
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
|
||||
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100)
|
||||
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:393)
|
||||
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852)
|
||||
at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
|
||||
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)
|
||||
at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-05-21 08:14:56 [XNIO-1 task-1] ERROR c.r.f.w.e.GlobalExceptionHandler - 请求地址'/login',发生未知异常.
|
||||
com.ruoyi.common.exception.user.CaptchaException: 验证码错误
|
||||
at com.ruoyi.system.service.SysLoginService.validateCaptcha(SysLoginService.java:208)
|
||||
at com.ruoyi.system.service.SysLoginService.login(SysLoginService.java:74)
|
||||
at com.ruoyi.web.controller.system.SysLoginController.login(SysLoginController.java:54)
|
||||
at com.ruoyi.web.controller.system.SysLoginController$$FastClassBySpringCGLIB$$f5b1313e.invoke(<generated>)
|
||||
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
|
||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
|
||||
at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)
|
||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
|
||||
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
|
||||
at com.ruoyi.web.controller.system.SysLoginController$$EnhancerBySpringCGLIB$$7269266b.login(<generated>)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
|
||||
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
|
||||
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
|
||||
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:517)
|
||||
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)
|
||||
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
|
||||
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at com.ruoyi.common.filter.RepeatableFilter.doFilter(RepeatableFilter.java:32)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at cn.dev33.satoken.filter.SaPathCheckFilterForServlet.doFilter(SaPathCheckFilterForServlet.java:55)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
|
||||
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
|
||||
at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
|
||||
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
|
||||
at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
|
||||
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
|
||||
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
|
||||
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
|
||||
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
|
||||
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
|
||||
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:275)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131)
|
||||
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
|
||||
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100)
|
||||
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:393)
|
||||
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852)
|
||||
at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
|
||||
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)
|
||||
at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-05-21 08:15:07 [xxl-job, JobThread-16-1747786500657] ERROR c.ruoyi.framework.aspectj.LogAspect - 异常信息:null
|
||||
2025-05-21 08:15:19 [xxl-job, JobThread-17-1747786517050] ERROR c.ruoyi.framework.aspectj.LogAspect - 异常信息:null
|
||||
2025-05-21 08:17:37 [Thread-63] ERROR c.ruoyi.framework.aspectj.LogAspect - 异常信息:null
|
||||
2025-05-21 08:18:05 [xxl-job, JobThread-16-1747786683930] ERROR c.ruoyi.framework.aspectj.LogAspect - 异常信息:null
|
||||
@ -1,4 +0,0 @@
|
||||
2025-05-22 08:44:30 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-05-22 08:46:52 [Thread-62] ERROR c.ruoyi.framework.aspectj.LogAspect - 异常信息:null
|
||||
2025-05-22 08:47:30 [xxl-job, JobThread-16-1747874844528] ERROR c.ruoyi.framework.aspectj.LogAspect - 异常信息:null
|
||||
2025-05-22 08:47:39 [xxl-job, JobThread-17-1747874858170] ERROR c.ruoyi.framework.aspectj.LogAspect - 异常信息:null
|
||||
@ -1,2 +0,0 @@
|
||||
2025-06-13 07:16:26 [Thread-65] ERROR c.ruoyi.framework.aspectj.LogAspect - 异常信息:null
|
||||
2025-06-13 08:15:05 [xxl-job, JobThread-16-1749773700006] ERROR c.ruoyi.framework.aspectj.LogAspect - 异常信息:null
|
||||
@ -1,509 +0,0 @@
|
||||
2025-06-14 10:16:43 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-06-14 16:00:01 [XNIO-1 task-1] ERROR c.r.f.w.e.GlobalExceptionHandler - 请求地址'/system/save/list',发生未知异常.
|
||||
org.springframework.jdbc.BadSqlGrammarException:
|
||||
### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table 'item_retrieval-evo.figure_save' doesn't exist
|
||||
### The error may exist in com/ruoyi/system/mapper/FigureSaveMapper.java (best guess)
|
||||
### The error may involve defaultParameterMap
|
||||
### The error occurred while setting parameters
|
||||
### SQL: SELECT COUNT(*) AS total FROM figure_save WHERE (production_code = ?)
|
||||
### Cause: java.sql.SQLSyntaxErrorException: Table 'item_retrieval-evo.figure_save' doesn't exist
|
||||
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table 'item_retrieval-evo.figure_save' doesn't exist
|
||||
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)
|
||||
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)
|
||||
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)
|
||||
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)
|
||||
at com.sun.proxy.$Proxy183.selectList(Unknown Source)
|
||||
at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)
|
||||
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForIPage(MybatisMapperMethod.java:121)
|
||||
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:85)
|
||||
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
|
||||
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
|
||||
at com.sun.proxy.$Proxy245.selectPage(Unknown Source)
|
||||
at com.ruoyi.common.core.mapper.BaseMapperPlus.selectVoPage(BaseMapperPlus.java:183)
|
||||
at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
|
||||
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)
|
||||
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
|
||||
at com.sun.proxy.$Proxy245.selectVoPage(Unknown Source)
|
||||
at com.ruoyi.common.core.mapper.BaseMapperPlus.selectVoPage(BaseMapperPlus.java:176)
|
||||
at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
|
||||
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)
|
||||
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
|
||||
at com.sun.proxy.$Proxy245.selectVoPage(Unknown Source)
|
||||
at com.ruoyi.system.service.impl.FigureSaveServiceImpl.queryPageList(FigureSaveServiceImpl.java:48)
|
||||
at com.ruoyi.system.controller.FigureSaveController.list(FigureSaveController.java:47)
|
||||
at com.ruoyi.system.controller.FigureSaveController$$FastClassBySpringCGLIB$$4ad1074f.invoke(<generated>)
|
||||
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
|
||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
|
||||
at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)
|
||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
|
||||
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
|
||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
|
||||
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
|
||||
at com.ruoyi.system.controller.FigureSaveController$$EnhancerBySpringCGLIB$$fef534cd.list(<generated>)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
|
||||
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
|
||||
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
|
||||
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:497)
|
||||
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)
|
||||
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
|
||||
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at com.ruoyi.common.filter.RepeatableFilter.doFilter(RepeatableFilter.java:30)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at cn.dev33.satoken.filter.SaPathCheckFilterForServlet.doFilter(SaPathCheckFilterForServlet.java:55)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at com.ruoyi.common.filter.XssFilter.doFilter(XssFilter.java:41)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
|
||||
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
|
||||
at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
|
||||
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
|
||||
at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
|
||||
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
|
||||
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
|
||||
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
|
||||
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
|
||||
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
|
||||
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:275)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131)
|
||||
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
|
||||
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100)
|
||||
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:393)
|
||||
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852)
|
||||
at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
|
||||
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)
|
||||
at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
Caused by: java.sql.SQLSyntaxErrorException: Table 'item_retrieval-evo.figure_save' doesn't exist
|
||||
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)
|
||||
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
|
||||
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)
|
||||
at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)
|
||||
at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
|
||||
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java)
|
||||
at com.p6spy.engine.wrapper.PreparedStatementWrapper.execute(PreparedStatementWrapper.java:362)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)
|
||||
at com.sun.proxy.$Proxy299.execute(Unknown Source)
|
||||
at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)
|
||||
at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)
|
||||
at com.sun.proxy.$Proxy297.query(Unknown Source)
|
||||
at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)
|
||||
at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
|
||||
at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
|
||||
at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
|
||||
at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)
|
||||
at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)
|
||||
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)
|
||||
at com.sun.proxy.$Proxy296.query(Unknown Source)
|
||||
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)
|
||||
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)
|
||||
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)
|
||||
... 116 common frames omitted
|
||||
2025-06-14 16:11:38 [XNIO-1 task-3] ERROR c.r.f.w.e.GlobalExceptionHandler - 请求地址'/system/plan/importTemplate',不支持'POST'请求
|
||||
2025-06-14 16:12:44 [XNIO-1 task-3] ERROR c.r.f.w.e.GlobalExceptionHandler - 请求地址'/system/plan',发生未知异常.
|
||||
org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.util.Date` from String "2025-06-01T16:00:00.000Z": not a valid representation (error: Failed to parse Date value '2025-06-01T16:00:00.000Z': Unparseable date: "2025-06-01T16:00:00.000Z"); nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.util.Date` from String "2025-06-01T16:00:00.000Z": not a valid representation (error: Failed to parse Date value '2025-06-01T16:00:00.000Z': Unparseable date: "2025-06-01T16:00:00.000Z")
|
||||
at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 91] (through reference chain: com.ruoyi.system.domain.bo.ProductionPlanBo["subItems"]->java.util.ArrayList[0]->com.ruoyi.system.domain.bo.WorkProcedureBo["startDate"])
|
||||
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)
|
||||
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)
|
||||
at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
|
||||
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
|
||||
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
|
||||
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:517)
|
||||
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)
|
||||
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
|
||||
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at com.ruoyi.common.filter.RepeatableFilter.doFilter(RepeatableFilter.java:32)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at cn.dev33.satoken.filter.SaPathCheckFilterForServlet.doFilter(SaPathCheckFilterForServlet.java:55)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at com.ruoyi.common.filter.XssFilter.doFilter(XssFilter.java:45)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
|
||||
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
|
||||
at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
|
||||
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
|
||||
at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
|
||||
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
|
||||
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
|
||||
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
|
||||
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
|
||||
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
|
||||
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:275)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131)
|
||||
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
|
||||
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100)
|
||||
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:393)
|
||||
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852)
|
||||
at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
|
||||
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)
|
||||
at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
Caused by: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.util.Date` from String "2025-06-01T16:00:00.000Z": not a valid representation (error: Failed to parse Date value '2025-06-01T16:00:00.000Z': Unparseable date: "2025-06-01T16:00:00.000Z")
|
||||
at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 91] (through reference chain: com.ruoyi.system.domain.bo.ProductionPlanBo["subItems"]->java.util.ArrayList[0]->com.ruoyi.system.domain.bo.WorkProcedureBo["startDate"])
|
||||
at com.fasterxml.jackson.databind.exc.InvalidFormatException.from(InvalidFormatException.java:67)
|
||||
at com.fasterxml.jackson.databind.DeserializationContext.weirdStringException(DeserializationContext.java:1991)
|
||||
at com.fasterxml.jackson.databind.DeserializationContext.handleWeirdStringValue(DeserializationContext.java:1219)
|
||||
at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseDate(StdDeserializer.java:1308)
|
||||
at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseDate(StdDeserializer.java:1250)
|
||||
at com.fasterxml.jackson.databind.deser.std.DateDeserializers$DateBasedDeserializer._parseDate(DateDeserializers.java:201)
|
||||
at com.fasterxml.jackson.databind.deser.std.DateDeserializers$DateDeserializer.deserialize(DateDeserializers.java:303)
|
||||
at com.fasterxml.jackson.databind.deser.std.DateDeserializers$DateDeserializer.deserialize(DateDeserializers.java:281)
|
||||
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
|
||||
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)
|
||||
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)
|
||||
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:355)
|
||||
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:244)
|
||||
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:28)
|
||||
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
|
||||
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)
|
||||
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)
|
||||
at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)
|
||||
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)
|
||||
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)
|
||||
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)
|
||||
... 85 common frames omitted
|
||||
2025-06-14 16:13:23 [XNIO-1 task-3] ERROR c.r.f.w.e.GlobalExceptionHandler - 请求地址'/system/plan',发生未知异常.
|
||||
org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.util.Date` from String "2025-06-01T16:00:00.000Z": not a valid representation (error: Failed to parse Date value '2025-06-01T16:00:00.000Z': Unparseable date: "2025-06-01T16:00:00.000Z"); nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.util.Date` from String "2025-06-01T16:00:00.000Z": not a valid representation (error: Failed to parse Date value '2025-06-01T16:00:00.000Z': Unparseable date: "2025-06-01T16:00:00.000Z")
|
||||
at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 91] (through reference chain: com.ruoyi.system.domain.bo.ProductionPlanBo["subItems"]->java.util.ArrayList[0]->com.ruoyi.system.domain.bo.WorkProcedureBo["startDate"])
|
||||
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)
|
||||
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)
|
||||
at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
|
||||
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
|
||||
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
|
||||
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:517)
|
||||
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)
|
||||
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
|
||||
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at com.ruoyi.common.filter.RepeatableFilter.doFilter(RepeatableFilter.java:32)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at cn.dev33.satoken.filter.SaPathCheckFilterForServlet.doFilter(SaPathCheckFilterForServlet.java:55)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at com.ruoyi.common.filter.XssFilter.doFilter(XssFilter.java:45)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
|
||||
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
|
||||
at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
|
||||
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
|
||||
at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
|
||||
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
|
||||
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
|
||||
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
|
||||
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
|
||||
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
|
||||
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:275)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131)
|
||||
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
|
||||
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100)
|
||||
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:393)
|
||||
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852)
|
||||
at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
|
||||
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)
|
||||
at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
Caused by: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.util.Date` from String "2025-06-01T16:00:00.000Z": not a valid representation (error: Failed to parse Date value '2025-06-01T16:00:00.000Z': Unparseable date: "2025-06-01T16:00:00.000Z")
|
||||
at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 91] (through reference chain: com.ruoyi.system.domain.bo.ProductionPlanBo["subItems"]->java.util.ArrayList[0]->com.ruoyi.system.domain.bo.WorkProcedureBo["startDate"])
|
||||
at com.fasterxml.jackson.databind.exc.InvalidFormatException.from(InvalidFormatException.java:67)
|
||||
at com.fasterxml.jackson.databind.DeserializationContext.weirdStringException(DeserializationContext.java:1991)
|
||||
at com.fasterxml.jackson.databind.DeserializationContext.handleWeirdStringValue(DeserializationContext.java:1219)
|
||||
at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseDate(StdDeserializer.java:1308)
|
||||
at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseDate(StdDeserializer.java:1250)
|
||||
at com.fasterxml.jackson.databind.deser.std.DateDeserializers$DateBasedDeserializer._parseDate(DateDeserializers.java:201)
|
||||
at com.fasterxml.jackson.databind.deser.std.DateDeserializers$DateDeserializer.deserialize(DateDeserializers.java:303)
|
||||
at com.fasterxml.jackson.databind.deser.std.DateDeserializers$DateDeserializer.deserialize(DateDeserializers.java:281)
|
||||
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
|
||||
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)
|
||||
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)
|
||||
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:355)
|
||||
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:244)
|
||||
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:28)
|
||||
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
|
||||
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)
|
||||
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)
|
||||
at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)
|
||||
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)
|
||||
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)
|
||||
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)
|
||||
... 85 common frames omitted
|
||||
2025-06-14 16:22:52 [XNIO-1 task-3] ERROR c.r.f.w.e.GlobalExceptionHandler - 请求地址'/system/plan',发生未知异常.
|
||||
org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.util.Date` from String "2025-06-01T16:00:00.000Z": not a valid representation (error: Failed to parse Date value '2025-06-01T16:00:00.000Z': Unparseable date: "2025-06-01T16:00:00.000Z"); nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.util.Date` from String "2025-06-01T16:00:00.000Z": not a valid representation (error: Failed to parse Date value '2025-06-01T16:00:00.000Z': Unparseable date: "2025-06-01T16:00:00.000Z")
|
||||
at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 91] (through reference chain: com.ruoyi.system.domain.bo.ProductionPlanBo["subItems"]->java.util.ArrayList[0]->com.ruoyi.system.domain.bo.WorkProcedureBo["startDate"])
|
||||
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)
|
||||
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)
|
||||
at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
|
||||
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
|
||||
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
|
||||
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:517)
|
||||
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)
|
||||
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
|
||||
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at com.ruoyi.common.filter.RepeatableFilter.doFilter(RepeatableFilter.java:32)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at cn.dev33.satoken.filter.SaPathCheckFilterForServlet.doFilter(SaPathCheckFilterForServlet.java:55)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at com.ruoyi.common.filter.XssFilter.doFilter(XssFilter.java:45)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
|
||||
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
|
||||
at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
|
||||
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
|
||||
at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
|
||||
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
|
||||
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
|
||||
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
|
||||
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
|
||||
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
|
||||
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:275)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131)
|
||||
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
|
||||
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100)
|
||||
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:393)
|
||||
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852)
|
||||
at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
|
||||
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)
|
||||
at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
Caused by: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.util.Date` from String "2025-06-01T16:00:00.000Z": not a valid representation (error: Failed to parse Date value '2025-06-01T16:00:00.000Z': Unparseable date: "2025-06-01T16:00:00.000Z")
|
||||
at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 91] (through reference chain: com.ruoyi.system.domain.bo.ProductionPlanBo["subItems"]->java.util.ArrayList[0]->com.ruoyi.system.domain.bo.WorkProcedureBo["startDate"])
|
||||
at com.fasterxml.jackson.databind.exc.InvalidFormatException.from(InvalidFormatException.java:67)
|
||||
at com.fasterxml.jackson.databind.DeserializationContext.weirdStringException(DeserializationContext.java:1991)
|
||||
at com.fasterxml.jackson.databind.DeserializationContext.handleWeirdStringValue(DeserializationContext.java:1219)
|
||||
at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseDate(StdDeserializer.java:1308)
|
||||
at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseDate(StdDeserializer.java:1250)
|
||||
at com.fasterxml.jackson.databind.deser.std.DateDeserializers$DateBasedDeserializer._parseDate(DateDeserializers.java:201)
|
||||
at com.fasterxml.jackson.databind.deser.std.DateDeserializers$DateDeserializer.deserialize(DateDeserializers.java:303)
|
||||
at com.fasterxml.jackson.databind.deser.std.DateDeserializers$DateDeserializer.deserialize(DateDeserializers.java:281)
|
||||
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
|
||||
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)
|
||||
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)
|
||||
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:355)
|
||||
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:244)
|
||||
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:28)
|
||||
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
|
||||
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)
|
||||
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)
|
||||
at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)
|
||||
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)
|
||||
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)
|
||||
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)
|
||||
... 85 common frames omitted
|
||||
@ -1,2 +0,0 @@
|
||||
2025-06-15 07:16:24 [Thread-70] ERROR c.ruoyi.framework.aspectj.LogAspect - 异常信息:null
|
||||
2025-06-15 08:15:01 [xxl-job, JobThread-16-1749946500006] ERROR c.ruoyi.framework.aspectj.LogAspect - 异常信息:null
|
||||
@ -1 +0,0 @@
|
||||
2025-06-21 15:04:36 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
@ -1,149 +0,0 @@
|
||||
2025-06-23 11:38:06 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-06-23 16:07:56 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-06-23 16:15:08 [main] ERROR c.b.m.core.MybatisConfiguration - mapper[com.ruoyi.system.mapper.ProcessRouteMapper.existsByProcessNoAndMaterialCode] is ignored, because it exists, maybe from xml file
|
||||
2025-06-23 16:15:54 [XNIO-1 task-2] ERROR c.r.f.w.e.GlobalExceptionHandler - 请求地址'/login',发生未知异常.
|
||||
com.ruoyi.common.exception.user.CaptchaException: 验证码错误
|
||||
at com.ruoyi.system.service.SysLoginService.validateCaptcha(SysLoginService.java:208)
|
||||
at com.ruoyi.system.service.SysLoginService.login(SysLoginService.java:74)
|
||||
at com.ruoyi.web.controller.system.SysLoginController.login(SysLoginController.java:54)
|
||||
at com.ruoyi.web.controller.system.SysLoginController$$FastClassBySpringCGLIB$$f5b1313e.invoke(<generated>)
|
||||
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
|
||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
|
||||
at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)
|
||||
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
|
||||
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
|
||||
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
|
||||
at com.ruoyi.web.controller.system.SysLoginController$$EnhancerBySpringCGLIB$$28bd8643.login(<generated>)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
|
||||
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
|
||||
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
|
||||
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:517)
|
||||
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)
|
||||
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
|
||||
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at com.ruoyi.common.filter.RepeatableFilter.doFilter(RepeatableFilter.java:32)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at cn.dev33.satoken.filter.SaPathCheckFilterForServlet.doFilter(SaPathCheckFilterForServlet.java:55)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
|
||||
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
|
||||
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
|
||||
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
|
||||
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
|
||||
at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
|
||||
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
|
||||
at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
|
||||
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
|
||||
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
|
||||
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
|
||||
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
|
||||
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
|
||||
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
|
||||
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:275)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131)
|
||||
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
|
||||
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:79)
|
||||
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100)
|
||||
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:393)
|
||||
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852)
|
||||
at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
|
||||
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
|
||||
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)
|
||||
at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-06-23 17:40:50 [xxl-job, executor ExecutorRegistryThread] ERROR c.x.job.core.util.XxlJobRemotingUtil - Connection refused: connect
|
||||
java.net.ConnectException: Connection refused: connect
|
||||
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
|
||||
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
|
||||
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
|
||||
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
|
||||
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
|
||||
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
|
||||
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
|
||||
at java.net.Socket.connect(Socket.java:606)
|
||||
at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
|
||||
at sun.net.www.http.HttpClient.openServer(HttpClient.java:499)
|
||||
at sun.net.www.http.HttpClient.openServer(HttpClient.java:594)
|
||||
at sun.net.www.http.HttpClient.<init>(HttpClient.java:278)
|
||||
at sun.net.www.http.HttpClient.New(HttpClient.java:375)
|
||||
at sun.net.www.http.HttpClient.New(HttpClient.java:407)
|
||||
at sun.net.www.protocol.http.HttpURLConnection.setNewClient(HttpURLConnection.java:781)
|
||||
at sun.net.www.protocol.http.HttpURLConnection.setNewClient(HttpURLConnection.java:769)
|
||||
at sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:711)
|
||||
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1627)
|
||||
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1534)
|
||||
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
|
||||
at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:119)
|
||||
at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:42)
|
||||
at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
2025-06-23 17:40:56 [xxl-job, executor ExecutorRegistryThread] ERROR c.x.job.core.util.XxlJobRemotingUtil - Connection refused: connect
|
||||
java.net.ConnectException: Connection refused: connect
|
||||
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
|
||||
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
|
||||
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
|
||||
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
|
||||
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
|
||||
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
|
||||
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
|
||||
at java.net.Socket.connect(Socket.java:606)
|
||||
at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
|
||||
at sun.net.www.http.HttpClient.openServer(HttpClient.java:499)
|
||||
at sun.net.www.http.HttpClient.openServer(HttpClient.java:594)
|
||||
at sun.net.www.http.HttpClient.<init>(HttpClient.java:278)
|
||||
at sun.net.www.http.HttpClient.New(HttpClient.java:375)
|
||||
at sun.net.www.http.HttpClient.New(HttpClient.java:393)
|
||||
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1240)
|
||||
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1167)
|
||||
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1061)
|
||||
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:995)
|
||||
at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:99)
|
||||
at com.xxl.job.core.biz.client.AdminBizClient.registryRemove(AdminBizClient.java:47)
|
||||
at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:84)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
File diff suppressed because it is too large
Load Diff
1127
logs/sys-error.log
1127
logs/sys-error.log
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,59 +0,0 @@
|
||||
2025-06-14 10:16:34 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 6.2.5.Final
|
||||
2025-06-14 10:16:34 [main] INFO com.ruoyi.RuoYiApplication - Starting RuoYiApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 18924 (F:\evo_k3cloud\ruoyi-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-06-14 10:16:34 [main] INFO com.ruoyi.RuoYiApplication - The following 1 profile is active: "dev"
|
||||
2025-06-14 10:16:38 [main] INFO o.j.m.auto.MinidaoAutoConfiguration - ******************* init miniDao config [ begin ] ***********************
|
||||
2025-06-14 10:16:38 [main] INFO o.j.m.auto.MinidaoAutoConfiguration - ------ minidao.base-package ------- org.jeecg.modules.jmreport.desreport.*
|
||||
2025-06-14 10:16:38 [main] INFO o.j.m.auto.MinidaoAutoConfiguration - ******************* init miniDao config [ end ] ***********************
|
||||
2025-06-14 10:16:38 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDao }
|
||||
2025-06-14 10:16:38 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDataSourceDao }
|
||||
2025-06-14 10:16:38 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDbDao }
|
||||
2025-06-14 10:16:38 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDbFieldDao }
|
||||
2025-06-14 10:16:38 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDbParamDao }
|
||||
2025-06-14 10:16:38 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDictDao }
|
||||
2025-06-14 10:16:38 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDictItemDao }
|
||||
2025-06-14 10:16:38 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportLinkDao }
|
||||
2025-06-14 10:16:38 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportMapDao }
|
||||
2025-06-14 10:16:38 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportShareDao }
|
||||
2025-06-14 10:16:40 [main] INFO io.undertow.servlet - Initializing Spring embedded WebApplicationContext
|
||||
2025-06-14 10:16:40 [main] INFO o.j.m.j.c.i.JimuReportConfiguration - Init JimuReport Config [ Token Interceptor & Resource Locations ]
|
||||
2025-06-14 10:16:40 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource detect P6SPY plugin and enabled it
|
||||
2025-06-14 10:16:40 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Starting...
|
||||
2025-06-14 10:16:40 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Start completed.
|
||||
2025-06-14 10:16:40 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [slave] success
|
||||
2025-06-14 10:16:40 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [master] success
|
||||
2025-06-14 10:16:40 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource initial loaded [2] datasource,primary datasource named [master]
|
||||
2025-06-14 10:16:41 [main] INFO o.j.m.j.c.JmReportExecutorConfig - Init JimuReport Config [ 线程池 ]
|
||||
2025-06-14 10:16:45 [main] INFO c.r.framework.config.JacksonConfig - 初始化 jackson 配置
|
||||
2025-06-14 10:16:46 [main] INFO c.ruoyi.framework.config.RedisConfig - 初始化 redis 配置
|
||||
2025-06-14 10:16:46 [main] INFO org.redisson.Version - Redisson 3.20.1
|
||||
2025-06-14 10:16:46 [redisson-netty-2-5] INFO o.r.c.p.MasterPubSubConnectionPool - 1 connections initialized for localhost/127.0.0.1:6379
|
||||
2025-06-14 10:16:46 [redisson-netty-2-4] INFO o.r.c.pool.MasterConnectionPool - 8 connections initialized for localhost/127.0.0.1:6379
|
||||
2025-06-14 10:16:49 [main] INFO com.ruoyi.job.config.XxlJobConfig - >>>>>>>>>>> xxl-job config init.
|
||||
2025-06-14 10:16:52 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:updateMaterials, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@47de4dce[class com.ruoyi.system.controller.ImMaterialController$$EnhancerBySpringCGLIB$$a9cf5d4b#updateMaterials]
|
||||
2025-06-14 10:16:52 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:procurementOrder, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@4951c45f[class com.ruoyi.system.controller.ImProductionPlanProController$$EnhancerBySpringCGLIB$$48b893f3#procurementOrder]
|
||||
2025-06-14 10:16:52 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:shengchanOrder2, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@488ae823[class com.ruoyi.system.controller.ImProductionPlanProController$$EnhancerBySpringCGLIB$$48b893f3#shengchanOrder2]
|
||||
2025-06-14 10:16:52 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:outsourcingOrder, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@19b6b7e7[class com.ruoyi.system.controller.ImProductionPlanProController$$EnhancerBySpringCGLIB$$48b893f3#outsourcingOrder]
|
||||
2025-06-14 10:16:52 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:getMassageDelayDate, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@2c332922[class com.ruoyi.system.controller.KingdeeWorkCenterDataController$$EnhancerBySpringCGLIB$$46600595#getMassageDelayDate]
|
||||
2025-06-14 10:16:52 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:getMassageForMultipleWorkCenters, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@6b8773c7[class com.ruoyi.system.controller.KingdeeWorkCenterDataController$$EnhancerBySpringCGLIB$$46600595#getMassageForMultipleWorkCenters]
|
||||
2025-06-14 10:16:52 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:getKuCun, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@74534564[class com.ruoyi.system.controller.KingdeeWorkCenterDataController$$EnhancerBySpringCGLIB$$46600595#getKuCun]
|
||||
2025-06-14 10:16:52 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:getKuCunTo40SB, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@5876cd86[class com.ruoyi.system.controller.KingdeeWorkCenterDataController$$EnhancerBySpringCGLIB$$46600595#getKuCunTo40SB]
|
||||
2025-06-14 10:16:53 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:generateDoc2, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@6d398593[class com.ruoyi.system.controller.WlStockDataController$$EnhancerBySpringCGLIB$$a66c6dff#generateDoc1]
|
||||
2025-06-14 10:16:53 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:demoJobHandler2, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@3d70dab8[class com.ruoyi.job.service.SampleService#demoJobHandler2]
|
||||
2025-06-14 10:16:53 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:demoJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@53e6c017[class com.ruoyi.job.service.SampleService#demoJobHandler]
|
||||
2025-06-14 10:16:53 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:httpJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@3d123d10[class com.ruoyi.job.service.SampleService#httpJobHandler]
|
||||
2025-06-14 10:16:53 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:commandJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@1ca6323c[class com.ruoyi.job.service.SampleService#commandJobHandler]
|
||||
2025-06-14 10:16:53 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:shardingJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@27b89e0a[class com.ruoyi.job.service.SampleService#shardingJobHandler]
|
||||
2025-06-14 10:16:53 [main] INFO io.undertow - starting server: Undertow - 2.2.24.Final
|
||||
2025-06-14 10:16:53 [Thread-49] INFO com.xxl.job.core.server.EmbedServer - >>>>>>>>>>> xxl-job remoting server start success, nettype = class com.xxl.job.core.server.EmbedServer, port = 9101
|
||||
2025-06-14 10:16:53 [main] INFO org.xnio - XNIO version 3.8.7.Final
|
||||
2025-06-14 10:16:53 [main] INFO org.xnio.nio - XNIO NIO Implementation Version 3.8.7.Final
|
||||
2025-06-14 10:16:53 [main] INFO org.jboss.threads - JBoss Threads version 3.1.0.Final
|
||||
2025-06-14 10:16:53 [main] INFO com.ruoyi.RuoYiApplication - Started RuoYiApplication in 20.651 seconds (JVM running for 22.41)
|
||||
2025-06-14 10:16:54 [main] INFO c.r.s.runner.SystemApplicationRunner - 初始化OSS配置成功
|
||||
2025-06-14 10:16:54 [main] INFO c.r.s.runner.SystemApplicationRunner - 加载参数缓存数据成功
|
||||
2025-06-14 10:16:54 [main] INFO c.r.s.runner.SystemApplicationRunner - 加载字典缓存数据成功
|
||||
2025-06-14 10:16:55 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as 08432fb0b14f
|
||||
2025-06-14 10:16:55 [RMI TCP Connection(4)-192.168.5.200] INFO io.undertow.servlet - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-06-14 15:56:51 [XNIO-1 task-1] INFO c.r.f.listener.UserActionListener - user doLogin, userId:sys_user:1, token:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJzUzBob0ZONEVkQzZFczhZQ1d0NU5FeGpEM3VNRlhzMSIsInVzZXJJZCI6MX0.s3x8yt_a9YEUQNI0yvpkQcBFAB_SjBxn54O0LJpd-40
|
||||
2025-06-14 15:56:51 [XNIO-1 task-1] INFO c.r.f.listener.UserActionListener - user doLogout, userId:sys_user:1, token:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiI3Y2xQWWtPS29OZFp4U2d0WUFpcDZnTDBUTWdYYTZoZiIsInVzZXJJZCI6MX0.Xu2wA3khYtSElBuVPKQOP4AdLhPqJKmhJQZ2w6BsugI
|
||||
2025-06-14 15:56:51 [schedule-pool-1] INFO c.r.s.s.i.SysLogininforServiceImpl - [192.168.5.200]内网IP[admin][Success][登录成功]
|
||||
File diff suppressed because one or more lines are too long
@ -1,73 +0,0 @@
|
||||
2025-06-21 15:04:30 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 6.2.5.Final
|
||||
2025-06-21 15:04:30 [main] INFO com.ruoyi.RuoYiApplication - Starting RuoYiApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 33032 (F:\evo_k3cloud\ruoyi-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-06-21 15:04:30 [main] INFO com.ruoyi.RuoYiApplication - The following 1 profile is active: "dev"
|
||||
2025-06-21 15:04:32 [main] INFO o.j.m.auto.MinidaoAutoConfiguration - ******************* init miniDao config [ begin ] ***********************
|
||||
2025-06-21 15:04:32 [main] INFO o.j.m.auto.MinidaoAutoConfiguration - ------ minidao.base-package ------- org.jeecg.modules.jmreport.desreport.*
|
||||
2025-06-21 15:04:32 [main] INFO o.j.m.auto.MinidaoAutoConfiguration - ******************* init miniDao config [ end ] ***********************
|
||||
2025-06-21 15:04:32 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDao }
|
||||
2025-06-21 15:04:32 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDataSourceDao }
|
||||
2025-06-21 15:04:32 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDbDao }
|
||||
2025-06-21 15:04:32 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDbFieldDao }
|
||||
2025-06-21 15:04:32 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDbParamDao }
|
||||
2025-06-21 15:04:32 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDictDao }
|
||||
2025-06-21 15:04:32 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDictItemDao }
|
||||
2025-06-21 15:04:32 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportLinkDao }
|
||||
2025-06-21 15:04:32 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportMapDao }
|
||||
2025-06-21 15:04:32 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportShareDao }
|
||||
2025-06-21 15:04:33 [main] INFO io.undertow.servlet - Initializing Spring embedded WebApplicationContext
|
||||
2025-06-21 15:04:33 [main] INFO o.j.m.j.c.i.JimuReportConfiguration - Init JimuReport Config [ Token Interceptor & Resource Locations ]
|
||||
2025-06-21 15:04:33 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource detect P6SPY plugin and enabled it
|
||||
2025-06-21 15:04:33 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Starting...
|
||||
2025-06-21 15:04:33 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Start completed.
|
||||
2025-06-21 15:04:33 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [slave] success
|
||||
2025-06-21 15:04:33 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [master] success
|
||||
2025-06-21 15:04:33 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource initial loaded [2] datasource,primary datasource named [master]
|
||||
2025-06-21 15:04:34 [main] INFO o.j.m.j.c.JmReportExecutorConfig - Init JimuReport Config [ 线程池 ]
|
||||
2025-06-21 15:04:38 [main] INFO c.r.framework.config.JacksonConfig - 初始化 jackson 配置
|
||||
2025-06-21 15:04:39 [main] INFO c.ruoyi.framework.config.RedisConfig - 初始化 redis 配置
|
||||
2025-06-21 15:04:39 [main] INFO org.redisson.Version - Redisson 3.20.1
|
||||
2025-06-21 15:04:39 [redisson-netty-2-5] INFO o.r.c.p.MasterPubSubConnectionPool - 1 connections initialized for localhost/127.0.0.1:6379
|
||||
2025-06-21 15:04:39 [redisson-netty-2-4] INFO o.r.c.pool.MasterConnectionPool - 8 connections initialized for localhost/127.0.0.1:6379
|
||||
2025-06-21 15:04:41 [main] INFO com.ruoyi.job.config.XxlJobConfig - >>>>>>>>>>> xxl-job config init.
|
||||
2025-06-21 15:04:43 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:updateMaterials, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@4487dce[class com.ruoyi.system.controller.ImMaterialController$$EnhancerBySpringCGLIB$$b9ac3f42#updateMaterials]
|
||||
2025-06-21 15:04:43 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:outsourcingOrder, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@3aafa1c1[class com.ruoyi.system.controller.ImProductionPlanProController$$EnhancerBySpringCGLIB$$589575ea#outsourcingOrder]
|
||||
2025-06-21 15:04:43 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:shengchanOrder2, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@192f807[class com.ruoyi.system.controller.ImProductionPlanProController$$EnhancerBySpringCGLIB$$589575ea#shengchanOrder2]
|
||||
2025-06-21 15:04:43 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:procurementOrder, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@36cbe0fe[class com.ruoyi.system.controller.ImProductionPlanProController$$EnhancerBySpringCGLIB$$589575ea#procurementOrder]
|
||||
2025-06-21 15:04:43 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:getMassageForMultipleWorkCenters, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@712a5de4[class com.ruoyi.system.controller.KingdeeWorkCenterDataController$$EnhancerBySpringCGLIB$$563ce78c#getMassageForMultipleWorkCenters]
|
||||
2025-06-21 15:04:43 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:getMassageDelayDate, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@364c4ba9[class com.ruoyi.system.controller.KingdeeWorkCenterDataController$$EnhancerBySpringCGLIB$$563ce78c#getMassageDelayDate]
|
||||
2025-06-21 15:04:43 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:getKuCun, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@2008dfa7[class com.ruoyi.system.controller.KingdeeWorkCenterDataController$$EnhancerBySpringCGLIB$$563ce78c#getKuCun]
|
||||
2025-06-21 15:04:43 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:getKuCunTo40SB, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@492d0748[class com.ruoyi.system.controller.KingdeeWorkCenterDataController$$EnhancerBySpringCGLIB$$563ce78c#getKuCunTo40SB]
|
||||
2025-06-21 15:04:43 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:generateDoc2, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@6a4ba6f4[class com.ruoyi.system.controller.WlStockDataController$$EnhancerBySpringCGLIB$$b6494ff6#generateDoc1]
|
||||
2025-06-21 15:04:43 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:commandJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@3e0eb917[class com.ruoyi.job.service.SampleService#commandJobHandler]
|
||||
2025-06-21 15:04:43 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:shardingJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@589dac96[class com.ruoyi.job.service.SampleService#shardingJobHandler]
|
||||
2025-06-21 15:04:43 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:httpJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@792bf78a[class com.ruoyi.job.service.SampleService#httpJobHandler]
|
||||
2025-06-21 15:04:43 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:demoJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@4e60925d[class com.ruoyi.job.service.SampleService#demoJobHandler]
|
||||
2025-06-21 15:04:43 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:demoJobHandler2, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@5ed4c87[class com.ruoyi.job.service.SampleService#demoJobHandler2]
|
||||
2025-06-21 15:04:43 [main] INFO io.undertow - starting server: Undertow - 2.2.24.Final
|
||||
2025-06-21 15:04:43 [Thread-36] INFO com.xxl.job.core.server.EmbedServer - >>>>>>>>>>> xxl-job remoting server start success, nettype = class com.xxl.job.core.server.EmbedServer, port = 9101
|
||||
2025-06-21 15:04:43 [main] INFO org.xnio - XNIO version 3.8.7.Final
|
||||
2025-06-21 15:04:43 [main] INFO org.xnio.nio - XNIO NIO Implementation Version 3.8.7.Final
|
||||
2025-06-21 15:04:43 [main] INFO org.jboss.threads - JBoss Threads version 3.1.0.Final
|
||||
2025-06-21 15:04:43 [main] INFO com.ruoyi.RuoYiApplication - Started RuoYiApplication in 13.975 seconds (JVM running for 15.031)
|
||||
2025-06-21 15:04:43 [main] INFO c.r.s.runner.SystemApplicationRunner - 初始化OSS配置成功
|
||||
2025-06-21 15:04:43 [main] INFO c.r.s.runner.SystemApplicationRunner - 加载参数缓存数据成功
|
||||
2025-06-21 15:04:43 [main] INFO c.r.s.runner.SystemApplicationRunner - 加载字典缓存数据成功
|
||||
2025-06-21 15:04:43 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as 08432fb0b14f
|
||||
2025-06-21 15:04:43 [XNIO-1 task-1] INFO io.undertow.servlet - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-06-21 15:17:08 [XNIO-1 task-1] INFO c.r.f.listener.UserActionListener - user doLogin, userId:sys_user:1, token:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJLNlVDOVgzYUl3clZidG03RWFPVHkxaTFNS2dwaVkzMSIsInVzZXJJZCI6MX0.6Dc_MNZN6j6xzhQCc-XUj8Wt2M924PIR-NX0y8iPQck
|
||||
2025-06-21 15:17:08 [XNIO-1 task-1] INFO c.r.f.listener.UserActionListener - user doLogout, userId:sys_user:1, token:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiIxT1BVeWthdDNXMXlIcWJoaG00Snppb0Y3RGxrekp4WiIsInVzZXJJZCI6MX0.se5v9gL3XwET50Bp6lRCNTiHttUZtClKdqNgRoEc6Ow
|
||||
2025-06-21 15:17:08 [schedule-pool-1] INFO c.r.s.s.i.SysLogininforServiceImpl - [127.0.0.1]内网IP[admin][Success][登录成功]
|
||||
2025-06-21 17:45:00 [SpringApplicationShutdownHook] INFO io.undertow - stopping server: Undertow - 2.2.24.Final
|
||||
2025-06-21 17:45:00 [SpringApplicationShutdownHook] INFO io.undertow.servlet - Destroying Spring FrameworkServlet 'dispatcherServlet'
|
||||
2025-06-21 17:45:00 [Thread-36] INFO com.xxl.job.core.server.EmbedServer - >>>>>>>>>>> xxl-job remoting server stop.
|
||||
2025-06-21 17:45:00 [xxl-job, executor ExecutorRegistryThread] INFO c.x.j.c.t.ExecutorRegistryThread - >>>>>>>>>>> xxl-job registry-remove success, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='xxl-job-executor', registryValue='http://192.168.5.200:9101/'}, registryResult:ReturnT [code=200, msg=null, content=null]
|
||||
2025-06-21 17:45:00 [xxl-job, executor ExecutorRegistryThread] INFO c.x.j.c.t.ExecutorRegistryThread - >>>>>>>>>>> xxl-job, executor registry thread destroy.
|
||||
2025-06-21 17:45:00 [SpringApplicationShutdownHook] INFO com.xxl.job.core.server.EmbedServer - >>>>>>>>>>> xxl-job remoting server destroy success.
|
||||
2025-06-21 17:45:00 [xxl-job, executor JobLogFileCleanThread] INFO c.x.j.c.thread.JobLogFileCleanThread - >>>>>>>>>>> xxl-job, executor JobLogFileCleanThread thread destroy.
|
||||
2025-06-21 17:45:00 [xxl-job, executor TriggerCallbackThread] INFO c.x.j.c.thread.TriggerCallbackThread - >>>>>>>>>>> xxl-job, executor callback thread destroy.
|
||||
2025-06-21 17:45:00 [Thread-35] INFO c.x.j.c.thread.TriggerCallbackThread - >>>>>>>>>>> xxl-job, executor retry callback thread destroy.
|
||||
2025-06-21 17:45:00 [SpringApplicationShutdownHook] INFO c.r.f.manager.ShutdownManager - ====关闭后台任务任务线程池====
|
||||
2025-06-21 17:45:00 [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource start closing ....
|
||||
2025-06-21 17:45:00 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown initiated...
|
||||
2025-06-21 17:45:00 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown completed.
|
||||
2025-06-21 17:45:00 [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource all closed success,bye
|
||||
@ -1,204 +0,0 @@
|
||||
2025-06-23 11:38:00 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 6.2.5.Final
|
||||
2025-06-23 11:38:00 [main] INFO com.ruoyi.RuoYiApplication - Starting RuoYiApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 552976 (F:\evo_k3cloud\ruoyi-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-06-23 11:38:00 [main] INFO com.ruoyi.RuoYiApplication - The following 1 profile is active: "dev"
|
||||
2025-06-23 11:38:03 [main] INFO o.j.m.auto.MinidaoAutoConfiguration - ******************* init miniDao config [ begin ] ***********************
|
||||
2025-06-23 11:38:03 [main] INFO o.j.m.auto.MinidaoAutoConfiguration - ------ minidao.base-package ------- org.jeecg.modules.jmreport.desreport.*
|
||||
2025-06-23 11:38:03 [main] INFO o.j.m.auto.MinidaoAutoConfiguration - ******************* init miniDao config [ end ] ***********************
|
||||
2025-06-23 11:38:03 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDao }
|
||||
2025-06-23 11:38:03 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDataSourceDao }
|
||||
2025-06-23 11:38:03 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDbDao }
|
||||
2025-06-23 11:38:03 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDbFieldDao }
|
||||
2025-06-23 11:38:03 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDbParamDao }
|
||||
2025-06-23 11:38:03 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDictDao }
|
||||
2025-06-23 11:38:03 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDictItemDao }
|
||||
2025-06-23 11:38:03 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportLinkDao }
|
||||
2025-06-23 11:38:03 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportMapDao }
|
||||
2025-06-23 11:38:03 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportShareDao }
|
||||
2025-06-23 11:38:04 [main] INFO io.undertow.servlet - Initializing Spring embedded WebApplicationContext
|
||||
2025-06-23 11:38:04 [main] INFO o.j.m.j.c.i.JimuReportConfiguration - Init JimuReport Config [ Token Interceptor & Resource Locations ]
|
||||
2025-06-23 11:38:04 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource detect P6SPY plugin and enabled it
|
||||
2025-06-23 11:38:04 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Starting...
|
||||
2025-06-23 11:38:04 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Start completed.
|
||||
2025-06-23 11:38:04 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [slave] success
|
||||
2025-06-23 11:38:04 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [master] success
|
||||
2025-06-23 11:38:04 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource initial loaded [2] datasource,primary datasource named [master]
|
||||
2025-06-23 11:38:05 [main] INFO o.j.m.j.c.JmReportExecutorConfig - Init JimuReport Config [ 线程池 ]
|
||||
2025-06-23 11:38:07 [main] INFO c.r.framework.config.JacksonConfig - 初始化 jackson 配置
|
||||
2025-06-23 11:38:07 [main] INFO c.ruoyi.framework.config.RedisConfig - 初始化 redis 配置
|
||||
2025-06-23 11:38:08 [main] INFO org.redisson.Version - Redisson 3.20.1
|
||||
2025-06-23 11:38:08 [redisson-netty-2-5] INFO o.r.c.p.MasterPubSubConnectionPool - 1 connections initialized for localhost/127.0.0.1:6379
|
||||
2025-06-23 11:38:08 [redisson-netty-2-4] INFO o.r.c.pool.MasterConnectionPool - 8 connections initialized for localhost/127.0.0.1:6379
|
||||
2025-06-23 11:38:09 [main] INFO com.ruoyi.job.config.XxlJobConfig - >>>>>>>>>>> xxl-job config init.
|
||||
2025-06-23 11:38:11 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:updateMaterials, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@192f807[class com.ruoyi.system.controller.ImMaterialController$$EnhancerBySpringCGLIB$$c6f48451#updateMaterials]
|
||||
2025-06-23 11:38:11 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:outsourcingOrder, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@36cbe0fe[class com.ruoyi.system.controller.ImProductionPlanProController$$EnhancerBySpringCGLIB$$65ddbaf9#outsourcingOrder]
|
||||
2025-06-23 11:38:11 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:procurementOrder, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@712a5de4[class com.ruoyi.system.controller.ImProductionPlanProController$$EnhancerBySpringCGLIB$$65ddbaf9#procurementOrder]
|
||||
2025-06-23 11:38:11 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:shengchanOrder2, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@364c4ba9[class com.ruoyi.system.controller.ImProductionPlanProController$$EnhancerBySpringCGLIB$$65ddbaf9#shengchanOrder2]
|
||||
2025-06-23 11:38:11 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:getKuCun, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@2008dfa7[class com.ruoyi.system.controller.KingdeeWorkCenterDataController$$EnhancerBySpringCGLIB$$63852c9b#getKuCun]
|
||||
2025-06-23 11:38:11 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:getKuCunTo40SB, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@492d0748[class com.ruoyi.system.controller.KingdeeWorkCenterDataController$$EnhancerBySpringCGLIB$$63852c9b#getKuCunTo40SB]
|
||||
2025-06-23 11:38:11 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:getMassageDelayDate, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@6a4ba6f4[class com.ruoyi.system.controller.KingdeeWorkCenterDataController$$EnhancerBySpringCGLIB$$63852c9b#getMassageDelayDate]
|
||||
2025-06-23 11:38:11 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:getMassageForMultipleWorkCenters, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@3e0eb917[class com.ruoyi.system.controller.KingdeeWorkCenterDataController$$EnhancerBySpringCGLIB$$63852c9b#getMassageForMultipleWorkCenters]
|
||||
2025-06-23 11:38:11 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:generateDoc2, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@589dac96[class com.ruoyi.system.controller.WlStockDataController$$EnhancerBySpringCGLIB$$c3919505#generateDoc1]
|
||||
2025-06-23 11:38:11 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:commandJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@792bf78a[class com.ruoyi.job.service.SampleService#commandJobHandler]
|
||||
2025-06-23 11:38:11 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:shardingJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@4e60925d[class com.ruoyi.job.service.SampleService#shardingJobHandler]
|
||||
2025-06-23 11:38:11 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:demoJobHandler2, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@5ed4c87[class com.ruoyi.job.service.SampleService#demoJobHandler2]
|
||||
2025-06-23 11:38:11 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:demoJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@30a1b9b0[class com.ruoyi.job.service.SampleService#demoJobHandler]
|
||||
2025-06-23 11:38:11 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:httpJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@16908f89[class com.ruoyi.job.service.SampleService#httpJobHandler]
|
||||
2025-06-23 11:38:11 [main] INFO io.undertow - starting server: Undertow - 2.2.24.Final
|
||||
2025-06-23 11:38:11 [Thread-34] INFO com.xxl.job.core.server.EmbedServer - >>>>>>>>>>> xxl-job remoting server start success, nettype = class com.xxl.job.core.server.EmbedServer, port = 9101
|
||||
2025-06-23 11:38:11 [main] INFO org.xnio - XNIO version 3.8.7.Final
|
||||
2025-06-23 11:38:11 [main] INFO org.xnio.nio - XNIO NIO Implementation Version 3.8.7.Final
|
||||
2025-06-23 11:38:11 [main] INFO org.jboss.threads - JBoss Threads version 3.1.0.Final
|
||||
2025-06-23 11:38:11 [main] INFO com.ruoyi.RuoYiApplication - Started RuoYiApplication in 11.509 seconds (JVM running for 12.76)
|
||||
2025-06-23 11:38:12 [main] INFO c.r.s.runner.SystemApplicationRunner - 初始化OSS配置成功
|
||||
2025-06-23 11:38:12 [main] INFO c.r.s.runner.SystemApplicationRunner - 加载参数缓存数据成功
|
||||
2025-06-23 11:38:12 [main] INFO c.r.s.runner.SystemApplicationRunner - 加载字典缓存数据成功
|
||||
2025-06-23 11:38:12 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as 08432fb0b14f
|
||||
2025-06-23 11:38:12 [XNIO-1 task-1] INFO io.undertow.servlet - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-06-23 16:07:50 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 6.2.5.Final
|
||||
2025-06-23 16:07:50 [main] INFO com.ruoyi.RuoYiApplication - Starting RuoYiApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 30092 (F:\evo_k3cloud\ruoyi-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-06-23 16:07:50 [main] INFO com.ruoyi.RuoYiApplication - The following 1 profile is active: "dev"
|
||||
2025-06-23 16:07:53 [main] INFO o.j.m.auto.MinidaoAutoConfiguration - ******************* init miniDao config [ begin ] ***********************
|
||||
2025-06-23 16:07:53 [main] INFO o.j.m.auto.MinidaoAutoConfiguration - ------ minidao.base-package ------- org.jeecg.modules.jmreport.desreport.*
|
||||
2025-06-23 16:07:53 [main] INFO o.j.m.auto.MinidaoAutoConfiguration - ******************* init miniDao config [ end ] ***********************
|
||||
2025-06-23 16:07:53 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDao }
|
||||
2025-06-23 16:07:53 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDataSourceDao }
|
||||
2025-06-23 16:07:53 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDbDao }
|
||||
2025-06-23 16:07:53 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDbFieldDao }
|
||||
2025-06-23 16:07:53 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDbParamDao }
|
||||
2025-06-23 16:07:53 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDictDao }
|
||||
2025-06-23 16:07:53 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDictItemDao }
|
||||
2025-06-23 16:07:53 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportLinkDao }
|
||||
2025-06-23 16:07:53 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportMapDao }
|
||||
2025-06-23 16:07:53 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportShareDao }
|
||||
2025-06-23 16:07:54 [main] INFO io.undertow.servlet - Initializing Spring embedded WebApplicationContext
|
||||
2025-06-23 16:07:54 [main] INFO o.j.m.j.c.i.JimuReportConfiguration - Init JimuReport Config [ Token Interceptor & Resource Locations ]
|
||||
2025-06-23 16:07:54 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource detect P6SPY plugin and enabled it
|
||||
2025-06-23 16:07:54 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Starting...
|
||||
2025-06-23 16:07:54 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Start completed.
|
||||
2025-06-23 16:07:54 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [slave] success
|
||||
2025-06-23 16:07:54 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [master] success
|
||||
2025-06-23 16:07:54 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource initial loaded [2] datasource,primary datasource named [master]
|
||||
2025-06-23 16:07:54 [main] INFO o.j.m.j.c.JmReportExecutorConfig - Init JimuReport Config [ 线程池 ]
|
||||
2025-06-23 16:07:57 [main] INFO c.r.framework.config.JacksonConfig - 初始化 jackson 配置
|
||||
2025-06-23 16:07:57 [main] INFO c.ruoyi.framework.config.RedisConfig - 初始化 redis 配置
|
||||
2025-06-23 16:07:57 [main] INFO org.redisson.Version - Redisson 3.20.1
|
||||
2025-06-23 16:07:58 [redisson-netty-2-5] INFO o.r.c.p.MasterPubSubConnectionPool - 1 connections initialized for localhost/127.0.0.1:6379
|
||||
2025-06-23 16:07:58 [redisson-netty-2-4] INFO o.r.c.pool.MasterConnectionPool - 8 connections initialized for localhost/127.0.0.1:6379
|
||||
2025-06-23 16:07:59 [main] INFO com.ruoyi.job.config.XxlJobConfig - >>>>>>>>>>> xxl-job config init.
|
||||
2025-06-23 16:08:01 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:updateMaterials, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@272d0dd3[class com.ruoyi.system.controller.ImMaterialController$$EnhancerBySpringCGLIB$$4e3d743b#updateMaterials]
|
||||
2025-06-23 16:08:01 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:shengchanOrder2, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@4f142cbd[class com.ruoyi.system.controller.ImProductionPlanProController$$EnhancerBySpringCGLIB$$ed26aae3#shengchanOrder2]
|
||||
2025-06-23 16:08:01 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:procurementOrder, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@766534b0[class com.ruoyi.system.controller.ImProductionPlanProController$$EnhancerBySpringCGLIB$$ed26aae3#procurementOrder]
|
||||
2025-06-23 16:08:01 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:outsourcingOrder, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@4f1cb802[class com.ruoyi.system.controller.ImProductionPlanProController$$EnhancerBySpringCGLIB$$ed26aae3#outsourcingOrder]
|
||||
2025-06-23 16:08:01 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:getMassageForMultipleWorkCenters, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@1077a7[class com.ruoyi.system.controller.KingdeeWorkCenterDataController$$EnhancerBySpringCGLIB$$eace1c85#getMassageForMultipleWorkCenters]
|
||||
2025-06-23 16:08:01 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:getMassageDelayDate, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@6e0fd2dc[class com.ruoyi.system.controller.KingdeeWorkCenterDataController$$EnhancerBySpringCGLIB$$eace1c85#getMassageDelayDate]
|
||||
2025-06-23 16:08:01 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:getKuCun, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@3110bb19[class com.ruoyi.system.controller.KingdeeWorkCenterDataController$$EnhancerBySpringCGLIB$$eace1c85#getKuCun]
|
||||
2025-06-23 16:08:01 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:getKuCunTo40SB, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@1be6c991[class com.ruoyi.system.controller.KingdeeWorkCenterDataController$$EnhancerBySpringCGLIB$$eace1c85#getKuCunTo40SB]
|
||||
2025-06-23 16:08:01 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:generateDoc2, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@18482805[class com.ruoyi.system.controller.WlStockDataController$$EnhancerBySpringCGLIB$$4ada84ef#generateDoc1]
|
||||
2025-06-23 16:08:01 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:shardingJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@84180e2[class com.ruoyi.job.service.SampleService#shardingJobHandler]
|
||||
2025-06-23 16:08:01 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:commandJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@3c3d2a80[class com.ruoyi.job.service.SampleService#commandJobHandler]
|
||||
2025-06-23 16:08:01 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:demoJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@11bac6d7[class com.ruoyi.job.service.SampleService#demoJobHandler]
|
||||
2025-06-23 16:08:01 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:demoJobHandler2, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@48ebcce5[class com.ruoyi.job.service.SampleService#demoJobHandler2]
|
||||
2025-06-23 16:08:01 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:httpJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@4c29138a[class com.ruoyi.job.service.SampleService#httpJobHandler]
|
||||
2025-06-23 16:08:01 [main] INFO io.undertow - starting server: Undertow - 2.2.24.Final
|
||||
2025-06-23 16:08:01 [Thread-34] INFO com.xxl.job.core.server.EmbedServer - >>>>>>>>>>> xxl-job remoting server start success, nettype = class com.xxl.job.core.server.EmbedServer, port = 9101
|
||||
2025-06-23 16:08:01 [main] INFO org.xnio - XNIO version 3.8.7.Final
|
||||
2025-06-23 16:08:01 [main] INFO org.xnio.nio - XNIO NIO Implementation Version 3.8.7.Final
|
||||
2025-06-23 16:08:01 [main] INFO org.jboss.threads - JBoss Threads version 3.1.0.Final
|
||||
2025-06-23 16:08:01 [main] INFO com.ruoyi.RuoYiApplication - Started RuoYiApplication in 11.84 seconds (JVM running for 14.127)
|
||||
2025-06-23 16:08:01 [main] INFO c.r.s.runner.SystemApplicationRunner - 初始化OSS配置成功
|
||||
2025-06-23 16:08:01 [main] INFO c.r.s.runner.SystemApplicationRunner - 加载参数缓存数据成功
|
||||
2025-06-23 16:08:02 [main] INFO c.r.s.runner.SystemApplicationRunner - 加载字典缓存数据成功
|
||||
2025-06-23 16:08:02 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as 08432fb0b14f
|
||||
2025-06-23 16:08:02 [XNIO-1 task-1] INFO io.undertow.servlet - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-06-23 16:09:05 [XNIO-1 task-1] INFO c.r.f.listener.UserActionListener - user doLogin, userId:sys_user:1, token:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJUVjk4T29iZU1uOHVUdDNZVWRLcEVuaGZDVWVNbUlSbiIsInVzZXJJZCI6MX0.0y3la9exRErtsVJYcOUltlLwxwlaJHgpfFDZjuDLAqk
|
||||
2025-06-23 16:09:05 [XNIO-1 task-1] INFO c.r.f.listener.UserActionListener - user doLogout, userId:sys_user:1, token:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJoaXlKbmEzRGhjQmh4cjJrbEU3RkxmSjdleGR0N1A5QSIsInVzZXJJZCI6MX0.ZyZa-pOmKk-6a32LKZJmvBlwYCKpRoZld641E5krTuY
|
||||
2025-06-23 16:09:05 [schedule-pool-1] INFO c.r.s.s.i.SysLogininforServiceImpl - [127.0.0.1]内网IP[admin][Success][登录成功]
|
||||
2025-06-23 16:12:02 [SpringApplicationShutdownHook] INFO io.undertow - stopping server: Undertow - 2.2.24.Final
|
||||
2025-06-23 16:12:02 [SpringApplicationShutdownHook] INFO io.undertow.servlet - Destroying Spring FrameworkServlet 'dispatcherServlet'
|
||||
2025-06-23 16:12:02 [Thread-34] INFO com.xxl.job.core.server.EmbedServer - >>>>>>>>>>> xxl-job remoting server stop.
|
||||
2025-06-23 16:12:02 [xxl-job, executor ExecutorRegistryThread] INFO c.x.j.c.t.ExecutorRegistryThread - >>>>>>>>>>> xxl-job registry-remove success, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='xxl-job-executor', registryValue='http://192.168.5.200:9101/'}, registryResult:ReturnT [code=200, msg=null, content=null]
|
||||
2025-06-23 16:12:02 [xxl-job, executor ExecutorRegistryThread] INFO c.x.j.c.t.ExecutorRegistryThread - >>>>>>>>>>> xxl-job, executor registry thread destroy.
|
||||
2025-06-23 16:12:02 [SpringApplicationShutdownHook] INFO com.xxl.job.core.server.EmbedServer - >>>>>>>>>>> xxl-job remoting server destroy success.
|
||||
2025-06-23 16:12:02 [xxl-job, executor JobLogFileCleanThread] INFO c.x.j.c.thread.JobLogFileCleanThread - >>>>>>>>>>> xxl-job, executor JobLogFileCleanThread thread destroy.
|
||||
2025-06-23 16:12:02 [xxl-job, executor TriggerCallbackThread] INFO c.x.j.c.thread.TriggerCallbackThread - >>>>>>>>>>> xxl-job, executor callback thread destroy.
|
||||
2025-06-23 16:12:02 [Thread-33] INFO c.x.j.c.thread.TriggerCallbackThread - >>>>>>>>>>> xxl-job, executor retry callback thread destroy.
|
||||
2025-06-23 16:12:02 [SpringApplicationShutdownHook] INFO c.r.f.manager.ShutdownManager - ====关闭后台任务任务线程池====
|
||||
2025-06-23 16:12:02 [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource start closing ....
|
||||
2025-06-23 16:12:02 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown initiated...
|
||||
2025-06-23 16:12:02 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown completed.
|
||||
2025-06-23 16:12:02 [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource all closed success,bye
|
||||
2025-06-23 16:15:00 [background-preinit] INFO o.h.validator.internal.util.Version - HV000001: Hibernate Validator 6.2.5.Final
|
||||
2025-06-23 16:15:00 [main] INFO com.ruoyi.RuoYiApplication - Starting RuoYiApplication using Java 1.8.0_421 on PC-20250327GIRN with PID 4116 (F:\evo_k3cloud\ruoyi-admin\target\classes started by Administrator in F:\evo_k3cloud)
|
||||
2025-06-23 16:15:00 [main] INFO com.ruoyi.RuoYiApplication - The following 1 profile is active: "dev"
|
||||
2025-06-23 16:15:03 [main] INFO o.j.m.auto.MinidaoAutoConfiguration - ******************* init miniDao config [ begin ] ***********************
|
||||
2025-06-23 16:15:03 [main] INFO o.j.m.auto.MinidaoAutoConfiguration - ------ minidao.base-package ------- org.jeecg.modules.jmreport.desreport.*
|
||||
2025-06-23 16:15:03 [main] INFO o.j.m.auto.MinidaoAutoConfiguration - ******************* init miniDao config [ end ] ***********************
|
||||
2025-06-23 16:15:03 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDao }
|
||||
2025-06-23 16:15:03 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDataSourceDao }
|
||||
2025-06-23 16:15:03 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDbDao }
|
||||
2025-06-23 16:15:03 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDbFieldDao }
|
||||
2025-06-23 16:15:03 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDbParamDao }
|
||||
2025-06-23 16:15:03 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDictDao }
|
||||
2025-06-23 16:15:03 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportDictItemDao }
|
||||
2025-06-23 16:15:03 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportLinkDao }
|
||||
2025-06-23 16:15:03 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportMapDao }
|
||||
2025-06-23 16:15:03 [main] INFO o.j.m.f.MiniDaoClassPathMapperScanner - register minidao name is { org.jeecg.modules.jmreport.desreport.dao.JimuReportShareDao }
|
||||
2025-06-23 16:15:04 [main] INFO io.undertow.servlet - Initializing Spring embedded WebApplicationContext
|
||||
2025-06-23 16:15:04 [main] INFO o.j.m.j.c.i.JimuReportConfiguration - Init JimuReport Config [ Token Interceptor & Resource Locations ]
|
||||
2025-06-23 16:15:05 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource detect P6SPY plugin and enabled it
|
||||
2025-06-23 16:15:05 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Starting...
|
||||
2025-06-23 16:15:05 [main] INFO com.zaxxer.hikari.HikariDataSource - master - Start completed.
|
||||
2025-06-23 16:15:05 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [slave] success
|
||||
2025-06-23 16:15:05 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource - add a datasource named [master] success
|
||||
2025-06-23 16:15:05 [main] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource initial loaded [2] datasource,primary datasource named [master]
|
||||
2025-06-23 16:15:05 [main] INFO o.j.m.j.c.JmReportExecutorConfig - Init JimuReport Config [ 线程池 ]
|
||||
2025-06-23 16:15:09 [main] INFO c.r.framework.config.JacksonConfig - 初始化 jackson 配置
|
||||
2025-06-23 16:15:09 [main] INFO c.ruoyi.framework.config.RedisConfig - 初始化 redis 配置
|
||||
2025-06-23 16:15:09 [main] INFO org.redisson.Version - Redisson 3.20.1
|
||||
2025-06-23 16:15:10 [redisson-netty-2-6] INFO o.r.c.p.MasterPubSubConnectionPool - 1 connections initialized for localhost/127.0.0.1:6379
|
||||
2025-06-23 16:15:10 [redisson-netty-2-4] INFO o.r.c.pool.MasterConnectionPool - 8 connections initialized for localhost/127.0.0.1:6379
|
||||
2025-06-23 16:15:13 [main] INFO com.ruoyi.job.config.XxlJobConfig - >>>>>>>>>>> xxl-job config init.
|
||||
2025-06-23 16:15:16 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:updateMaterials, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@6eb06667[class com.ruoyi.system.controller.ImMaterialController$$EnhancerBySpringCGLIB$$144f82c7#updateMaterials]
|
||||
2025-06-23 16:15:16 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:outsourcingOrder, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@2f0dae44[class com.ruoyi.system.controller.ImProductionPlanProController$$EnhancerBySpringCGLIB$$b338b96f#outsourcingOrder]
|
||||
2025-06-23 16:15:16 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:shengchanOrder2, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@79ac50fe[class com.ruoyi.system.controller.ImProductionPlanProController$$EnhancerBySpringCGLIB$$b338b96f#shengchanOrder2]
|
||||
2025-06-23 16:15:16 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:procurementOrder, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@684c2c57[class com.ruoyi.system.controller.ImProductionPlanProController$$EnhancerBySpringCGLIB$$b338b96f#procurementOrder]
|
||||
2025-06-23 16:15:16 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:getMassageForMultipleWorkCenters, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@522fc67[class com.ruoyi.system.controller.KingdeeWorkCenterDataController$$EnhancerBySpringCGLIB$$b0e02b11#getMassageForMultipleWorkCenters]
|
||||
2025-06-23 16:15:16 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:getMassageDelayDate, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@479f1d09[class com.ruoyi.system.controller.KingdeeWorkCenterDataController$$EnhancerBySpringCGLIB$$b0e02b11#getMassageDelayDate]
|
||||
2025-06-23 16:15:16 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:getKuCun, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@5caf9ea4[class com.ruoyi.system.controller.KingdeeWorkCenterDataController$$EnhancerBySpringCGLIB$$b0e02b11#getKuCun]
|
||||
2025-06-23 16:15:16 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:getKuCunTo40SB, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@55882ff2[class com.ruoyi.system.controller.KingdeeWorkCenterDataController$$EnhancerBySpringCGLIB$$b0e02b11#getKuCunTo40SB]
|
||||
2025-06-23 16:15:16 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:generateDoc2, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@47db20e0[class com.ruoyi.system.controller.WlStockDataController$$EnhancerBySpringCGLIB$$10ec937b#generateDoc1]
|
||||
2025-06-23 16:15:16 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:demoJobHandler2, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@78131a47[class com.ruoyi.job.service.SampleService#demoJobHandler2]
|
||||
2025-06-23 16:15:16 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:demoJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@5869f15f[class com.ruoyi.job.service.SampleService#demoJobHandler]
|
||||
2025-06-23 16:15:16 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:httpJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@4c8ab21f[class com.ruoyi.job.service.SampleService#httpJobHandler]
|
||||
2025-06-23 16:15:16 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:commandJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@5248474e[class com.ruoyi.job.service.SampleService#commandJobHandler]
|
||||
2025-06-23 16:15:16 [main] INFO c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job register jobhandler success, name:shardingJobHandler, jobHandler:com.xxl.job.core.handler.impl.MethodJobHandler@3269ae62[class com.ruoyi.job.service.SampleService#shardingJobHandler]
|
||||
2025-06-23 16:15:16 [main] INFO io.undertow - starting server: Undertow - 2.2.24.Final
|
||||
2025-06-23 16:15:16 [Thread-42] INFO com.xxl.job.core.server.EmbedServer - >>>>>>>>>>> xxl-job remoting server start success, nettype = class com.xxl.job.core.server.EmbedServer, port = 9101
|
||||
2025-06-23 16:15:16 [main] INFO org.xnio - XNIO version 3.8.7.Final
|
||||
2025-06-23 16:15:16 [main] INFO org.xnio.nio - XNIO NIO Implementation Version 3.8.7.Final
|
||||
2025-06-23 16:15:16 [main] INFO org.jboss.threads - JBoss Threads version 3.1.0.Final
|
||||
2025-06-23 16:15:16 [main] INFO com.ruoyi.RuoYiApplication - Started RuoYiApplication in 17.086 seconds (JVM running for 18.879)
|
||||
2025-06-23 16:15:18 [main] INFO c.r.s.runner.SystemApplicationRunner - 初始化OSS配置成功
|
||||
2025-06-23 16:15:18 [main] INFO c.r.s.runner.SystemApplicationRunner - 加载参数缓存数据成功
|
||||
2025-06-23 16:15:18 [main] INFO c.r.s.runner.SystemApplicationRunner - 加载字典缓存数据成功
|
||||
2025-06-23 16:15:18 [registrationTask1] INFO d.c.b.a.c.r.ApplicationRegistrator - Application registered itself as 08432fb0b14f
|
||||
2025-06-23 16:15:18 [RMI TCP Connection(5)-192.168.5.200] INFO io.undertow.servlet - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-06-23 16:15:54 [schedule-pool-1] INFO c.r.s.s.i.SysLogininforServiceImpl - [127.0.0.1]内网IP[admin][Error][验证码错误]
|
||||
2025-06-23 16:15:57 [XNIO-1 task-2] INFO c.r.f.listener.UserActionListener - user doLogin, userId:sys_user:1, token:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJsNGNWWjB0TTBDVmFKZmt1alVjOXN6WEt4ZEV5MUpKTSIsInVzZXJJZCI6MX0.P1BWJ0HvOoz3_Z5HUwAW6SmUcsfnm9skhprFvJ8eyz0
|
||||
2025-06-23 16:15:57 [XNIO-1 task-2] INFO c.r.f.listener.UserActionListener - user doLogout, userId:sys_user:1, token:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJjOWxXZmF6VWR1a0s3cG9ZTGhnVzd1bXpnVWlVZFVoTCIsInVzZXJJZCI6MX0._etYZAoqIj1yh8-s83eoISSc5ffo1XpHaxgZhxD45ck
|
||||
2025-06-23 16:15:57 [schedule-pool-1] INFO c.r.s.s.i.SysLogininforServiceImpl - [127.0.0.1]内网IP[admin][Success][登录成功]
|
||||
2025-06-23 17:40:50 [xxl-job, executor ExecutorRegistryThread] INFO c.x.j.c.t.ExecutorRegistryThread - >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='xxl-job-executor', registryValue='http://192.168.5.200:9101/'}, registryResult:ReturnT [code=500, msg=xxl-job remoting error(Connection refused: connect), for url : http://localhost:9100/xxl-job-admin/api/registry, content=null]
|
||||
2025-06-23 17:40:54 [SpringApplicationShutdownHook] INFO io.undertow - stopping server: Undertow - 2.2.24.Final
|
||||
2025-06-23 17:40:54 [SpringApplicationShutdownHook] INFO io.undertow.servlet - Destroying Spring FrameworkServlet 'dispatcherServlet'
|
||||
2025-06-23 17:40:54 [Thread-42] INFO com.xxl.job.core.server.EmbedServer - >>>>>>>>>>> xxl-job remoting server stop.
|
||||
2025-06-23 17:40:56 [xxl-job, executor ExecutorRegistryThread] INFO c.x.j.c.t.ExecutorRegistryThread - >>>>>>>>>>> xxl-job registry-remove fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='xxl-job-executor', registryValue='http://192.168.5.200:9101/'}, registryResult:ReturnT [code=500, msg=xxl-job remoting error(Connection refused: connect), for url : http://localhost:9100/xxl-job-admin/api/registryRemove, content=null]
|
||||
2025-06-23 17:40:56 [xxl-job, executor ExecutorRegistryThread] INFO c.x.j.c.t.ExecutorRegistryThread - >>>>>>>>>>> xxl-job, executor registry thread destroy.
|
||||
2025-06-23 17:40:56 [SpringApplicationShutdownHook] INFO com.xxl.job.core.server.EmbedServer - >>>>>>>>>>> xxl-job remoting server destroy success.
|
||||
2025-06-23 17:40:56 [xxl-job, executor JobLogFileCleanThread] INFO c.x.j.c.thread.JobLogFileCleanThread - >>>>>>>>>>> xxl-job, executor JobLogFileCleanThread thread destroy.
|
||||
2025-06-23 17:40:56 [xxl-job, executor TriggerCallbackThread] INFO c.x.j.c.thread.TriggerCallbackThread - >>>>>>>>>>> xxl-job, executor callback thread destroy.
|
||||
2025-06-23 17:40:56 [Thread-41] INFO c.x.j.c.thread.TriggerCallbackThread - >>>>>>>>>>> xxl-job, executor retry callback thread destroy.
|
||||
2025-06-23 17:40:56 [SpringApplicationShutdownHook] INFO c.r.f.manager.ShutdownManager - ====关闭后台任务任务线程池====
|
||||
2025-06-23 17:40:56 [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource start closing ....
|
||||
2025-06-23 17:40:56 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown initiated...
|
||||
2025-06-23 17:40:56 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - master - Shutdown completed.
|
||||
2025-06-23 17:40:56 [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource - dynamic-datasource all closed success,bye
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -1,3 +0,0 @@
|
||||
2025-06-15 07:15:00 [com.xxl.job.core.thread.JobThread#run]-[133]-[xxl-job, JobThread-15-1749942900537] <br>----------- xxl-job job execute start -----------<br>----------- Param:
|
||||
2025-06-15 07:16:24 [com.xxl.job.core.thread.JobThread#run]-[179]-[xxl-job, JobThread-15-1749942900537] <br>----------- xxl-job job execute end(finish) -----------<br>----------- Result: handleCode=200, handleMsg = null
|
||||
2025-06-15 07:16:24 [com.xxl.job.core.thread.TriggerCallbackThread#callbackLog]-[197]-[xxl-job, executor TriggerCallbackThread] <br>----------- xxl-job job callback finish.
|
||||
@ -1,3 +0,0 @@
|
||||
2025-06-15 08:15:00 [com.xxl.job.core.thread.JobThread#run]-[133]-[xxl-job, JobThread-16-1749946500006] <br>----------- xxl-job job execute start -----------<br>----------- Param:
|
||||
2025-06-15 08:15:01 [com.xxl.job.core.thread.JobThread#run]-[179]-[xxl-job, JobThread-16-1749946500006] <br>----------- xxl-job job execute end(finish) -----------<br>----------- Result: handleCode=200, handleMsg = null
|
||||
2025-06-15 08:15:01 [com.xxl.job.core.thread.TriggerCallbackThread#callbackLog]-[197]-[xxl-job, executor TriggerCallbackThread] <br>----------- xxl-job job callback finish.
|
||||
@ -1,3 +0,0 @@
|
||||
2025-06-16 07:15:00 [com.xxl.job.core.thread.JobThread#run]-[133]-[xxl-job, JobThread-15-1750029300015] <br>----------- xxl-job job execute start -----------<br>----------- Param:
|
||||
2025-06-16 07:16:20 [com.xxl.job.core.thread.JobThread#run]-[179]-[xxl-job, JobThread-15-1750029300015] <br>----------- xxl-job job execute end(finish) -----------<br>----------- Result: handleCode=200, handleMsg = null
|
||||
2025-06-16 07:16:20 [com.xxl.job.core.thread.TriggerCallbackThread#callbackLog]-[197]-[xxl-job, executor TriggerCallbackThread] <br>----------- xxl-job job callback finish.
|
||||
@ -1,3 +0,0 @@
|
||||
2025-06-25 07:15:00 [com.xxl.job.core.thread.JobThread#run]-[133]-[xxl-job, JobThread-15-1750806900572] <br>----------- xxl-job job execute start -----------<br>----------- Param:
|
||||
2025-06-25 07:16:41 [com.xxl.job.core.thread.JobThread#run]-[179]-[xxl-job, JobThread-15-1750806900572] <br>----------- xxl-job job execute end(finish) -----------<br>----------- Result: handleCode=200, handleMsg = null
|
||||
2025-06-25 07:16:41 [com.xxl.job.core.thread.TriggerCallbackThread#callbackLog]-[197]-[xxl-job, executor TriggerCallbackThread] <br>----------- xxl-job job callback finish.
|
||||
2
package-lock.json
generated
2
package-lock.json
generated
@ -1,4 +1,4 @@
|
||||
{
|
||||
|
||||
"requires": true,
|
||||
"lockfileVersion": 1,
|
||||
"dependencies": {
|
||||
|
||||
@ -47,7 +47,6 @@ import java.util.Map;
|
||||
public class CaptchaController {
|
||||
|
||||
private final CaptchaProperties captchaProperties;
|
||||
private final SmsProperties smsProperties;
|
||||
private final ISysConfigService configService;
|
||||
private final MailProperties mailProperties;
|
||||
|
||||
@ -58,6 +57,7 @@ public class CaptchaController {
|
||||
*/
|
||||
@GetMapping("/captchaSms")
|
||||
public R<Void> smsCaptcha(@NotBlank(message = "{user.phonenumber.not.blank}") String phonenumber) {
|
||||
SmsProperties smsProperties = SpringUtils.getBean(SmsProperties.class);
|
||||
if (!smsProperties.getEnabled()) {
|
||||
return R.fail("当前系统没有开启短信功能!");
|
||||
}
|
||||
|
||||
@ -0,0 +1,391 @@
|
||||
package com.ruoyi.web.controller.dingtalk;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.ruoyi.common.config.DingTalkProperties;
|
||||
import com.ruoyi.common.dingding.DingCallbackCrypto;
|
||||
import com.ruoyi.common.dingding.DingUtil;
|
||||
import com.ruoyi.system.controller.KingdeeWorkCenterDataController;
|
||||
import com.ruoyi.system.domain.ProcessOrderPro;
|
||||
import com.ruoyi.system.mapper.ProcessOrderProMapper;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@SaIgnore
|
||||
@RestController
|
||||
@RequestMapping("/ding/callback")
|
||||
public class CallbackController {
|
||||
|
||||
// 请替换为您的钉钉应用配置
|
||||
private static final String TOKEN = "VDAhP9mGgALfgWioUHlVr8";
|
||||
private static final String ENCODING_AES_KEY = "p9QQoHGCX1wiwSkHnLiPhcfymUCOmNum0CBuYQfFSiu";
|
||||
private static final String APP_KEY = "dingebfrpzqko25vo8w6"; // Client ID
|
||||
private static final String SAFETY_STOCK_ROBOT_CODE = "dingwoaeaozawfochwoo";
|
||||
private final Logger bizLogger = LoggerFactory.getLogger(getClass());
|
||||
@Autowired
|
||||
private ProcessOrderProMapper processOrderProMapper;
|
||||
@Autowired
|
||||
private DingTalkProperties dingTalkProperties;
|
||||
@Autowired
|
||||
private KingdeeWorkCenterDataController kingdeeWorkCenterDataController;
|
||||
|
||||
@PostMapping("/receive")
|
||||
public Map<String, String> callBack(@RequestBody(required = false) Map<String, Object> json) {
|
||||
|
||||
System.out.println("【CallbackController】参数: " + JSON.toJSONString(json));
|
||||
|
||||
try {
|
||||
bizLogger.info("收到钉钉回调:json={}", JSON.toJSONString(json));
|
||||
|
||||
DingCallbackCrypto callbackCrypto = new DingCallbackCrypto(TOKEN, ENCODING_AES_KEY, APP_KEY);
|
||||
|
||||
// 检查是加密模式还是明文模式
|
||||
if (json.containsKey("encrypt")) {
|
||||
String encryptMsg = (String) json.get("encrypt");
|
||||
|
||||
String msgSignature1 = json.get("msg_signature").toString();
|
||||
String timeStamp1 = json.get("timestamp").toString();
|
||||
String nonce1 = json.get("nonce").toString();
|
||||
|
||||
// 1. 解密
|
||||
String decryptMsg = callbackCrypto.getDecryptMsg(msgSignature1, timeStamp1, nonce1, encryptMsg);
|
||||
bizLogger.info("解密后的回调内容: {}", decryptMsg);
|
||||
|
||||
JSONObject eventJson = JSON.parseObject(decryptMsg);
|
||||
processEvent(eventJson);
|
||||
|
||||
// 3.返回加密 success
|
||||
Map<String, String> successMap = callbackCrypto.getEncryptedMap("success");
|
||||
bizLogger.info("返回加密成功响应: {}", successMap);
|
||||
return successMap;
|
||||
} else {
|
||||
// 明文模式
|
||||
bizLogger.info("收到明文消息,直接处理");
|
||||
JSONObject eventJson = new JSONObject(json);
|
||||
processEvent(eventJson);
|
||||
|
||||
// 返回简单成功响应
|
||||
Map<String, String> result = new java.util.HashMap<>();
|
||||
result.put("message", "success");
|
||||
return result;
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
bizLogger.error("回调处理异常", e);
|
||||
// 返回错误信息以便调试
|
||||
Map<String, String> errorMap = new java.util.HashMap<>();
|
||||
errorMap.put("error", e.getMessage());
|
||||
return errorMap;
|
||||
}
|
||||
}
|
||||
|
||||
private void updateProcessOrderProStatus(String outTrackId, Long status) {
|
||||
try {
|
||||
// 根据 notificationCardId 查询
|
||||
ProcessOrderPro order = processOrderProMapper.selectOne(new LambdaQueryWrapper<ProcessOrderPro>().eq(ProcessOrderPro::getAuditCardId, outTrackId));
|
||||
if (order != null) {
|
||||
ProcessOrderPro update = new ProcessOrderPro();
|
||||
update.setId(order.getId());
|
||||
update.setRouteStatus(status);
|
||||
update.setBomStatus(8L);
|
||||
update.setUpdateBy("DingDing");
|
||||
processOrderProMapper.updateById(update);
|
||||
bizLogger.info("更新 ProcessOrderPro 状态成功: id={}, status={}", order.getId(), status);
|
||||
} else {
|
||||
bizLogger.warn("未找到对应的 审核卡片Id: notificationCardId={}", outTrackId);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
bizLogger.error("更新数据库状态异常", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理具体事件逻辑
|
||||
*/
|
||||
private void processEvent(JSONObject eventJson) {
|
||||
// 1. 优先处理互动卡片回调 (包含 outTrackId 和 value)
|
||||
if (eventJson.containsKey("outTrackId") && eventJson.containsKey("value")) {
|
||||
String outTrackId = eventJson.getString("outTrackId");
|
||||
String userId = eventJson.getString("senderStaffId"); // 操作人ID(钉钉ID)
|
||||
|
||||
// 解析回传参数 value (可能是 String 也可能是 JSONObject)FProcessPlanController
|
||||
JSONObject cardPrivateData = null;
|
||||
Object valueObj = eventJson.get("value");
|
||||
if (valueObj instanceof String) {
|
||||
// 如果是 JSON 字符串,先解析
|
||||
String valueStr = (String) valueObj;
|
||||
try {
|
||||
JSONObject valueJson = JSON.parseObject(valueStr);
|
||||
if (valueJson != null && valueJson.containsKey("cardPrivateData")) {
|
||||
cardPrivateData = valueJson.getJSONObject("cardPrivateData");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
bizLogger.error("解析value JSON字符串失败: {}", valueStr);
|
||||
}
|
||||
} else if (valueObj instanceof JSONObject) {
|
||||
JSONObject valueJson = (JSONObject) valueObj;
|
||||
if (valueJson.containsKey("cardPrivateData")) {
|
||||
cardPrivateData = valueJson.getJSONObject("cardPrivateData");
|
||||
}
|
||||
}
|
||||
|
||||
bizLogger.info("【互动卡片回调】outTrackId={}, 操作人={}, cardPrivateData={}", outTrackId, userId, cardPrivateData);
|
||||
|
||||
if (cardPrivateData != null && cardPrivateData.containsKey("params")) {
|
||||
JSONObject params = cardPrivateData.getJSONObject("params");
|
||||
String action = params.getString("action");
|
||||
|
||||
// 获取 AccessToken (根据 robotCode 动态获取)
|
||||
String accessToken = getAccessToken(eventJson);
|
||||
|
||||
// 构造更新卡片的数据
|
||||
Map<String, String> cardDataMap = new HashMap<>();
|
||||
cardDataMap.put("action", action);
|
||||
// 根据 action 更新状态
|
||||
if ("agree".equals(action)) {
|
||||
cardDataMap.put("status", "agree");
|
||||
// 更新数据库状态
|
||||
updateProcessOrderProStatus(outTrackId, 1L); // 1 通过
|
||||
} else if ("reject".equals(action)) {
|
||||
cardDataMap.put("status", "reject");
|
||||
// 更新数据库状态
|
||||
updateProcessOrderProStatus(outTrackId, 2L); // 0 未通过
|
||||
}
|
||||
|
||||
// 调用 DingUtil 更新卡片
|
||||
try {
|
||||
DingUtil.updateInteractiveCard(accessToken, outTrackId, cardDataMap);
|
||||
bizLogger.info("成功更新卡片状态: outTrackId={}, action={}", outTrackId, action);
|
||||
} catch (Exception e) {
|
||||
bizLogger.error("更新卡片失败", e);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
String eventType = eventJson.getString("EventType");
|
||||
// 机器人普通消息没有 EventType,补充默认值
|
||||
if (eventType == null && eventJson.containsKey("msgId")) {
|
||||
eventType = "robot_message";
|
||||
}
|
||||
bizLogger.info("事件类型: {}", eventType);
|
||||
// 4. 根据EventType分类处理
|
||||
if ("check_url".equals(eventType)) {
|
||||
bizLogger.info("测试回调url的正确性");
|
||||
} else if ("user_add_org".equals(eventType)) {
|
||||
bizLogger.info("发生了:" + eventType + "事件");
|
||||
} else if ("bpms_instance_change".equals(eventType)) {
|
||||
// 处理审批实例状态变更(钉钉OA审批)
|
||||
bizLogger.info("收到审批状态变更事件: {}", eventJson.toJSONString());
|
||||
} else {
|
||||
// 其他事件(包括机器人消息)
|
||||
bizLogger.info("收到事件: type={}", eventType);
|
||||
if (eventJson.containsKey("text")) {
|
||||
String content = eventJson.getJSONObject("text").getString("content");
|
||||
bizLogger.info("机器人收到文本消息: {}", content);
|
||||
|
||||
boolean isHandled = false;
|
||||
|
||||
// 如果内容包含 "你好",则回复 "你好"
|
||||
if (content != null && content.trim().contains("你好")) {
|
||||
isHandled = true;
|
||||
String conversationId = eventJson.getString("conversationId");
|
||||
// 获取发送者ID,如果为空则使用默认ID
|
||||
String senderId = eventJson.getString("senderStaffId");
|
||||
if (senderId == null) {
|
||||
senderId = "283633411029629036";
|
||||
}
|
||||
|
||||
// 确定当前使用的 AppKey (作为 API 调用的 robotCode) 和 Secret
|
||||
String incomingRobotCode = eventJson.getString("robotCode");
|
||||
String targetAppKey = dingTalkProperties.getAppKey();
|
||||
String targetAppSecret = dingTalkProperties.getAppSecret();
|
||||
|
||||
// 如果是安全库存机器人
|
||||
if (SAFETY_STOCK_ROBOT_CODE.equals(incomingRobotCode) || (dingTalkProperties.getSafetyStockAppKey() != null && dingTalkProperties.getSafetyStockAppKey().equals(incomingRobotCode))) {
|
||||
// 使用安全库存机器人的配置
|
||||
targetAppKey = dingTalkProperties.getSafetyStockAppKey();
|
||||
targetAppSecret = dingTalkProperties.getSafetyStockAppSecret();
|
||||
// 兜底:如果配置为空,使用常量
|
||||
if (targetAppKey == null || targetAppKey.isEmpty()) {
|
||||
targetAppKey = SAFETY_STOCK_ROBOT_CODE;
|
||||
}
|
||||
}
|
||||
|
||||
String accessToken = DingUtil.getAccessToken(targetAppKey, targetAppSecret);
|
||||
|
||||
// 统一使用企业机器人发送群消息 (不再使用 Webhook)
|
||||
// 构造回复内容,尝试 @ 用户
|
||||
String replyContent = "你好 @" + senderId;
|
||||
|
||||
// 使用 Text 消息格式
|
||||
Map<String, Object> textParam = new HashMap<>();
|
||||
textParam.put("content", replyContent);
|
||||
try {
|
||||
DingUtil.robotGroupSend(accessToken, textParam, "sampleText", conversationId, targetAppKey, null);
|
||||
bizLogger.info("已回复你好(Text),并@用户: {}", senderId);
|
||||
} catch (Exception e) {
|
||||
bizLogger.error("回复你好失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
// 如果内容包含 "安全库存",则调用 KingdeeWorkCenterDataController 发送安全库存
|
||||
if (content != null && content.contains("安全库存")) {
|
||||
isHandled = true;
|
||||
String sessionWebhook = null; // 不再使用 webhook
|
||||
String senderId = eventJson.getString("senderStaffId");
|
||||
String conversationId = eventJson.getString("conversationId");
|
||||
|
||||
// 异步调用以避免阻塞回调
|
||||
new Thread(() -> {
|
||||
try {
|
||||
kingdeeWorkCenterDataController.sendKuCunData(conversationId, sessionWebhook, senderId, SAFETY_STOCK_ROBOT_CODE);
|
||||
bizLogger.info("已触发发送安全库存");
|
||||
} catch (Exception e) {
|
||||
bizLogger.error("触发安全库存发送失败", e);
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
// 延期
|
||||
if (content != null && content.contains("延期")) {
|
||||
isHandled = true;
|
||||
String sessionWebhook = null; // 不再使用 webhook
|
||||
String senderId = eventJson.getString("senderStaffId");
|
||||
String conversationId = eventJson.getString("conversationId");
|
||||
new Thread(() -> {
|
||||
try {
|
||||
kingdeeWorkCenterDataController.sendMassageDelayDate(conversationId, sessionWebhook, senderId, SAFETY_STOCK_ROBOT_CODE);
|
||||
} catch (Exception e) {
|
||||
bizLogger.error("触发延期发送失败", e);
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
// 预警
|
||||
if (content != null && content.contains("预警")) {
|
||||
isHandled = true;
|
||||
String sessionWebhook = null; // 不再使用 webhook
|
||||
String senderId = eventJson.getString("senderStaffId");
|
||||
String conversationId = eventJson.getString("conversationId");
|
||||
new Thread(() -> {
|
||||
try {
|
||||
kingdeeWorkCenterDataController.sendMassageForMultipleWorkCenters(conversationId, sessionWebhook, senderId, SAFETY_STOCK_ROBOT_CODE);
|
||||
} catch (Exception e) {
|
||||
bizLogger.error("触发预警发送失败", e);
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
// 采购 或 采购申请
|
||||
if (content != null && (content.contains("采购") || content.contains("采购申请"))) {
|
||||
isHandled = true;
|
||||
String sessionWebhook = null; // 不再使用 webhook
|
||||
String senderId = eventJson.getString("senderStaffId");
|
||||
String conversationId = eventJson.getString("conversationId");
|
||||
new Thread(() -> {
|
||||
try {
|
||||
kingdeeWorkCenterDataController.sendPurchaseOrder2(conversationId, sessionWebhook, senderId, SAFETY_STOCK_ROBOT_CODE);
|
||||
} catch (Exception e) {
|
||||
bizLogger.error("触发采购发送失败", e);
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
// 工序汇报 或 未入库
|
||||
if (content != null && (content.contains("工序汇报") || content.contains("未入库"))) {
|
||||
isHandled = true;
|
||||
String sessionWebhook = null; // 不再使用 webhook
|
||||
String senderId = eventJson.getString("senderStaffId");
|
||||
String conversationId = eventJson.getString("conversationId");
|
||||
new Thread(() -> {
|
||||
try {
|
||||
kingdeeWorkCenterDataController.sendProductionOrder(conversationId, sessionWebhook, senderId, SAFETY_STOCK_ROBOT_CODE);
|
||||
} catch (Exception e) {
|
||||
bizLogger.error("触发未入库发送失败", e);
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
// 未及时转移
|
||||
if (content != null && content.contains("未及时转移")) {
|
||||
isHandled = true;
|
||||
String sessionWebhook = null; // 不再使用 webhook
|
||||
String senderId = eventJson.getString("senderStaffId");
|
||||
String conversationId = eventJson.getString("conversationId");
|
||||
new Thread(() -> {
|
||||
try {
|
||||
kingdeeWorkCenterDataController.sendProcessTransferForm(conversationId, sessionWebhook, senderId, SAFETY_STOCK_ROBOT_CODE);
|
||||
} catch (Exception e) {
|
||||
bizLogger.error("触发未及时转移发送失败", e);
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
// 默认回复
|
||||
if (!isHandled) {
|
||||
String sessionWebhook = eventJson.getString("sessionWebhook");
|
||||
String senderId = eventJson.getString("senderStaffId");
|
||||
String conversationId = eventJson.getString("conversationId");
|
||||
|
||||
if (conversationId != null && !conversationId.isEmpty()) {
|
||||
String helpContent = "您好,我是数据提醒机器人。收到您的消息,但不知道你在讲什么?。\n" + "目前支持以下业务指令,请直接回复关键词:\n" + "1. 安全库存\n" + "2. 延期\n" + "3. 预警\n" + "4. 采购 / 采购申请\n" + "5. 工序汇报 / 未入库\n" + "6. 未及时转移";
|
||||
|
||||
// 使用回调中的 sessionWebhook 直接回复 (这是最标准的回调回复方式)
|
||||
if (sessionWebhook != null && !sessionWebhook.isEmpty()) {
|
||||
DingUtil.sendSessionText(sessionWebhook, helpContent, Collections.singletonList(senderId));
|
||||
bizLogger.info("通过Webhook回复帮助信息给用户: {}", senderId);
|
||||
} else {
|
||||
|
||||
bizLogger.warn("未获取到 sessionWebhook,无法回复帮助信息");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据回调中的 robotCode 获取对应的 AccessToken
|
||||
*/
|
||||
private String getAccessToken(JSONObject eventJson) {
|
||||
String currentRobotCode = eventJson.getString("robotCode");
|
||||
String currentAppKey = dingTalkProperties.getAppKey();
|
||||
String currentAppSecret = dingTalkProperties.getAppSecret();
|
||||
|
||||
// 判定是否为安全库存机器人
|
||||
boolean isSafetyRobot = false;
|
||||
String safetyKey = dingTalkProperties.getSafetyStockAppKey();
|
||||
if (currentRobotCode != null) {
|
||||
if (currentRobotCode.equals(SAFETY_STOCK_ROBOT_CODE)) {
|
||||
isSafetyRobot = true;
|
||||
} else if (currentRobotCode.equals(safetyKey)) {
|
||||
isSafetyRobot = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (isSafetyRobot) {
|
||||
// 优先使用配置的 Key/Secret
|
||||
if (safetyKey != null && !safetyKey.isEmpty()) {
|
||||
currentAppKey = safetyKey;
|
||||
} else {
|
||||
currentAppKey = SAFETY_STOCK_ROBOT_CODE;
|
||||
}
|
||||
currentAppSecret = dingTalkProperties.getSafetyStockAppSecret();
|
||||
}
|
||||
|
||||
return DingUtil.getAccessToken(currentAppKey, currentAppSecret);
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,10 +11,30 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.dingtalk.api.response.OapiV2UserGetResponse;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/ding/talk")
|
||||
public class DingTalkController {
|
||||
|
||||
/**
|
||||
* 查询用户详情
|
||||
*/
|
||||
@GetMapping("/getUserDetail")
|
||||
public R<OapiV2UserGetResponse.UserGetResponse> getUserDetail(String userid) {
|
||||
String appKey = "dingebfrpzqko25vo8w6";
|
||||
String appSecret = "M_hoza71hmEqsbbeXM-7MBg67EINqi9C6mKj4zWKQysXN-68GCYYc5DZoV0hXVvk";
|
||||
|
||||
// 获取 AccessToken
|
||||
String accessToken = DingUtil.getAccessToken(appKey, appSecret);
|
||||
|
||||
// 调用查询用户详情接口
|
||||
OapiV2UserGetResponse.UserGetResponse userDetail = DingUtil.getUserDetail(accessToken, userid);
|
||||
|
||||
return R.ok(userDetail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取参数配置列表
|
||||
*/
|
||||
@ -43,9 +63,13 @@ public class DingTalkController {
|
||||
String appKey = "dingebfrpzqko25vo8w6";
|
||||
String appSecret = "M_hoza71hmEqsbbeXM-7MBg67EINqi9C6mKj4zWKQysXN-68GCYYc5DZoV0hXVvk";
|
||||
String robotCode = "dingebfrpzqko25vo8w6";
|
||||
String openConversationId = "cidCzwPP4a1xhnl9c8hrGXFuw==";
|
||||
String cardTemplateId = "2b7bd7ab-0a20-43f2-902c-71198a8dd6a1.schema";
|
||||
String openConversationId = "ciddXVuhDM6kJZPJ3o+RcOBqQ==";
|
||||
//项目推送的模板id
|
||||
//String cardTemplateId = "2b7bd7ab-0a20-43f2-902c-71198a8dd6a1.schema";
|
||||
//审批模板id
|
||||
String cardTemplateId = "58244f90-b92d-4ab9-b619-8e83cef67d0c.schema";
|
||||
|
||||
String callBackKey = "update_route_status";
|
||||
// 获取 AccessToken
|
||||
String accessToken = DingUtil.getAccessToken(appKey, appSecret);
|
||||
|
||||
@ -53,6 +77,13 @@ public class DingTalkController {
|
||||
String outTrackId = "group-card-" + System.currentTimeMillis();
|
||||
|
||||
// 构造卡片数据
|
||||
// 2. 填充卡片变量 (对应截图里的普通变量)
|
||||
/* Map<String, String> cardDataMap = new java.util.HashMap<>();
|
||||
cardDataMap.put("title", "刘凯提交的工艺审核");
|
||||
cardDataMap.put("pro_number", "FB-026-01-23");
|
||||
cardDataMap.put("createTime", "2023-10-10 10:10:10");
|
||||
cardDataMap.put("status", "待审批");
|
||||
cardDataMap.put("lastMessage", "请尽快处理");*/
|
||||
Map<String, String> cardDataMap = new HashMap<>();
|
||||
cardDataMap.put("drawing_time", "2026/1/13 11:03");
|
||||
cardDataMap.put("production_order_no", "CP-026-054-023");
|
||||
@ -73,7 +104,8 @@ public class DingTalkController {
|
||||
robotCode,
|
||||
openConversationId,
|
||||
outTrackId,
|
||||
cardDataMap
|
||||
cardDataMap,
|
||||
callBackKey
|
||||
);
|
||||
|
||||
return R.ok("发送卡片成功", trackId);
|
||||
|
||||
@ -1,293 +1,303 @@
|
||||
# 项目相关配置
|
||||
ruoyi:
|
||||
# 名称
|
||||
name: RuoYi-Vue-Plus
|
||||
# 版本
|
||||
version: ${ruoyi-vue-plus.version}
|
||||
# 版权年份
|
||||
copyrightYear: 2022
|
||||
# 实例演示开关
|
||||
demoEnabled: true
|
||||
# 获取ip地址开关
|
||||
addressEnabled: true
|
||||
# 缓存懒加载
|
||||
cacheLazy: false
|
||||
captcha:
|
||||
# 页面 <参数设置> 可开启关闭 验证码校验
|
||||
# 验证码类型 math 数组计算 char 字符验证
|
||||
type: MATH
|
||||
# line 线段干扰 circle 圆圈干扰 shear 扭曲干扰
|
||||
category: CIRCLE
|
||||
# 数字验证码位数
|
||||
numberLength: 1
|
||||
# 字符验证码长度
|
||||
charLength: 4
|
||||
|
||||
# 开发环境配置
|
||||
server:
|
||||
# 服务器的HTTP端口,默认为8080
|
||||
port: 8033
|
||||
servlet:
|
||||
# 应用的访问路径
|
||||
context-path: /
|
||||
undertow:
|
||||
# HTTP post内容的最大大小。当值为-1时,默认值为大小是无限的
|
||||
max-http-post-size: -1
|
||||
# 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理
|
||||
# 每块buffer的空间大小,越小的空间被利用越充分
|
||||
buffer-size: 512
|
||||
# 是否分配的直接内存
|
||||
direct-buffers: true
|
||||
threads:
|
||||
# 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程
|
||||
io: 8
|
||||
# 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载
|
||||
worker: 256
|
||||
|
||||
# 日志配置
|
||||
logging:
|
||||
level:
|
||||
com.ruoyi: debug
|
||||
org.springframework: warn
|
||||
config: classpath:logback-plus.xml
|
||||
|
||||
# 用户配置
|
||||
user:
|
||||
password:
|
||||
# 密码最大错误次数
|
||||
maxRetryCount: 5
|
||||
# 密码锁定时间(默认10分钟)
|
||||
lockTime: 10
|
||||
|
||||
# Spring配置
|
||||
spring:
|
||||
application:
|
||||
name: ${ruoyi.name}
|
||||
http:
|
||||
connect-timeout: 10000
|
||||
read-timeout: 20000
|
||||
# 资源信息
|
||||
messages:
|
||||
# 国际化资源文件路径
|
||||
basename: i18n/messages
|
||||
profiles:
|
||||
active: '@profiles.active@'
|
||||
# 文件上传
|
||||
servlet:
|
||||
multipart:
|
||||
# 单个文件大小
|
||||
max-file-size: 50MB
|
||||
# 设置总上传的文件大小
|
||||
max-request-size: 50MB
|
||||
# 服务模块
|
||||
devtools:
|
||||
restart:
|
||||
# 热部署开关
|
||||
enabled: true
|
||||
mvc:
|
||||
format:
|
||||
date-time: yyyy-MM-dd HH:mm:ss
|
||||
jackson:
|
||||
# 日期格式化
|
||||
date-format: yyyy-MM-dd HH:mm:ss
|
||||
serialization:
|
||||
# 格式化输出
|
||||
indent_output: false
|
||||
# 忽略无法转换的对象
|
||||
fail_on_empty_beans: false
|
||||
deserialization:
|
||||
# 允许对象忽略json中不存在的属性
|
||||
fail_on_unknown_properties: false
|
||||
|
||||
# Sa-Token配置
|
||||
sa-token:
|
||||
# token名称 (同时也是cookie名称)
|
||||
token-name: Authorization
|
||||
# token有效期 设为一天 (必定过期) 单位: 秒
|
||||
timeout: 986400
|
||||
# token临时有效期 (指定时间无操作就过期) 单位: 秒
|
||||
activity-timeout: 99999
|
||||
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
|
||||
is-concurrent: true
|
||||
# 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
|
||||
is-share: false
|
||||
# 是否尝试从header里读取token
|
||||
is-read-header: true
|
||||
# 是否尝试从cookie里读取token
|
||||
is-read-cookie: false
|
||||
# token前缀
|
||||
token-prefix: "Bearer"
|
||||
# jwt秘钥
|
||||
jwt-secret-key: abcdefghijklmnopqrstuvwxyz
|
||||
|
||||
# security配置
|
||||
security:
|
||||
# 排除路径
|
||||
excludes:
|
||||
# 静态资源
|
||||
- /*.html
|
||||
- /**/*.html
|
||||
- /**/*.css
|
||||
- /**/*.js
|
||||
# 公共路径
|
||||
- /favicon.ico
|
||||
- /error
|
||||
# swagger 文档配置
|
||||
- /*/api-docs
|
||||
- /*/api-docs/**
|
||||
# actuator 监控配置
|
||||
- /actuator
|
||||
- /actuator/**
|
||||
- /index/list
|
||||
- /index/inventory
|
||||
- /index/JDList
|
||||
- /jmreport/**
|
||||
- /system/procedure/**
|
||||
- /system/dict/data/type/**
|
||||
- /system/proPlan/expiryProjects
|
||||
- /system/proPlan/overdue
|
||||
- /system/proPlan/list2
|
||||
- /system/mrp/**
|
||||
- /system/orderPro/**
|
||||
- /system/cost/**
|
||||
|
||||
# MyBatisPlus配置
|
||||
# https://baomidou.com/config/
|
||||
mybatis-plus:
|
||||
mapperPath: # 不支持多包, 如有需要可在注解配置 或 提升扫包等级
|
||||
# 例如 com.**.**.mapper
|
||||
mapperPackage: com.ruoyi.**.mapper
|
||||
# 对应的 XML 文件位置
|
||||
mapperLocations: classpath*:mapper/**/*Mapper.xml
|
||||
# 实体扫描,多个package用逗号或者分号分隔
|
||||
typeAliasesPackage: com.ruoyi.**.domain
|
||||
# 启动时是否检查 MyBatis XML 文件的存在,默认不检查
|
||||
checkConfigLocation: false
|
||||
configuration:
|
||||
# 自动驼峰命名规则(camel case)映射
|
||||
mapUnderscoreToCamelCase: true
|
||||
# MyBatis 自动映射策略
|
||||
# NONE:不启用 PARTIAL:只对非嵌套 resultMap 自动映射 FULL:对所有 resultMap 自动映射
|
||||
autoMappingBehavior: PARTIAL
|
||||
# MyBatis 自动映射时未知列或未知属性处理策
|
||||
# NONE:不做处理 WARNING:打印相关警告 FAILING:抛出异常和详细信息
|
||||
autoMappingUnknownColumnBehavior: NONE
|
||||
# 更详细的日志输出 会有性能损耗 org.apache.ibatis.logging.stdout.StdOutImpl
|
||||
# 关闭日志记录 (可单纯使用 p6spy 分析) org.apache.ibatis.logging.nologging.NoLoggingImpl
|
||||
#默认日志输出 org.apache.ibatis.logging.slf4j.Slf4jImpl
|
||||
#logImpl: org.apache.ibatis.logging.nologging.NoLoggingImpl
|
||||
logImpl: org.apache.ibatis.logging.slf4j.Slf4jImpl
|
||||
global-config:
|
||||
# 是否打印 Logo banner
|
||||
banner: true
|
||||
dbConfig:
|
||||
# 主键类型
|
||||
# AUTO 自增 NONE 空 INPUT 用户输入 ASSIGN_ID 雪花 ASSIGN_UUID 唯一 UUID
|
||||
idType: ASSIGN_ID
|
||||
# 逻辑已删除值
|
||||
logicDeleteValue: 2
|
||||
# 逻辑未删除值
|
||||
logicNotDeleteValue: 0
|
||||
# 字段验证策略之 insert,在 insert 的时候的字段验证策略
|
||||
# IGNORED 忽略 NOT_NULL 非NULL NOT_EMPTY 非空 DEFAULT 默认 NEVER 不加入 SQL
|
||||
insertStrategy: NOT_NULL
|
||||
# 字段验证策略之 update,在 update 的时候的字段验证策略
|
||||
updateStrategy: NOT_NULL
|
||||
# 字段验证策略之 select,在 select 的时候的字段验证策略既 wrapper 根据内部 entity 生成的 where 条件
|
||||
where-strategy: NOT_NULL
|
||||
|
||||
# 数据加密
|
||||
mybatis-encryptor:
|
||||
# 是否开启加密
|
||||
enable: false
|
||||
# 默认加密算法
|
||||
algorithm: BASE64
|
||||
# 编码方式 BASE64/HEX。默认BASE64
|
||||
encode: BASE64
|
||||
# 安全秘钥 对称算法的秘钥 如:AES,SM4
|
||||
password:
|
||||
# 公私钥 非对称算法的公私钥 如:SM2,RSA
|
||||
publicKey:
|
||||
privateKey:
|
||||
|
||||
# Swagger配置
|
||||
swagger:
|
||||
info:
|
||||
# 标题
|
||||
title: '标题:EVO-TECH后台管理系统_接口文档'
|
||||
# 描述
|
||||
description: '描述:用于管理物料相关信息,具体包括XXX,XXX模块...'
|
||||
# 版本
|
||||
version: '版本号: ${ruoyi-vue-plus.version}'
|
||||
# 作者信息
|
||||
contact:
|
||||
name: 田志阳
|
||||
email: 1042411602@qq.com
|
||||
url: https://gitee.com/dromara/RuoYi-Vue-Plus
|
||||
components:
|
||||
# 鉴权方式配置
|
||||
security-schemes:
|
||||
apiKey:
|
||||
type: APIKEY
|
||||
in: HEADER
|
||||
name: ${sa-token.token-name}
|
||||
|
||||
springdoc:
|
||||
api-docs:
|
||||
# 是否开启接口文档
|
||||
enabled: true
|
||||
swagger-ui:
|
||||
# 持久化认证数据
|
||||
persistAuthorization: true
|
||||
#这里定义了两个分组,可定义多个,也可以不定义
|
||||
group-configs:
|
||||
- group: 1.演示模块
|
||||
packages-to-scan: com.ruoyi.demo
|
||||
- group: 2.系统模块
|
||||
packages-to-scan: com.ruoyi.web
|
||||
- group: 3.代码生成模块
|
||||
packages-to-scan: com.ruoyi.generator
|
||||
- group: 4.业务模块
|
||||
packages-to-scan: com.ruoyi.system
|
||||
- group: 5.定时任务
|
||||
packages-to-scan: com.ruoyi.job
|
||||
- group: 6.对象存储
|
||||
packages-to-scan: com.ruoyi.oss
|
||||
# 防止XSS攻击
|
||||
xss:
|
||||
# 过滤开关
|
||||
enabled: true
|
||||
# 排除链接(多个用逗号分隔)
|
||||
excludes: /system/notice
|
||||
# 匹配链接
|
||||
urlPatterns: /system/*,/monitor/*,/tool/*
|
||||
|
||||
# 全局线程池相关配置
|
||||
thread-pool:
|
||||
# 是否开启线程池
|
||||
enabled: false
|
||||
# 队列最大长度
|
||||
queueCapacity: 128
|
||||
# 线程池维护线程所允许的空闲时间
|
||||
keepAliveSeconds: 300
|
||||
|
||||
--- # 分布式锁 lock4j 全局配置
|
||||
lock4j:
|
||||
# 获取分布式锁超时时间,默认为 3000 毫秒
|
||||
acquire-timeout: 3000
|
||||
# 分布式锁的超时时间,默认为 30 秒
|
||||
expire: 30000
|
||||
|
||||
--- # Actuator 监控端点的配置项
|
||||
management:
|
||||
endpoints:
|
||||
web:
|
||||
exposure:
|
||||
include: '*'
|
||||
endpoint:
|
||||
health:
|
||||
show-details: ALWAYS
|
||||
logfile:
|
||||
external-file: ./logs/sys-console.log
|
||||
dingtalk:
|
||||
|
||||
# 项目相关配置
|
||||
ruoyi:
|
||||
# 名称
|
||||
name: RuoYi-Vue-Plus
|
||||
# 版本
|
||||
version: ${ruoyi-vue-plus.version}
|
||||
# 版权年份
|
||||
copyrightYear: 2022
|
||||
# 实例演示开关
|
||||
demoEnabled: true
|
||||
# 获取ip地址开关
|
||||
addressEnabled: true
|
||||
# 缓存懒加载
|
||||
cacheLazy: false
|
||||
captcha:
|
||||
# 页面 <参数设置> 可开启关闭 验证码校验
|
||||
# 验证码类型 math 数组计算 char 字符验证
|
||||
type: MATH
|
||||
# line 线段干扰 circle 圆圈干扰 shear 扭曲干扰
|
||||
category: CIRCLE
|
||||
# 数字验证码位数
|
||||
numberLength: 1
|
||||
# 字符验证码长度
|
||||
charLength: 4
|
||||
|
||||
# 开发环境配置
|
||||
server:
|
||||
# 服务器的HTTP端口,默认为8080
|
||||
port: 8033
|
||||
servlet:
|
||||
# 应用的访问路径
|
||||
context-path: /
|
||||
undertow:
|
||||
# HTTP post内容的最大大小。当值为-1时,默认值为大小是无限的
|
||||
max-http-post-size: -1
|
||||
# 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理
|
||||
# 每块buffer的空间大小,越小的空间被利用越充分
|
||||
buffer-size: 512
|
||||
# 是否分配的直接内存
|
||||
direct-buffers: true
|
||||
threads:
|
||||
# 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程
|
||||
io: 8
|
||||
# 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载
|
||||
worker: 256
|
||||
|
||||
# 日志配置
|
||||
logging:
|
||||
level:
|
||||
com.ruoyi: debug
|
||||
org.springframework: warn
|
||||
config: classpath:logback-plus.xml
|
||||
|
||||
# 用户配置
|
||||
user:
|
||||
password:
|
||||
# 密码最大错误次数
|
||||
maxRetryCount: 5
|
||||
# 密码锁定时间(默认10分钟)
|
||||
lockTime: 10
|
||||
|
||||
# Spring配置
|
||||
spring:
|
||||
application:
|
||||
name: ${ruoyi.name}
|
||||
http:
|
||||
connect-timeout: 10000
|
||||
read-timeout: 20000
|
||||
# 资源信息
|
||||
messages:
|
||||
# 国际化资源文件路径
|
||||
basename: i18n/messages
|
||||
profiles:
|
||||
active: '@profiles.active@'
|
||||
# 文件上传
|
||||
servlet:
|
||||
multipart:
|
||||
# 单个文件大小
|
||||
max-file-size: 50MB
|
||||
# 设置总上传的文件大小
|
||||
max-request-size: 50MB
|
||||
# 服务模块
|
||||
devtools:
|
||||
restart:
|
||||
# 热部署开关
|
||||
enabled: true
|
||||
mvc:
|
||||
format:
|
||||
date-time: yyyy-MM-dd HH:mm:ss
|
||||
jackson:
|
||||
# 日期格式化
|
||||
date-format: yyyy-MM-dd HH:mm:ss
|
||||
serialization:
|
||||
# 格式化输出
|
||||
indent_output: false
|
||||
# 忽略无法转换的对象
|
||||
fail_on_empty_beans: false
|
||||
deserialization:
|
||||
# 允许对象忽略json中不存在的属性
|
||||
fail_on_unknown_properties: false
|
||||
|
||||
# Sa-Token配置
|
||||
sa-token:
|
||||
# token名称 (同时也是cookie名称)
|
||||
token-name: Authorization
|
||||
# token有效期 设为一天 (必定过期) 单位: 秒
|
||||
timeout: 986400
|
||||
# token临时有效期 (指定时间无操作就过期) 单位: 秒
|
||||
activity-timeout: 99999
|
||||
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
|
||||
is-concurrent: true
|
||||
# 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
|
||||
is-share: false
|
||||
# 是否尝试从header里读取token
|
||||
is-read-header: true
|
||||
# 是否尝试从cookie里读取token
|
||||
is-read-cookie: false
|
||||
# token前缀
|
||||
token-prefix: "Bearer"
|
||||
# jwt秘钥
|
||||
jwt-secret-key: abcdefghijklmnopqrstuvwxyz
|
||||
|
||||
# security配置
|
||||
security:
|
||||
# 排除路径
|
||||
excludes:
|
||||
# 静态资源
|
||||
- /*.html
|
||||
- /**/*.html
|
||||
- /**/*.css
|
||||
- /**/*.js
|
||||
# 公共路径
|
||||
- /favicon.ico
|
||||
- /error
|
||||
# swagger 文档配置
|
||||
- /*/api-docs
|
||||
- /*/api-docs/**
|
||||
# actuator 监控配置
|
||||
- /actuator
|
||||
- /actuator/**
|
||||
- /index/list
|
||||
- /index/inventory
|
||||
- /index/JDList
|
||||
- /jmreport/**
|
||||
- /system/procedure/**
|
||||
- /system/dict/data/type/**
|
||||
- /system/proPlan/expiryProjects
|
||||
- /system/proPlan/overdue
|
||||
- /system/proPlan/list2
|
||||
- /system/mrp/**
|
||||
- /system/orderPro/**
|
||||
- /system/cost/**
|
||||
- /ding/callback/**
|
||||
|
||||
# MyBatisPlus配置
|
||||
# https://baomidou.com/config/
|
||||
mybatis-plus:
|
||||
mapperPath: # 不支持多包, 如有需要可在注解配置 或 提升扫包等级
|
||||
# 例如 com.**.**.mapper
|
||||
mapperPackage: com.ruoyi.**.mapper
|
||||
# 对应的 XML 文件位置
|
||||
mapperLocations: classpath*:mapper/**/*Mapper.xml
|
||||
# 实体扫描,多个package用逗号或者分号分隔
|
||||
typeAliasesPackage: com.ruoyi.**.domain
|
||||
# 启动时是否检查 MyBatis XML 文件的存在,默认不检查
|
||||
checkConfigLocation: false
|
||||
configuration:
|
||||
# 自动驼峰命名规则(camel case)映射
|
||||
mapUnderscoreToCamelCase: true
|
||||
# MyBatis 自动映射策略
|
||||
# NONE:不启用 PARTIAL:只对非嵌套 resultMap 自动映射 FULL:对所有 resultMap 自动映射
|
||||
autoMappingBehavior: PARTIAL
|
||||
# MyBatis 自动映射时未知列或未知属性处理策
|
||||
# NONE:不做处理 WARNING:打印相关警告 FAILING:抛出异常和详细信息
|
||||
autoMappingUnknownColumnBehavior: NONE
|
||||
# 更详细的日志输出 会有性能损耗 org.apache.ibatis.logging.stdout.StdOutImpl
|
||||
# 关闭日志记录 (可单纯使用 p6spy 分析) org.apache.ibatis.logging.nologging.NoLoggingImpl
|
||||
#默认日志输出 org.apache.ibatis.logging.slf4j.Slf4jImpl
|
||||
#logImpl: org.apache.ibatis.logging.nologging.NoLoggingImpl
|
||||
logImpl: org.apache.ibatis.logging.slf4j.Slf4jImpl
|
||||
global-config:
|
||||
# 是否打印 Logo banner
|
||||
banner: true
|
||||
dbConfig:
|
||||
# 主键类型
|
||||
# AUTO 自增 NONE 空 INPUT 用户输入 ASSIGN_ID 雪花 ASSIGN_UUID 唯一 UUID
|
||||
idType: ASSIGN_ID
|
||||
# 逻辑已删除值
|
||||
logicDeleteValue: 2
|
||||
# 逻辑未删除值
|
||||
logicNotDeleteValue: 0
|
||||
# 字段验证策略之 insert,在 insert 的时候的字段验证策略
|
||||
# IGNORED 忽略 NOT_NULL 非NULL NOT_EMPTY 非空 DEFAULT 默认 NEVER 不加入 SQL
|
||||
insertStrategy: NOT_NULL
|
||||
# 字段验证策略之 update,在 update 的时候的字段验证策略
|
||||
updateStrategy: NOT_NULL
|
||||
# 字段验证策略之 select,在 select 的时候的字段验证策略既 wrapper 根据内部 entity 生成的 where 条件
|
||||
where-strategy: NOT_NULL
|
||||
|
||||
# 数据加密
|
||||
mybatis-encryptor:
|
||||
# 是否开启加密
|
||||
enable: false
|
||||
# 默认加密算法
|
||||
algorithm: BASE64
|
||||
# 编码方式 BASE64/HEX。默认BASE64
|
||||
encode: BASE64
|
||||
# 安全秘钥 对称算法的秘钥 如:AES,SM4
|
||||
password:
|
||||
# 公私钥 非对称算法的公私钥 如:SM2,RSA
|
||||
publicKey:
|
||||
privateKey:
|
||||
|
||||
# Swagger配置
|
||||
swagger:
|
||||
info:
|
||||
# 标题
|
||||
title: '标题:EVO-TECH后台管理系统_接口文档'
|
||||
# 描述
|
||||
description: '描述:用于管理物料相关信息,具体包括XXX,XXX模块...'
|
||||
# 版本
|
||||
version: '版本号: ${ruoyi-vue-plus.version}'
|
||||
# 作者信息
|
||||
contact:
|
||||
name: 田志阳
|
||||
email: 1042411602@qq.com
|
||||
url: https://gitee.com/dromara/RuoYi-Vue-Plus
|
||||
components:
|
||||
# 鉴权方式配置
|
||||
security-schemes:
|
||||
apiKey:
|
||||
type: APIKEY
|
||||
in: HEADER
|
||||
name: ${sa-token.token-name}
|
||||
|
||||
springdoc:
|
||||
api-docs:
|
||||
# 是否开启接口文档
|
||||
enabled: true
|
||||
swagger-ui:
|
||||
# 持久化认证数据
|
||||
persistAuthorization: true
|
||||
#这里定义了两个分组,可定义多个,也可以不定义
|
||||
group-configs:
|
||||
- group: 1.演示模块
|
||||
packages-to-scan: com.ruoyi.demo
|
||||
- group: 2.系统模块
|
||||
packages-to-scan: com.ruoyi.web
|
||||
- group: 3.代码生成模块
|
||||
packages-to-scan: com.ruoyi.generator
|
||||
- group: 4.业务模块
|
||||
packages-to-scan: com.ruoyi.system
|
||||
- group: 5.定时任务
|
||||
packages-to-scan: com.ruoyi.job
|
||||
- group: 6.对象存储
|
||||
packages-to-scan: com.ruoyi.oss
|
||||
# 防止XSS攻击
|
||||
xss:
|
||||
# 过滤开关
|
||||
enabled: true
|
||||
# 排除链接(多个用逗号分隔)
|
||||
excludes: /system/notice
|
||||
# 匹配链接
|
||||
urlPatterns: /system/*,/monitor/*,/tool/*
|
||||
|
||||
# 全局线程池相关配置
|
||||
thread-pool:
|
||||
# 是否开启线程池
|
||||
enabled: false
|
||||
# 队列最大长度
|
||||
queueCapacity: 128
|
||||
# 线程池维护线程所允许的空闲时间
|
||||
keepAliveSeconds: 300
|
||||
|
||||
--- # 分布式锁 lock4j 全局配置
|
||||
lock4j:
|
||||
# 获取分布式锁超时时间,默认为 3000 毫秒
|
||||
acquire-timeout: 3000
|
||||
# 分布式锁的超时时间,默认为 30 秒
|
||||
expire: 30000
|
||||
|
||||
--- # Actuator 监控端点的配置项
|
||||
management:
|
||||
endpoints:
|
||||
web:
|
||||
exposure:
|
||||
include: '*'
|
||||
endpoint:
|
||||
health:
|
||||
show-details: ALWAYS
|
||||
logfile:
|
||||
external-file: ./logs/sys-console.log
|
||||
dingtalk:
|
||||
app-key: dingebfrpzqko25vo8w6
|
||||
app-secret: M_hoza71hmEqsbbeXM-7MBg67EINqi9C6mKj4zWKQysXN-68GCYYc5DZoV0hXVvk
|
||||
robot-code: dingebfrpzqko25vo8w6
|
||||
safety-stock-app-key: dingwoaeaozawfochwoo
|
||||
safety-stock-app-secret: rGrAQ7cReWeYzIK5j71l8d2qOLgUTyc-qnlacQcl3n0dKG3M8bgbbaSoc9AbKeUy
|
||||
safety-stock-agent-id: 35823003
|
||||
open-conversation-id: ciddXVuhDM6kJZPJ3o+RcOBqQ==
|
||||
project-card-template-id: 2b7bd7ab-0a20-43f2-902c-71198a8dd6a1.schema
|
||||
route-card-template-id: 58244f90-b92d-4ab9-b619-8e83cef67d0c.schema
|
||||
callback-route-key: update_route_status2
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#??ID-PROD
|
||||
X-KDApi-AcctID = 695f86f96090b2
|
||||
X-KDApi-AcctID = 698ad0d6c0c3fe
|
||||
X-KDApi-UserName = Administrator
|
||||
#??IDID
|
||||
X-KDApi-AppID = 288012_Rc0C0zCG2lga0/Vs2Y4pzYSL6hQcWOko
|
||||
|
||||
@ -278,6 +278,12 @@
|
||||
<artifactId>dingtalk</artifactId>
|
||||
<version>2.0.15</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.dingtalk.open</groupId>
|
||||
<artifactId>app-stream-client</artifactId>
|
||||
<version>1.3.12</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
||||
@ -0,0 +1,64 @@
|
||||
package com.ruoyi.common.config;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* 钉钉配置属性
|
||||
*/
|
||||
@Data
|
||||
@Component
|
||||
@ConfigurationProperties(prefix = "dingtalk")
|
||||
public class DingTalkProperties {
|
||||
/**
|
||||
* 应用 Key
|
||||
*/
|
||||
private String appKey;
|
||||
|
||||
/**
|
||||
* 应用 Secret
|
||||
*/
|
||||
private String appSecret;
|
||||
|
||||
/**
|
||||
* 机器人 Code
|
||||
*/
|
||||
private String robotCode;
|
||||
|
||||
/**
|
||||
* 安全库存机器人 AppKey
|
||||
*/
|
||||
private String safetyStockAppKey;
|
||||
|
||||
/**
|
||||
* 安全库存机器人 AppSecret
|
||||
*/
|
||||
private String safetyStockAppSecret;
|
||||
|
||||
/**
|
||||
* 安全库存机器人 AgentId
|
||||
*/
|
||||
private String safetyStockAgentId;
|
||||
|
||||
/**
|
||||
* 群会话 ID
|
||||
*/
|
||||
private String openConversationId;
|
||||
|
||||
/**
|
||||
* 项目卡片模板 ID
|
||||
*/
|
||||
private String projectCardTemplateId;
|
||||
/**
|
||||
* 工艺卡片模版id
|
||||
*/
|
||||
private String routeCardTemplateId;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 回调路由 Key
|
||||
*/
|
||||
private String callbackRouteKey;
|
||||
}
|
||||
@ -0,0 +1,393 @@
|
||||
package com.ruoyi.common.dingding;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.MessageDigest;
|
||||
import java.security.Permission;
|
||||
import java.security.PermissionCollection;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
import java.security.Security;
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import javax.crypto.Cipher;
|
||||
import javax.crypto.spec.IvParameterSpec;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
|
||||
public class DingCallbackCrypto {
|
||||
|
||||
private static final Charset CHARSET = StandardCharsets.UTF_8;
|
||||
private static final Base64 base64 = new Base64();
|
||||
private final byte[] aesKey;
|
||||
private final String token;
|
||||
private final String corpId;
|
||||
/**
|
||||
* ask getPaddingBytes key固定长度
|
||||
**/
|
||||
private static final Integer AES_ENCODE_KEY_LENGTH = 43;
|
||||
/**
|
||||
* 加密随机字符串字节长度
|
||||
**/
|
||||
private static final Integer RANDOM_LENGTH = 16;
|
||||
|
||||
/**
|
||||
* 构造函数
|
||||
*
|
||||
* @param token 钉钉开放平台上,开发者设置的token
|
||||
* @param encodingAesKey 钉钉开放台上,开发者设置的EncodingAESKey
|
||||
* @param corpId 企业自建应用-事件订阅, 使用appKey
|
||||
* 企业自建应用-注册回调地址, 使用corpId
|
||||
* 第三方企业应用, 使用suiteKey
|
||||
*
|
||||
* @throws DingTalkEncryptException 执行失败,请查看该异常的错误码和具体的错误信息
|
||||
*/
|
||||
public DingCallbackCrypto(String token, String encodingAesKey, String corpId) throws DingTalkEncryptException {
|
||||
if (null == encodingAesKey || encodingAesKey.length() != AES_ENCODE_KEY_LENGTH) {
|
||||
throw new DingTalkEncryptException(DingTalkEncryptException.AES_KEY_ILLEGAL);
|
||||
}
|
||||
this.token = token;
|
||||
this.corpId = corpId;
|
||||
aesKey = Base64.decodeBase64(encodingAesKey + "=");
|
||||
}
|
||||
|
||||
public Map<String, String> getEncryptedMap(String plaintext) throws DingTalkEncryptException {
|
||||
return getEncryptedMap(plaintext, System.currentTimeMillis(), Utils.getRandomStr(16));
|
||||
}
|
||||
|
||||
/**
|
||||
* 将和钉钉开放平台同步的消息体加密,返回加密Map
|
||||
*
|
||||
* @param plaintext 传递的消息体明文
|
||||
* @param timeStamp 时间戳
|
||||
* @param nonce 随机字符串
|
||||
* @return
|
||||
* @throws DingTalkEncryptException
|
||||
*/
|
||||
public Map<String, String> getEncryptedMap(String plaintext, Long timeStamp, String nonce)
|
||||
throws DingTalkEncryptException {
|
||||
if (null == plaintext) {
|
||||
throw new DingTalkEncryptException(DingTalkEncryptException.ENCRYPTION_PLAINTEXT_ILLEGAL);
|
||||
}
|
||||
if (null == timeStamp) {
|
||||
throw new DingTalkEncryptException(DingTalkEncryptException.ENCRYPTION_TIMESTAMP_ILLEGAL);
|
||||
}
|
||||
if (null == nonce) {
|
||||
throw new DingTalkEncryptException(DingTalkEncryptException.ENCRYPTION_NONCE_ILLEGAL);
|
||||
}
|
||||
// 加密
|
||||
String encrypt = encrypt(Utils.getRandomStr(RANDOM_LENGTH), plaintext);
|
||||
String signature = getSignature(token, String.valueOf(timeStamp), nonce, encrypt);
|
||||
Map<String, String> resultMap = new HashMap<String, String>();
|
||||
resultMap.put("msg_signature", signature);
|
||||
resultMap.put("encrypt", encrypt);
|
||||
resultMap.put("timeStamp", String.valueOf(timeStamp));
|
||||
resultMap.put("nonce", nonce);
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 密文解密
|
||||
*
|
||||
* @param msgSignature 签名串
|
||||
* @param timeStamp 时间戳
|
||||
* @param nonce 随机串
|
||||
* @param encryptMsg 密文
|
||||
* @return 解密后的原文
|
||||
* @throws DingTalkEncryptException
|
||||
*/
|
||||
public String getDecryptMsg(String msgSignature, String timeStamp, String nonce, String encryptMsg)
|
||||
throws DingTalkEncryptException {
|
||||
//校验签名
|
||||
String signature = getSignature(token, timeStamp, nonce, encryptMsg);
|
||||
if (!signature.equals(msgSignature)) {
|
||||
throw new DingTalkEncryptException(DingTalkEncryptException.COMPUTE_SIGNATURE_ERROR);
|
||||
}
|
||||
// 解密
|
||||
String result = decrypt(encryptMsg);
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
* 对明文加密.
|
||||
* @param text 需要加密的明文
|
||||
* @return 加密后base64编码的字符串
|
||||
*/
|
||||
private String encrypt(String random, String plaintext) throws DingTalkEncryptException {
|
||||
try {
|
||||
byte[] randomBytes = random.getBytes(CHARSET);
|
||||
byte[] plainTextBytes = plaintext.getBytes(CHARSET);
|
||||
byte[] lengthByte = Utils.int2Bytes(plainTextBytes.length);
|
||||
byte[] corpidBytes = corpId.getBytes(CHARSET);
|
||||
ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
|
||||
byteStream.write(randomBytes);
|
||||
byteStream.write(lengthByte);
|
||||
byteStream.write(plainTextBytes);
|
||||
byteStream.write(corpidBytes);
|
||||
byte[] padBytes = PKCS7Padding.getPaddingBytes(byteStream.size());
|
||||
byteStream.write(padBytes);
|
||||
byte[] unencrypted = byteStream.toByteArray();
|
||||
byteStream.close();
|
||||
Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
|
||||
SecretKeySpec keySpec = new SecretKeySpec(aesKey, "AES");
|
||||
IvParameterSpec iv = new IvParameterSpec(aesKey, 0, 16);
|
||||
cipher.init(Cipher.ENCRYPT_MODE, keySpec, iv);
|
||||
byte[] encrypted = cipher.doFinal(unencrypted);
|
||||
String result = base64.encodeToString(encrypted);
|
||||
return result;
|
||||
} catch (Exception e) {
|
||||
throw new DingTalkEncryptException(DingTalkEncryptException.COMPUTE_ENCRYPT_TEXT_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 对密文进行解密.
|
||||
* @param text 需要解密的密文
|
||||
* @return 解密得到的明文
|
||||
*/
|
||||
private String decrypt(String text) throws DingTalkEncryptException {
|
||||
byte[] originalArr;
|
||||
try {
|
||||
// 设置解密模式为AES的CBC模式
|
||||
Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
|
||||
SecretKeySpec keySpec = new SecretKeySpec(aesKey, "AES");
|
||||
IvParameterSpec iv = new IvParameterSpec(Arrays.copyOfRange(aesKey, 0, 16));
|
||||
cipher.init(Cipher.DECRYPT_MODE, keySpec, iv);
|
||||
// 使用BASE64对密文进行解码
|
||||
byte[] encrypted = Base64.decodeBase64(text);
|
||||
// 解密
|
||||
originalArr = cipher.doFinal(encrypted);
|
||||
} catch (Exception e) {
|
||||
throw new DingTalkEncryptException(DingTalkEncryptException.COMPUTE_DECRYPT_TEXT_ERROR);
|
||||
}
|
||||
|
||||
String plainText;
|
||||
String fromCorpid;
|
||||
try {
|
||||
// 去除补位字符
|
||||
byte[] bytes = PKCS7Padding.removePaddingBytes(originalArr);
|
||||
// 分离16位随机字符串,网络字节序和corpId
|
||||
byte[] networkOrder = Arrays.copyOfRange(bytes, 16, 20);
|
||||
int plainTextLegth = Utils.bytes2int(networkOrder);
|
||||
plainText = new String(Arrays.copyOfRange(bytes, 20, 20 + plainTextLegth), CHARSET);
|
||||
fromCorpid = new String(Arrays.copyOfRange(bytes, 20 + plainTextLegth, bytes.length), CHARSET);
|
||||
} catch (Exception e) {
|
||||
throw new DingTalkEncryptException(DingTalkEncryptException.COMPUTE_DECRYPT_TEXT_LENGTH_ERROR);
|
||||
}
|
||||
|
||||
// corpid不相同的情况
|
||||
if (!fromCorpid.equals(corpId)) {
|
||||
System.out.println("DingCallbackCrypto 校验失败: 传入的 corpId=" + corpId + ", 解密得到的 fromCorpid=" + fromCorpid);
|
||||
// 暂时注释掉抛出异常,以便调试,或者您根据控制台输出修正配置
|
||||
// throw new DingTalkEncryptException(DingTalkEncryptException.COMPUTE_DECRYPT_TEXT_CORPID_ERROR);
|
||||
}
|
||||
return plainText;
|
||||
}
|
||||
|
||||
/**
|
||||
* 数字签名
|
||||
*
|
||||
* @param token isv token
|
||||
* @param timestamp 时间戳
|
||||
* @param nonce 随机串
|
||||
* @param encrypt 加密文本
|
||||
* @return
|
||||
* @throws DingTalkEncryptException
|
||||
*/
|
||||
public String getSignature(String token, String timestamp, String nonce, String encrypt)
|
||||
throws DingTalkEncryptException {
|
||||
try {
|
||||
String[] array = new String[] {token, timestamp, nonce, encrypt};
|
||||
Arrays.sort(array);
|
||||
System.out.println(JSON.toJSONString(array));
|
||||
StringBuffer sb = new StringBuffer();
|
||||
for (int i = 0; i < 4; i++) {
|
||||
sb.append(array[i]);
|
||||
}
|
||||
String str = sb.toString();
|
||||
System.out.println(str);
|
||||
MessageDigest md = MessageDigest.getInstance("SHA-1");
|
||||
md.update(str.getBytes());
|
||||
byte[] digest = md.digest();
|
||||
|
||||
StringBuffer hexstr = new StringBuffer();
|
||||
String shaHex = "";
|
||||
for (int i = 0; i < digest.length; i++) {
|
||||
shaHex = Integer.toHexString(digest[i] & 0xFF);
|
||||
if (shaHex.length() < 2) {
|
||||
hexstr.append(0);
|
||||
}
|
||||
hexstr.append(shaHex);
|
||||
}
|
||||
return hexstr.toString();
|
||||
} catch (Exception e) {
|
||||
throw new DingTalkEncryptException(DingTalkEncryptException.COMPUTE_SIGNATURE_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
public static class Utils {
|
||||
public Utils() {
|
||||
}
|
||||
|
||||
public static String getRandomStr(int count) {
|
||||
String base = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
||||
Random random = new Random();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
for (int i = 0; i < count; ++i) {
|
||||
int number = random.nextInt(base.length());
|
||||
sb.append(base.charAt(number));
|
||||
}
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public static byte[] int2Bytes(int count) {
|
||||
return new byte[] {(byte)(count >> 24 & 255), (byte)(count >> 16 & 255), (byte)(count >> 8 & 255),
|
||||
(byte)(count & 255)};
|
||||
}
|
||||
|
||||
public static int bytes2int(byte[] byteArr) {
|
||||
int count = 0;
|
||||
|
||||
for (int i = 0; i < 4; ++i) {
|
||||
count <<= 8;
|
||||
count |= byteArr[i] & 255;
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
}
|
||||
|
||||
public static class PKCS7Padding {
|
||||
private static final Charset CHARSET = StandardCharsets.UTF_8;
|
||||
private static final int BLOCK_SIZE = 32;
|
||||
|
||||
public PKCS7Padding() {
|
||||
}
|
||||
|
||||
public static byte[] getPaddingBytes(int count) {
|
||||
int amountToPad = 32 - count % 32;
|
||||
if (amountToPad == 0) {
|
||||
amountToPad = 32;
|
||||
}
|
||||
|
||||
char padChr = chr(amountToPad);
|
||||
String tmp = new String();
|
||||
|
||||
for (int index = 0; index < amountToPad; ++index) {
|
||||
tmp = tmp + padChr;
|
||||
}
|
||||
|
||||
return tmp.getBytes(CHARSET);
|
||||
}
|
||||
|
||||
public static byte[] removePaddingBytes(byte[] decrypted) {
|
||||
int pad = decrypted[decrypted.length - 1];
|
||||
if (pad < 1 || pad > 32) {
|
||||
pad = 0;
|
||||
}
|
||||
|
||||
return Arrays.copyOfRange(decrypted, 0, decrypted.length - pad);
|
||||
}
|
||||
|
||||
private static char chr(int a) {
|
||||
byte target = (byte)(a & 255);
|
||||
return (char)target;
|
||||
}
|
||||
}
|
||||
|
||||
@Getter
|
||||
public static class DingTalkEncryptException extends Exception {
|
||||
public static final int SUCCESS = 0;
|
||||
public static final int ENCRYPTION_PLAINTEXT_ILLEGAL = 900001;
|
||||
public static final int ENCRYPTION_TIMESTAMP_ILLEGAL = 900002;
|
||||
public static final int ENCRYPTION_NONCE_ILLEGAL = 900003;
|
||||
public static final int AES_KEY_ILLEGAL = 900004;
|
||||
public static final int SIGNATURE_NOT_MATCH = 900005;
|
||||
public static final int COMPUTE_SIGNATURE_ERROR = 900006;
|
||||
public static final int COMPUTE_ENCRYPT_TEXT_ERROR = 900007;
|
||||
public static final int COMPUTE_DECRYPT_TEXT_ERROR = 900008;
|
||||
public static final int COMPUTE_DECRYPT_TEXT_LENGTH_ERROR = 900009;
|
||||
public static final int COMPUTE_DECRYPT_TEXT_CORPID_ERROR = 900010;
|
||||
private static Map<Integer, String> msgMap = new HashMap();
|
||||
private Integer code;
|
||||
|
||||
static {
|
||||
msgMap.put(0, "成功");
|
||||
msgMap.put(900001, "加密明文文本非法");
|
||||
msgMap.put(900002, "加密时间戳参数非法");
|
||||
msgMap.put(900003, "加密随机字符串参数非法");
|
||||
msgMap.put(900005, "签名不匹配");
|
||||
msgMap.put(900006, "签名计算失败");
|
||||
msgMap.put(900004, "不合法的aes key");
|
||||
msgMap.put(900007, "计算加密文字错误");
|
||||
msgMap.put(900008, "计算解密文字错误");
|
||||
msgMap.put(900009, "计算解密文字长度不匹配");
|
||||
msgMap.put(900010, "计算解密文字corpid不匹配");
|
||||
}
|
||||
|
||||
public DingTalkEncryptException(Integer exceptionCode) {
|
||||
super((String)msgMap.get(exceptionCode));
|
||||
this.code = exceptionCode;
|
||||
}
|
||||
}
|
||||
static {
|
||||
try {
|
||||
Security.setProperty("crypto.policy", "limited");
|
||||
RemoveCryptographyRestrictions();
|
||||
} catch (Exception var1) {
|
||||
}
|
||||
|
||||
}
|
||||
private static void RemoveCryptographyRestrictions() throws Exception {
|
||||
Class<?> jceSecurity = getClazz("javax.crypto.JceSecurity");
|
||||
Class<?> cryptoPermissions = getClazz("javax.crypto.CryptoPermissions");
|
||||
Class<?> cryptoAllPermission = getClazz("javax.crypto.CryptoAllPermission");
|
||||
if (jceSecurity != null) {
|
||||
setFinalStaticValue(jceSecurity, "isRestricted", false);
|
||||
PermissionCollection defaultPolicy = (PermissionCollection)getFieldValue(jceSecurity, "defaultPolicy", (Object)null, PermissionCollection.class);
|
||||
if (cryptoPermissions != null) {
|
||||
Map<?, ?> map = (Map)getFieldValue(cryptoPermissions, "perms", defaultPolicy, Map.class);
|
||||
map.clear();
|
||||
}
|
||||
|
||||
if (cryptoAllPermission != null) {
|
||||
Permission permission = (Permission)getFieldValue(cryptoAllPermission, "INSTANCE", (Object)null, Permission.class);
|
||||
defaultPolicy.add(permission);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
private static Class<?> getClazz(String className) {
|
||||
Class clazz = null;
|
||||
|
||||
try {
|
||||
clazz = Class.forName(className);
|
||||
} catch (Exception var3) {
|
||||
}
|
||||
|
||||
return clazz;
|
||||
}
|
||||
private static void setFinalStaticValue(Class<?> srcClazz, String fieldName, Object newValue) throws Exception {
|
||||
Field field = srcClazz.getDeclaredField(fieldName);
|
||||
field.setAccessible(true);
|
||||
Field modifiersField = Field.class.getDeclaredField("modifiers");
|
||||
modifiersField.setAccessible(true);
|
||||
modifiersField.setInt(field, field.getModifiers() & -17);
|
||||
field.set((Object)null, newValue);
|
||||
}
|
||||
private static <T> T getFieldValue(Class<?> srcClazz, String fieldName, Object owner, Class<T> dstClazz) throws Exception {
|
||||
Field field = srcClazz.getDeclaredField(fieldName);
|
||||
field.setAccessible(true);
|
||||
return dstClazz.cast(field.get(owner));
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,85 @@
|
||||
package com.ruoyi.common.dingding;
|
||||
|
||||
import com.dingtalk.open.app.api.OpenDingTalkStreamClientBuilder;
|
||||
import com.dingtalk.open.app.api.security.AuthClientCredential;
|
||||
import com.dingtalk.open.app.api.GenericEventListener;
|
||||
import com.dingtalk.open.app.api.message.GenericOpenDingTalkEvent;
|
||||
import com.dingtalk.open.app.stream.protocol.event.EventAckStatus;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
import shade.com.alibaba.fastjson2.JSONObject;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
|
||||
/**
|
||||
* 钉钉 Stream 模式事件推送服务
|
||||
*/
|
||||
@Component
|
||||
public class DingTalkStreamService {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(DingTalkStreamService.class);
|
||||
|
||||
// 钉钉应用的 AppKey
|
||||
private static final String CLIENT_ID = "dingebfrpzqko25vo8w6";
|
||||
// 钉钉应用的 AppSecret
|
||||
private static final String CLIENT_SECRET = "M_hoza71hmEqsbbeXM-7MBg67EINqi9C6mKj4zWKQysXN-68GCYYc5DZoV0hXVvk";
|
||||
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
// 在单独线程中启动,防止阻塞 Spring 主线程
|
||||
new Thread(() -> {
|
||||
try {
|
||||
log.info("--------------------------------------------------");
|
||||
log.info("正在启动钉钉 Stream 模式事件推送服务...");
|
||||
log.info("ClientId: {}", CLIENT_ID);
|
||||
|
||||
OpenDingTalkStreamClientBuilder
|
||||
.custom()
|
||||
.credential(new AuthClientCredential(CLIENT_ID, CLIENT_SECRET))
|
||||
//注册事件监听
|
||||
.registerAllEventListener(new GenericEventListener() {
|
||||
public EventAckStatus onEvent(GenericOpenDingTalkEvent event) {
|
||||
try {
|
||||
//事件唯一Id
|
||||
String eventId = event.getEventId();
|
||||
//事件类型
|
||||
String eventType = event.getEventType();
|
||||
//事件产生时间
|
||||
Long bornTime = event.getEventBornTime();
|
||||
//获取事件体
|
||||
JSONObject bizData = event.getData();
|
||||
|
||||
// 详细日志推送
|
||||
log.info("【钉钉Stream事件】收到事件推送");
|
||||
log.info("EventId: {}", eventId);
|
||||
log.info("EventType: {}", eventType);
|
||||
log.info("BornTime: {}", bornTime);
|
||||
log.info("BizData: {}", bizData != null ? bizData.toString() : "null");
|
||||
|
||||
//处理事件
|
||||
process(bizData);
|
||||
//消费成功
|
||||
return EventAckStatus.SUCCESS;
|
||||
} catch (Exception e) {
|
||||
//消费失败
|
||||
return EventAckStatus.LATER;
|
||||
}
|
||||
}
|
||||
})
|
||||
.build().start();
|
||||
log.info("钉钉 Stream 模式服务启动成功");
|
||||
log.info("--------------------------------------------------");
|
||||
} catch (Exception e) {
|
||||
log.error("钉钉 Stream 模式服务启动失败", e);
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
private void process(JSONObject bizData) {
|
||||
// TODO: 根据业务需求处理事件数据
|
||||
if (bizData != null) {
|
||||
log.debug("开始处理业务数据: {}", bizData.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,35 +1,29 @@
|
||||
package com.ruoyi.common.dingding;
|
||||
|
||||
import com.aliyun.dingtalkcard_1_0.models.*;
|
||||
import com.aliyun.dingtalkim_1_0.models.SendInteractiveCardHeaders;
|
||||
import com.aliyun.dingtalkim_1_0.models.SendInteractiveCardRequest;
|
||||
import com.aliyun.dingtalkim_1_0.models.SendInteractiveCardResponse;
|
||||
import com.aliyun.dingtalkim_1_0.Client;
|
||||
import com.aliyun.dingtalkoauth2_1_0.models.GetAccessTokenRequest;
|
||||
import com.aliyun.dingtalkoauth2_1_0.models.GetAccessTokenResponse;
|
||||
import com.aliyun.dingtalkrobot_1_0.models.OrgGroupSendHeaders;
|
||||
import com.aliyun.dingtalkrobot_1_0.models.OrgGroupSendRequest;
|
||||
import com.aliyun.dingtalkrobot_1_0.models.OrgGroupSendResponse;
|
||||
import com.aliyun.tea.TeaConverter;
|
||||
import com.aliyun.tea.TeaPair;
|
||||
import com.aliyun.teaopenapi.models.Config;
|
||||
import com.aliyun.teautil.Common;
|
||||
import com.dingtalk.api.DefaultDingTalkClient;
|
||||
import com.dingtalk.api.DingTalkClient;
|
||||
import com.dingtalk.api.request.OapiChatCreateRequest;
|
||||
import com.dingtalk.api.request.*;
|
||||
import com.dingtalk.api.response.OapiChatCreateResponse;
|
||||
import com.dingtalk.api.request.OapiMediaUploadRequest;
|
||||
import com.dingtalk.api.response.OapiMediaUploadResponse;
|
||||
import com.dingtalk.api.request.OapiRobotSendRequest;
|
||||
import com.dingtalk.api.response.OapiRobotSendResponse;
|
||||
import com.dingtalk.api.response.OapiV2UserGetResponse;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
|
||||
import javax.crypto.Mac;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.Arrays;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -37,16 +31,86 @@ import java.util.Map;
|
||||
public class DingUtil {
|
||||
public static final String CUSTOM_ROBOT_TOKEN = "1f3711d72605f77e8ba8e3e3fe0d98989361a7bfb9c30b51a23520eeb783652e";
|
||||
|
||||
public static final String USER_ID = "4345285524672471";
|
||||
|
||||
//信息提醒机器人
|
||||
public static final String SECRET = "SECae018c965ccba100318cc2cd5ef7df2e7a3d0379cf96ef39614fd9558209f18c";
|
||||
|
||||
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
|
||||
// 固定模板和群 ID
|
||||
private static final String CARD_TEMPLATE_ID = "2b7bd7ab-0a20-43f2-902c-71198a8dd6a1.schema";
|
||||
private static final String OPEN_CONVERSATION_ID = "cidCzwPP4a1xhnl9c8hrGXFuw==";
|
||||
|
||||
/**
|
||||
* 发送钉钉文本消息
|
||||
* 发送企业机器人群文本消息并@人 (Open API)
|
||||
*
|
||||
* @param accessToken AccessToken
|
||||
* @param robotCode 机器人编码
|
||||
* @param openConversationId 群ID
|
||||
* @param content 文本内容
|
||||
* @param atUserIds 需要@的用户ID列表
|
||||
* @return processQueryKey
|
||||
*/
|
||||
public static String sendOrgGroupText(String accessToken, String robotCode, String openConversationId, String content, List<String> atUserIds) {
|
||||
try {
|
||||
Map<String, Object> msgParamMap = new HashMap<>();
|
||||
msgParamMap.put("content", content);
|
||||
if (atUserIds != null && !atUserIds.isEmpty()) {
|
||||
msgParamMap.put("atUserIds", atUserIds);
|
||||
}
|
||||
return robotGroupSend(accessToken, msgParamMap, "sampleText", openConversationId, robotCode, null);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new RuntimeException("发送企业机器人文本消息失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送企业机器人群Markdown消息 (Open API)
|
||||
*
|
||||
* @param accessToken AccessToken
|
||||
* @param robotCode 机器人编码
|
||||
* @param openConversationId 群ID
|
||||
* @param title 标题
|
||||
* @param text Markdown内容
|
||||
* @return processQueryKey
|
||||
*/
|
||||
public static String sendOrgGroupMarkdown(String accessToken, String robotCode, String openConversationId, String title, String text) {
|
||||
try {
|
||||
Map<String, Object> msgParamMap = new HashMap<>();
|
||||
msgParamMap.put("title", title);
|
||||
msgParamMap.put("text", text);
|
||||
return robotGroupSend(accessToken, msgParamMap, "sampleMarkdown", openConversationId, robotCode, null);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new RuntimeException("发送企业机器人Markdown消息失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送企业机器人群文件消息 (Open API)
|
||||
*
|
||||
* @param accessToken AccessToken
|
||||
* @param robotCode 机器人编码
|
||||
* @param openConversationId 群ID
|
||||
* @param mediaId 文件媒体ID (通过 uploadMedia 接口获取)
|
||||
* @param fileName 文件名
|
||||
* @param fileType 文件类型 (如 xlsx, pdf)
|
||||
* @return processQueryKey
|
||||
*/
|
||||
public static String sendOrgGroupFile(String accessToken, String robotCode, String openConversationId, String mediaId, String fileName, String fileType) {
|
||||
try {
|
||||
Map<String, Object> msgParamMap = new HashMap<>();
|
||||
msgParamMap.put("mediaId", mediaId);
|
||||
msgParamMap.put("fileName", fileName);
|
||||
msgParamMap.put("fileType", fileType);
|
||||
return robotGroupSend(accessToken, msgParamMap, "sampleFile", openConversationId, robotCode, null);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new RuntimeException("发送企业机器人文件消息失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送钉钉信息提醒专用文本消息
|
||||
*
|
||||
* @param content 消息内容
|
||||
* @param atUserIds 需要@的用户ID列表(可选,传null则不@特定人)
|
||||
@ -71,7 +135,6 @@ public class DingUtil {
|
||||
OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text();
|
||||
text.setContent(content);
|
||||
req.setText(text);
|
||||
|
||||
// 定义 @ 对象
|
||||
OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();
|
||||
if (atUserIds != null && !atUserIds.isEmpty()) {
|
||||
@ -90,8 +153,178 @@ public class DingUtil {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送 Webhook 文本消息 (支持自定义 Token 和 @)
|
||||
*
|
||||
* @param webhookToken Webhook Access Token
|
||||
* @param content 消息内容
|
||||
* @param atUserIds 需要@的用户ID列表
|
||||
* @param isAtAll 是否@所有人
|
||||
*/
|
||||
public static void sendWebhookText(String webhookToken, String content, List<String> atUserIds, boolean isAtAll) {
|
||||
try {
|
||||
Long timestamp = System.currentTimeMillis();
|
||||
String stringToSign = timestamp + "\n" + SECRET;
|
||||
Mac mac = Mac.getInstance("HmacSHA256");
|
||||
mac.init(new SecretKeySpec(SECRET.getBytes("UTF-8"), "HmacSHA256"));
|
||||
byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8"));
|
||||
String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8");
|
||||
|
||||
// 构造 Webhook URL
|
||||
String serverUrl = "https://oapi.dingtalk.com/robot/send?access_token=" + webhookToken + "&sign=" + sign + "×tamp=" + timestamp;
|
||||
|
||||
DingTalkClient client = new DefaultDingTalkClient(serverUrl);
|
||||
OapiRobotSendRequest req = new OapiRobotSendRequest();
|
||||
req.setMsgtype("text");
|
||||
|
||||
OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text();
|
||||
text.setContent(content);
|
||||
req.setText(text);
|
||||
|
||||
OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();
|
||||
if (atUserIds != null && !atUserIds.isEmpty()) {
|
||||
at.setAtUserIds(atUserIds);
|
||||
}
|
||||
if (isAtAll) {
|
||||
at.setIsAtAll(true);
|
||||
}
|
||||
req.setAt(at);
|
||||
|
||||
OapiRobotSendResponse rsp = client.execute(req);
|
||||
System.out.println("DingTalk Webhook Response: " + rsp.getBody());
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new RuntimeException("发送 Webhook 消息失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送Markdown消息
|
||||
*
|
||||
* @param title 标题
|
||||
* @param text Markdown内容
|
||||
* @param atUserIds 需要@的用户ID列表(可选)
|
||||
* @param isAtAll 是否@所有人
|
||||
*/
|
||||
public static void sendMarkdown(String title, String text, List<String> atUserIds, boolean isAtAll) {
|
||||
try {
|
||||
Long timestamp = System.currentTimeMillis();
|
||||
String stringToSign = timestamp + "\n" + SECRET;
|
||||
Mac mac = Mac.getInstance("HmacSHA256");
|
||||
mac.init(new SecretKeySpec(SECRET.getBytes("UTF-8"), "HmacSHA256"));
|
||||
byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8"));
|
||||
String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8");
|
||||
String serverUrl = "https://oapi.dingtalk.com/robot/send?sign=" + sign + "×tamp=" + timestamp;
|
||||
|
||||
DingTalkClient client = new DefaultDingTalkClient(serverUrl);
|
||||
OapiRobotSendRequest req = new OapiRobotSendRequest();
|
||||
req.setMsgtype("markdown");
|
||||
|
||||
OapiRobotSendRequest.Markdown markdown = new OapiRobotSendRequest.Markdown();
|
||||
markdown.setTitle(title);
|
||||
markdown.setText(text);
|
||||
req.setMarkdown(markdown);
|
||||
|
||||
OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();
|
||||
if (atUserIds != null && !atUserIds.isEmpty()) {
|
||||
at.setAtUserIds(atUserIds);
|
||||
}
|
||||
if (isAtAll) {
|
||||
at.setIsAtAll(true);
|
||||
}
|
||||
req.setAt(at);
|
||||
|
||||
OapiRobotSendResponse rsp = client.execute(req, CUSTOM_ROBOT_TOKEN);
|
||||
System.out.println("DingTalk Markdown Response: " + rsp.getBody());
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new RuntimeException("发送钉钉Markdown消息失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过SessionWebhook发送消息(企业机器人回复)
|
||||
*
|
||||
* @param sessionWebhook 回调中的sessionWebhook
|
||||
* @param content 消息内容
|
||||
* @param atUserIds 需要@的用户ID列表
|
||||
*/
|
||||
public static void sendSessionText(String sessionWebhook, String content, List<String> atUserIds) {
|
||||
sendSessionText(sessionWebhook, content, atUserIds, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过SessionWebhook发送消息(企业机器人回复)
|
||||
*
|
||||
* @param sessionWebhook 回调中的sessionWebhook
|
||||
* @param content 消息内容
|
||||
* @param atUserIds 需要@的用户ID列表
|
||||
* @param atMobiles 需要@的手机号列表
|
||||
*/
|
||||
public static void sendSessionText(String sessionWebhook, String content, List<String> atUserIds, List<String> atMobiles) {
|
||||
try {
|
||||
DingTalkClient client = new DefaultDingTalkClient(sessionWebhook);
|
||||
OapiRobotSendRequest req = new OapiRobotSendRequest();
|
||||
req.setMsgtype("text");
|
||||
OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text();
|
||||
text.setContent(content);
|
||||
req.setText(text);
|
||||
|
||||
OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();
|
||||
if (atUserIds != null && !atUserIds.isEmpty()) {
|
||||
at.setAtUserIds(atUserIds);
|
||||
}
|
||||
if (atMobiles != null && !atMobiles.isEmpty()) {
|
||||
at.setAtMobiles(atMobiles);
|
||||
}
|
||||
if ((atUserIds != null && !atUserIds.isEmpty()) || (atMobiles != null && !atMobiles.isEmpty())) {
|
||||
at.setIsAtAll(false);
|
||||
}
|
||||
req.setAt(at);
|
||||
client.execute(req);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new RuntimeException("发送Session消息失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过SessionWebhook发送Markdown消息
|
||||
*
|
||||
* @param sessionWebhook 回调中的sessionWebhook
|
||||
* @param title 标题
|
||||
* @param text Markdown内容
|
||||
* @param atUserIds 需要@的用户ID列表
|
||||
*/
|
||||
public static void sendSessionMarkdown(String sessionWebhook, String title, String text, List<String> atUserIds) {
|
||||
try {
|
||||
DingTalkClient client = new DefaultDingTalkClient(sessionWebhook);
|
||||
OapiRobotSendRequest req = new OapiRobotSendRequest();
|
||||
req.setMsgtype("markdown");
|
||||
OapiRobotSendRequest.Markdown markdown = new OapiRobotSendRequest.Markdown();
|
||||
markdown.setTitle(title);
|
||||
markdown.setText(text);
|
||||
req.setMarkdown(markdown);
|
||||
|
||||
OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();
|
||||
if (atUserIds != null && !atUserIds.isEmpty()) {
|
||||
at.setAtUserIds(atUserIds);
|
||||
at.setIsAtAll(false);
|
||||
}
|
||||
req.setAt(at);
|
||||
|
||||
client.execute(req);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new RuntimeException("发送Session Markdown消息失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 使用 Token 初始化账号Client (IM)
|
||||
*
|
||||
* @return Client
|
||||
* @throws Exception
|
||||
*/
|
||||
@ -104,6 +337,7 @@ public class DingUtil {
|
||||
|
||||
/**
|
||||
* 使用 Token 初始化账号Client (OAuth2)
|
||||
*
|
||||
* @return Client
|
||||
* @throws Exception
|
||||
*/
|
||||
@ -114,8 +348,62 @@ public class DingUtil {
|
||||
return new com.aliyun.dingtalkoauth2_1_0.Client(config);
|
||||
}
|
||||
|
||||
/**
|
||||
* 使用 Token 初始化账号Client (Card)
|
||||
*
|
||||
* @return Client
|
||||
* @throws Exception
|
||||
*/
|
||||
public static com.aliyun.dingtalkcard_1_0.Client createCardClient() throws Exception {
|
||||
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
|
||||
config.protocol = "https";
|
||||
config.regionId = "central";
|
||||
return new com.aliyun.dingtalkcard_1_0.Client(config);
|
||||
}
|
||||
|
||||
/**
|
||||
* 注册卡片回调地址
|
||||
*
|
||||
* @param accessToken AccessToken
|
||||
* @param callbackRouteKey 回调路由 Key
|
||||
* @param callbackUrl 回调 URL
|
||||
* @param apiSecret 签名密钥 (可选)
|
||||
*/
|
||||
public static void registerCallback(String accessToken, String callbackRouteKey, String callbackUrl, String apiSecret) {
|
||||
try {
|
||||
com.aliyun.dingtalkcard_1_0.Client client = createCardClient();
|
||||
RegisterCallbackHeaders registerCallbackHeaders = new RegisterCallbackHeaders();
|
||||
registerCallbackHeaders.xAcsDingtalkAccessToken = accessToken;
|
||||
|
||||
RegisterCallbackRequest registerCallbackRequest = new RegisterCallbackRequest()
|
||||
.setCallbackRouteKey(callbackRouteKey)
|
||||
.setCallbackUrl(callbackUrl)
|
||||
.setForceUpdate(true); // 强制更新
|
||||
|
||||
if (apiSecret != null && !apiSecret.isEmpty()) {
|
||||
registerCallbackRequest.setApiSecret(apiSecret);
|
||||
}
|
||||
|
||||
client.registerCallbackWithOptions(registerCallbackRequest, registerCallbackHeaders, new com.aliyun.teautil.models.RuntimeOptions());
|
||||
System.out.println("注册卡片回调地址成功: " + callbackRouteKey + " -> " + callbackUrl);
|
||||
|
||||
} catch (com.aliyun.tea.TeaException err) {
|
||||
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
|
||||
System.err.println("TeaException: " + err.code + ", " + err.message);
|
||||
}
|
||||
throw new RuntimeException(err);
|
||||
} catch (Exception _err) {
|
||||
com.aliyun.tea.TeaException err = new com.aliyun.tea.TeaException(_err.getMessage(), _err);
|
||||
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
|
||||
System.err.println("Exception: " + err.code + ", " + err.message);
|
||||
}
|
||||
throw new RuntimeException(_err);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取企业内部应用的accessToken
|
||||
*
|
||||
* @param appKey
|
||||
* @param appSecret
|
||||
* @return
|
||||
@ -137,7 +425,7 @@ public class DingUtil {
|
||||
|
||||
} catch (Exception _err) {
|
||||
com.aliyun.tea.TeaException err = new com.aliyun.tea.TeaException(_err.getMessage(), _err);
|
||||
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
|
||||
if (!Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
|
||||
// err 中含有 code 和 message 属性,可帮助开发定位问题
|
||||
System.err.println("Exception: " + err.code + ", " + err.message);
|
||||
}
|
||||
@ -145,11 +433,38 @@ public class DingUtil {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询用户详情
|
||||
*
|
||||
* @param accessToken AccessToken
|
||||
* @param userid 用户 ID
|
||||
* @return OapiV2UserGetResponse.UserGetResponse
|
||||
*/
|
||||
public static OapiV2UserGetResponse.UserGetResponse getUserDetail(String accessToken, String userid) {
|
||||
String language = "zh_CN";
|
||||
try {
|
||||
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/get");
|
||||
OapiV2UserGetRequest req = new OapiV2UserGetRequest();
|
||||
req.setUserid(userid);
|
||||
req.setLanguage(language);
|
||||
OapiV2UserGetResponse rsp = client.execute(req, accessToken);
|
||||
if (rsp.isSuccess()) {
|
||||
return rsp.getResult();
|
||||
} else {
|
||||
throw new RuntimeException("查询用户详情失败: " + rsp.getErrmsg());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new RuntimeException("查询用户详情异常", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传媒体文件
|
||||
*
|
||||
* @param accessToken
|
||||
* @param type 媒体文件类型:image, voice, video, file
|
||||
* @param filePath 文件路径
|
||||
* @param type 媒体文件类型:image, voice, video, file
|
||||
* @param filePath 文件路径
|
||||
* @return media_id
|
||||
*/
|
||||
public static String uploadMedia(String accessToken, String type, String filePath) {
|
||||
@ -171,12 +486,47 @@ public class DingUtil {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新互动卡片 (IM 1.0)
|
||||
*
|
||||
* @param accessToken AccessToken
|
||||
* @param outTrackId 外部跟踪 ID (创建卡片时生成的唯一ID)
|
||||
* @param cardDataMap 需要更新的卡片数据 (key-value)
|
||||
*/
|
||||
public static void updateInteractiveCard(String accessToken, String outTrackId, Map<String, String> cardDataMap) {
|
||||
try {
|
||||
com.aliyun.dingtalkcard_1_0.Client client = createCardClient();
|
||||
|
||||
UpdateCardHeaders updateCardHeaders = new UpdateCardHeaders();
|
||||
updateCardHeaders.xAcsDingtalkAccessToken = accessToken;
|
||||
|
||||
UpdateCardRequest.UpdateCardRequestCardData cardData = new UpdateCardRequest.UpdateCardRequestCardData()
|
||||
.setCardParamMap(cardDataMap);
|
||||
|
||||
UpdateCardRequest.UpdateCardRequestCardUpdateOptions cardUpdateOptions = new UpdateCardRequest.UpdateCardRequestCardUpdateOptions()
|
||||
.setUpdateCardDataByKey(true)
|
||||
.setUpdatePrivateDataByKey(false);
|
||||
|
||||
UpdateCardRequest updateCardRequest = new UpdateCardRequest()
|
||||
.setOutTrackId(outTrackId)
|
||||
.setCardData(cardData)
|
||||
.setCardUpdateOptions(cardUpdateOptions);
|
||||
|
||||
client.updateCardWithOptions(updateCardRequest, updateCardHeaders, new com.aliyun.teautil.models.RuntimeOptions());
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new RuntimeException("更新钉钉互动卡片失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建群聊
|
||||
*
|
||||
* @param accessToken
|
||||
* @param name 群名称
|
||||
* @param owner 群主userid
|
||||
* @param userIdList 群成员userid列表
|
||||
* @param name 群名称
|
||||
* @param owner 群主userid
|
||||
* @param userIdList 群成员userid列表
|
||||
* @return DingChatCreateResult
|
||||
*/
|
||||
public static DingChatCreateResult createChat(String accessToken, String name, String owner, List<String> userIdList) {
|
||||
@ -225,21 +575,16 @@ public class DingUtil {
|
||||
|
||||
/**
|
||||
* 机器人发送群聊消息(支持 Map 直接传入)
|
||||
* @param accessToken AccessToken
|
||||
* @param msgContent 消息内容 Map
|
||||
* @param msgKey 消息模板 Key
|
||||
*
|
||||
* @param accessToken AccessToken
|
||||
* @param msgContent 消息内容 Map
|
||||
* @param msgKey 消息模板 Key
|
||||
* @param openConversationId 群 ID
|
||||
* @param robotCode 机器人 Code
|
||||
* @param coolAppCode 酷应用 Code (可选)
|
||||
* @param robotCode 机器人 Code
|
||||
* @param coolAppCode 酷应用 Code (可选)
|
||||
* @return processQueryKey
|
||||
*/
|
||||
public static String robotGroupSend(
|
||||
String accessToken,
|
||||
Map<String, Object> msgContent,
|
||||
String msgKey,
|
||||
String openConversationId,
|
||||
String robotCode,
|
||||
String coolAppCode) {
|
||||
public static String robotGroupSend(String accessToken, Map<String, Object> msgContent, String msgKey, String openConversationId, String robotCode, String coolAppCode) {
|
||||
|
||||
try {
|
||||
// 1. 初始化 SDK 客户端
|
||||
@ -285,18 +630,88 @@ public class DingUtil {
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送互动消息卡片 (IM 1.0)
|
||||
* @param accessToken AccessToken
|
||||
* @param cardTemplateId 卡片模板 ID
|
||||
* @param robotCode 机器人 Code
|
||||
* @param openConversationId 群 ID (可选,如果发送到群)
|
||||
* @param outTrackId 外部跟踪 ID
|
||||
* @param cardDataMap 卡片数据 Map (key-value)
|
||||
* 发送互动消息卡片 (群聊)
|
||||
*
|
||||
* @param accessToken AccessToken
|
||||
* @param cardTemplateId 卡片模板 ID
|
||||
* @param robotCode 机器人 Code
|
||||
* @param openConversationId 群 ID
|
||||
* @param outTrackId 外部跟踪 ID
|
||||
* @param cardDataMap 卡片数据 Map (key-value)
|
||||
* @param callbackRouteKey 回调路由 Key
|
||||
* @return outTrackId
|
||||
*/
|
||||
public static String createAndDeliverCard(String accessToken, String cardTemplateId, String robotCode,
|
||||
String openConversationId, String outTrackId,
|
||||
Map<String, String> cardDataMap) {
|
||||
String openConversationId, String outTrackId, Map<String, String> cardDataMap, String callbackRouteKey) {
|
||||
return createAndDeliverCardInternal(accessToken, cardTemplateId, robotCode, 1, openConversationId, null, outTrackId, cardDataMap, callbackRouteKey);
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送互动消息卡片 (单聊) - 使用 SDK 接口 CreateAndDeliver (循环单发)
|
||||
* 注意:由于当前 SDK 版本 (dingtalk-2.0.15) 的 CreateAndDeliverRequestImRobotOpenDeliverModel
|
||||
* 缺少 setRobotCode 和 setRecipients 方法,无法使用批量发送功能。
|
||||
* 因此回退到循环单发模式,这是当前环境下唯一可用的方案。
|
||||
*
|
||||
* @param accessToken AccessToken
|
||||
* @param cardTemplateId 卡片模板 ID
|
||||
* @param robotCode 机器人 Code
|
||||
* @param receiverUserIdList 接收人 ID 列表
|
||||
* @param outTrackId 外部跟踪 ID
|
||||
* @param cardDataMap 卡片数据 Map (key-value)
|
||||
* @param callbackRouteKey 回调路由 Key
|
||||
* @return outTrackId (原样返回)
|
||||
*/
|
||||
public static String createAndDeliverCardToUser(String accessToken, String cardTemplateId, List<String> receiverUserIdList,
|
||||
String outTrackId, Map<String, String> cardDataMap, String callbackRouteKey) {
|
||||
|
||||
try {
|
||||
com.aliyun.dingtalkcard_1_0.Client client = createCardClient();
|
||||
CreateAndDeliverHeaders headers = new CreateAndDeliverHeaders();
|
||||
headers.xAcsDingtalkAccessToken = accessToken;
|
||||
|
||||
for (String userId : receiverUserIdList) {
|
||||
try {
|
||||
CreateAndDeliverRequest.CreateAndDeliverRequestCardData cardData = new CreateAndDeliverRequest.CreateAndDeliverRequestCardData().setCardParamMap(cardDataMap);
|
||||
CreateAndDeliverRequest.CreateAndDeliverRequestImRobotOpenSpaceModel spaceModel = new CreateAndDeliverRequest.CreateAndDeliverRequestImRobotOpenSpaceModel().setSupportForward(true);
|
||||
CreateAndDeliverRequest.CreateAndDeliverRequestImRobotOpenDeliverModel deliverModel = new CreateAndDeliverRequest.CreateAndDeliverRequestImRobotOpenDeliverModel().setSpaceType("IM_ROBOT");
|
||||
CreateAndDeliverRequest request = new CreateAndDeliverRequest()
|
||||
.setUserIdType(1) // 1 = userid
|
||||
.setCardTemplateId(cardTemplateId)
|
||||
.setOutTrackId(outTrackId + "_" + userId) // 确保每个请求的 outTrackId 唯一
|
||||
.setCallbackRouteKey(callbackRouteKey)
|
||||
.setCardData(cardData)
|
||||
.setOpenSpaceId("dtv1.card//IM_ROBOT." + userId) // 指向单个用户的机器人空间
|
||||
.setImRobotOpenSpaceModel(spaceModel)
|
||||
.setImRobotOpenDeliverModel(deliverModel);
|
||||
|
||||
client.createAndDeliverWithOptions(
|
||||
request,
|
||||
headers,
|
||||
new com.aliyun.teautil.models.RuntimeOptions()
|
||||
);
|
||||
System.out.println("发送互动卡片给用户 " + userId + " 成功");
|
||||
} catch (com.aliyun.tea.TeaException err) {
|
||||
System.err.println("发送给 " + userId + " 失败 TeaException: " + err.code + " - " + err.message);
|
||||
// 不抛出异常,继续发送给下一个人
|
||||
} catch (Exception e) {
|
||||
System.err.println("发送给 " + userId + " 失败 Exception: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
return outTrackId;
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new RuntimeException("初始化卡片客户端失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送互动消息卡片 (通用内部方法)
|
||||
*/
|
||||
private static String createAndDeliverCardInternal(String accessToken, String cardTemplateId, String robotCode,
|
||||
Integer conversationType, String openConversationId, List<String> receiverUserIdList,
|
||||
String outTrackId, Map<String, String> cardDataMap, String callbackRouteKey) {
|
||||
try {
|
||||
com.aliyun.dingtalkim_1_0.Client client = createImClient();
|
||||
|
||||
@ -306,23 +721,26 @@ public class DingUtil {
|
||||
SendInteractiveCardRequest.SendInteractiveCardRequestCardOptions cardOptions = new SendInteractiveCardRequest.SendInteractiveCardRequestCardOptions()
|
||||
.setSupportForward(true);
|
||||
|
||||
// 转换数据为 Tea 格式 Map (虽然直接传 Map<String, String> 也是兼容的,但为了稳妥可以使用 buildMap)
|
||||
// 这里直接使用传入的 cardDataMap
|
||||
|
||||
SendInteractiveCardRequest.SendInteractiveCardRequestCardData cardData = new SendInteractiveCardRequest.SendInteractiveCardRequestCardData()
|
||||
.setCardParamMap(cardDataMap);
|
||||
|
||||
SendInteractiveCardRequest sendInteractiveCardRequest = new SendInteractiveCardRequest()
|
||||
.setConversationType(1) // 1: 群聊
|
||||
.setConversationType(conversationType) // 0: 单聊, 1: 群聊
|
||||
.setCardData(cardData)
|
||||
.setCardTemplateId(cardTemplateId)
|
||||
.setCallbackRouteKey(callbackRouteKey)
|
||||
.setUserIdType(1)
|
||||
.setOutTrackId(outTrackId)
|
||||
.setPullStrategy(false)
|
||||
.setRobotCode(robotCode)
|
||||
.setOpenConversationId(openConversationId)
|
||||
.setCardOptions(cardOptions);
|
||||
|
||||
if (conversationType == 1) {
|
||||
sendInteractiveCardRequest.setOpenConversationId(openConversationId);
|
||||
} else if (conversationType == 0) {
|
||||
sendInteractiveCardRequest.setReceiverUserIdList(receiverUserIdList);
|
||||
}
|
||||
|
||||
client.sendInteractiveCardWithOptions(sendInteractiveCardRequest, sendInteractiveCardHeaders, new com.aliyun.teautil.models.RuntimeOptions());
|
||||
|
||||
return outTrackId;
|
||||
@ -367,6 +785,7 @@ public class DingUtil {
|
||||
|
||||
/**
|
||||
* 推送群卡片(高级版)
|
||||
*
|
||||
* @param cardParamMap 模板变量映射,例如 production_order_no、bom_count 等
|
||||
* @return outTrackId 返回卡片幂等 ID
|
||||
*/
|
||||
@ -377,15 +796,16 @@ public class DingUtil {
|
||||
|
||||
// 生成唯一 outTrackId
|
||||
String outTrackId = "track-" + System.currentTimeMillis();
|
||||
|
||||
// 调用已写好的 createAndDeliverCard 方法
|
||||
//回调地址key
|
||||
String callbackRoute = "update_route_status";
|
||||
return createAndDeliverCard(
|
||||
accessToken,
|
||||
CARD_TEMPLATE_ID,
|
||||
CUSTOM_ROBOT_TOKEN, // 这里的 robotCode 可能需要根据实际情况调整
|
||||
OPEN_CONVERSATION_ID,
|
||||
outTrackId,
|
||||
cardParamMap
|
||||
cardParamMap,
|
||||
callbackRoute
|
||||
);
|
||||
|
||||
} catch (Exception e) {
|
||||
@ -393,9 +813,125 @@ public class DingUtil {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
// 测试发送
|
||||
sendText("测试消息:刘开~~~,刘开~~~刘开~~~刘开~~~刘开~~~", Arrays.asList(USER_ID), false);
|
||||
sendText("测试消息:刘开~~~,刘开~~~刘开~~~刘开~~~刘开~~~", Arrays.asList("231347190326067997"), false);
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送工作通知消息 (异步)
|
||||
* 对应接口:https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2
|
||||
*
|
||||
* @param accessToken AccessToken
|
||||
* @param agentId 应用AgentID
|
||||
* @param userIdList 接收者的userid列表,最大用户列表长度100
|
||||
* @param deptIdList 接收者的部门id列表,最大列表长度20
|
||||
* @param toAllUser 是否发送给企业全部用户
|
||||
* @param msg 消息内容对象
|
||||
* @return taskId 异步发送任务ID
|
||||
*/
|
||||
public static Long asyncSendCorpMessage(String accessToken, Long agentId, String userIdList, String deptIdList, boolean toAllUser, OapiMessageCorpconversationAsyncsendV2Request.Msg msg) {
|
||||
try {
|
||||
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2");
|
||||
com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request req = new com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request();
|
||||
req.setAgentId(agentId);
|
||||
req.setUseridList(userIdList);
|
||||
req.setDeptIdList(deptIdList);
|
||||
req.setToAllUser(toAllUser);
|
||||
req.setMsg(msg);
|
||||
|
||||
com.dingtalk.api.response.OapiMessageCorpconversationAsyncsendV2Response rsp = client.execute(req, accessToken);
|
||||
|
||||
if (rsp.isSuccess()) {
|
||||
return rsp.getTaskId();
|
||||
} else {
|
||||
throw new RuntimeException("发送工作通知失败: " + rsp.getErrmsg());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new RuntimeException("发送工作通知异常", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送文本工作通知 (简化版)
|
||||
*
|
||||
* @param accessToken AccessToken
|
||||
* @param agentId 应用AgentID
|
||||
* @param userIdList 接收者的userid列表
|
||||
* @param content 文本内容
|
||||
* @return taskId
|
||||
*/
|
||||
public static Long sendCorpText(String accessToken, Long agentId, String userIdList, String content) {
|
||||
com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request.Msg();
|
||||
msg.setMsgtype(MsgType.TEXT);
|
||||
com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request.Text text = new com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request.Text();
|
||||
text.setContent(content);
|
||||
msg.setText(text);
|
||||
return asyncSendCorpMessage(accessToken, agentId, userIdList, null, false, msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* 钉钉工作通知消息类型
|
||||
*/
|
||||
public static class MsgType {
|
||||
public static final String TEXT = "text";
|
||||
public static final String IMAGE = "image";
|
||||
public static final String VOICE = "voice";
|
||||
public static final String FILE = "file";
|
||||
public static final String LINK = "link";
|
||||
public static final String OA = "oa";
|
||||
public static final String MARKDOWN = "markdown";
|
||||
public static final String ACTION_CARD = "action_card";
|
||||
}
|
||||
/**
|
||||
* 发送群聊文本并@指定用户(OpenAPI 企业机器人)
|
||||
*
|
||||
* @param accessToken AccessToken
|
||||
* @param robotCode 机器人Code
|
||||
* @param openConversationId 群ID
|
||||
* @param content 原始文本
|
||||
* @param atUserIds 要@的用户ID列表
|
||||
* @return processQueryKey
|
||||
*/
|
||||
public static String sendOrgGroupTextWithAt(String accessToken,
|
||||
String robotCode,
|
||||
String openConversationId,
|
||||
String content,
|
||||
List<String> atUserIds) {
|
||||
try {
|
||||
Map<String, Object> msgParamMap = new HashMap<>();
|
||||
|
||||
// 拼接@提示文本
|
||||
StringBuilder finalContent = new StringBuilder(content);
|
||||
if (atUserIds != null && !atUserIds.isEmpty()) {
|
||||
finalContent.append("\n");
|
||||
for (String userId : atUserIds) {
|
||||
finalContent.append("@").append(userId).append(" ");
|
||||
}
|
||||
}
|
||||
|
||||
msgParamMap.put("content", finalContent.toString());
|
||||
|
||||
if (atUserIds != null && !atUserIds.isEmpty()) {
|
||||
msgParamMap.put("atUserIds", atUserIds);
|
||||
}
|
||||
|
||||
return robotGroupSend(
|
||||
accessToken,
|
||||
msgParamMap,
|
||||
"sampleText",
|
||||
openConversationId,
|
||||
robotCode,
|
||||
null
|
||||
);
|
||||
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("发送群聊@消息失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -55,4 +55,5 @@ public enum BusinessType {
|
||||
* 清空数据
|
||||
*/
|
||||
CLEAN,
|
||||
uploadDwg
|
||||
}
|
||||
|
||||
@ -84,7 +84,7 @@ public class SmbUtil {
|
||||
}
|
||||
|
||||
// 定位到远程目标子目录
|
||||
SmbFile remoteDir = new SmbFile("smb://192.168.5.18/2025/" + targetFolder + "/", cifs);
|
||||
SmbFile remoteDir = new SmbFile("smb://192.168.5.18/2026/" + targetFolder + "/", cifs);
|
||||
|
||||
if (!remoteDir.exists() || !remoteDir.isDirectory()) {
|
||||
System.err.println("远程目录不存在或不是一个目录: " + remoteDir.getCanonicalPath());
|
||||
|
||||
@ -32,10 +32,12 @@ public class SecurityConfig {
|
||||
|
||||
.and().authorizeRequests()
|
||||
.antMatchers("/system/proPlan/**").anonymous()
|
||||
.antMatchers("/system/proPlan/summary/designer").anonymous()
|
||||
.antMatchers("/system/mrp/**").anonymous()
|
||||
.antMatchers("/system/orderPro/**").anonymous()
|
||||
.antMatchers("/system/cost/**").anonymous()
|
||||
.antMatchers("/dev-api/system/cost/**").anonymous()
|
||||
.antMatchers("/dev-api/ding/callback/**").anonymous()
|
||||
// .antMatchers("/dev-api/system/proPlan/overdue").anonymous()
|
||||
// .antMatchers("/dev-api/system/proPlan/expiryProjects").anonymous()
|
||||
.antMatchers("/dev-api/system/material/list/").anonymous()
|
||||
|
||||
@ -4,6 +4,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.json.JSONArray;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.google.gson.Gson;
|
||||
@ -22,7 +23,10 @@ import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.system.domain.ProcessRoute;
|
||||
import com.ruoyi.system.domain.dto.*;
|
||||
import com.ruoyi.common.config.DingTalkProperties;
|
||||
import com.ruoyi.common.dingding.DingUtil;
|
||||
import com.ruoyi.common.utils.JdUtils;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.system.domain.BomDetails;
|
||||
@ -33,6 +37,7 @@ import com.ruoyi.system.domain.vo.BomDetailsVo;
|
||||
import com.ruoyi.system.domain.vo.ElectricalMaterialBomVO;
|
||||
import com.ruoyi.system.mapper.BomDetailsMapper;
|
||||
import com.ruoyi.system.mapper.ProcessOrderProMapper;
|
||||
import com.ruoyi.system.mapper.ProcessRouteMapper;
|
||||
import com.ruoyi.system.runner.JdUtil;
|
||||
import com.ruoyi.system.service.*;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -83,6 +88,10 @@ public class BomDetailsController extends BaseController {
|
||||
|
||||
private final BomDetailsMapper bomDetailsMapper;
|
||||
|
||||
private final ProcessRouteMapper routeMapper;
|
||||
|
||||
private final DingTalkProperties dingTalkProperties;
|
||||
|
||||
/**
|
||||
* 查询bom明细列表
|
||||
*/
|
||||
@ -462,10 +471,55 @@ public class BomDetailsController extends BaseController {
|
||||
}
|
||||
//更新项目进度
|
||||
ProcessOrderPro processOrderProBo = iProcessOrderProService.selectByProjectNumber(totalWeight);
|
||||
|
||||
processOrderProBo.setDrawingType(JSONUtil.toJsonStr(logDTOS));
|
||||
processOrderProBo.setBomStatus(2L);
|
||||
processOrderProMapper.updateById(processOrderProBo);
|
||||
|
||||
// 更新钉钉卡片数据
|
||||
try {
|
||||
if (StringUtils.isNotEmpty(processOrderProBo.getNotificationCardId())) {
|
||||
log.info("开始更新钉钉卡片,生产令号: {}, 卡片ID: {}", totalWeight, processOrderProBo.getNotificationCardId());
|
||||
Set<String> materialSet = new HashSet<>();
|
||||
int fNumberCount = 0;
|
||||
int partdiagramCodeCount = 0;
|
||||
|
||||
for (BomDetails detail : bomDetailsList) {
|
||||
if (StringUtils.isNotEmpty(detail.getPartdiagramCode())) {
|
||||
materialSet.add(detail.getPartdiagramCode());
|
||||
partdiagramCodeCount++;
|
||||
}
|
||||
if (StringUtils.isNotEmpty(detail.getFNumber())) {
|
||||
materialSet.add(detail.getFNumber());
|
||||
fNumberCount++;
|
||||
}
|
||||
if (StringUtils.isNotEmpty(detail.getPartNumber())) {
|
||||
materialSet.add(detail.getPartNumber());
|
||||
}
|
||||
}
|
||||
//查询工艺路线数量
|
||||
LambdaQueryWrapper<ProcessRoute> wqroute = new LambdaQueryWrapper<>();
|
||||
wqroute.eq(ProcessRoute::getRouteDescription,totalWeight)
|
||||
.eq(ProcessRoute::getProcessNo,"10");
|
||||
Long routeCount = routeMapper.selectCount(wqroute);
|
||||
// 计算统计数据
|
||||
int bomCount = fNumberCount + partdiagramCodeCount;
|
||||
int materialCount = materialSet.size();
|
||||
|
||||
log.info("统计结果 - BOM数: {}, 物料数: {}, 工艺路线数: {}", bomCount, materialCount, routeCount);
|
||||
|
||||
Map<String, String> cardDataMap = new HashMap<>();
|
||||
cardDataMap.put("bom_count", String.valueOf(bomCount));
|
||||
cardDataMap.put("material_count", String.valueOf(materialCount));
|
||||
cardDataMap.put("route_count", String.valueOf(routeCount));
|
||||
|
||||
String accessToken = DingUtil.getAccessToken(dingTalkProperties.getAppKey(), dingTalkProperties.getAppSecret());
|
||||
DingUtil.updateInteractiveCard(accessToken, processOrderProBo.getNotificationCardId(), cardDataMap);
|
||||
log.info("钉钉卡片更新请求已发送");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("更新钉钉卡片失败", e);
|
||||
}
|
||||
|
||||
// 返回处理结果
|
||||
return R.ok("成功", bomDetailsList);
|
||||
|
||||
@ -1467,6 +1521,7 @@ public class BomDetailsController extends BaseController {
|
||||
model.addProperty("FSpecification", bomDetails1.getRemarks());
|
||||
model.addProperty("FNumber", bomDetails1.getPartNumber());
|
||||
model.addProperty("FName", bomDetails1.getName());
|
||||
model.addProperty("F_HBYT_ZYCD", bomDetails1.getStateImportance() != null ? bomDetails1.getStateImportance() : "");
|
||||
MaterialProperties materialProperties = iMaterialPropertiesService.selectByAttribute(bomDetails1.getMaterial());
|
||||
if (materialProperties != null) {
|
||||
JsonObject FSVRIAssistant = new JsonObject();
|
||||
|
||||
@ -21,6 +21,8 @@ import com.google.gson.JsonObject;
|
||||
import com.kingdee.bos.webapi.sdk.K3CloudApi;
|
||||
import com.ruoyi.common.utils.HttpRequestUtil;
|
||||
import com.ruoyi.common.utils.WxRobotUtil;
|
||||
import com.ruoyi.common.dingding.DingUtil;
|
||||
import com.ruoyi.common.config.DingTalkProperties;
|
||||
import com.ruoyi.common.poi.ExcelTemplateProc;
|
||||
import com.ruoyi.common.poi.DynamicDataMapping;
|
||||
import com.ruoyi.system.domain.SafetyStock;
|
||||
@ -75,11 +77,14 @@ import static com.ruoyi.common.constant.Constants.*;
|
||||
public class KingdeeWorkCenterDataController extends BaseController {
|
||||
@Resource
|
||||
private WxRobotUtil wxRobotUtil;
|
||||
@Resource
|
||||
private DingTalkProperties dingTalkProperties;
|
||||
private final IKingdeeWorkCenterDataService iKingdeeWorkCenterDataService;
|
||||
private final HttpRequestUtil httpRequestUtil;
|
||||
private static final Logger log = LoggerFactory.getLogger(KingdeeWorkCenterDataController.class);
|
||||
private final WlStockDataMapper baseMapper;
|
||||
private final ISafetyStockService iSafetyStockService;
|
||||
private final IWlStockDataService iWlStockDataService;
|
||||
private final IWeComService iWeComService;
|
||||
private final MssqlQueryService mssqlQueryService;
|
||||
@Autowired
|
||||
@ -87,6 +92,67 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
private static final String QUALITY_KANBAN_URL = "http://192.168.5.8/K3Cloud/DataBoard/QualityKanBan/index.html#/";
|
||||
|
||||
|
||||
/**
|
||||
* 根据目标机器人获取 AccessToken
|
||||
*/
|
||||
private String getAccessTokenForRobot(String targetRobotCode) {
|
||||
String defaultRobotCode = dingTalkProperties.getRobotCode();
|
||||
String currentAppKey = dingTalkProperties.getAppKey();
|
||||
String currentAppSecret = dingTalkProperties.getAppSecret();
|
||||
|
||||
// 如果使用了安全库存机器人
|
||||
if ("dingwoaeaozawfochwoo".equals(targetRobotCode)) {
|
||||
String safetyAppKey = dingTalkProperties.getSafetyStockAppKey();
|
||||
String safetyAppSecret = dingTalkProperties.getSafetyStockAppSecret();
|
||||
if (safetyAppKey!= null) {
|
||||
currentAppKey = safetyAppKey;
|
||||
currentAppSecret = safetyAppSecret;
|
||||
}
|
||||
}
|
||||
return DingUtil.getAccessToken(currentAppKey, currentAppSecret);
|
||||
}
|
||||
|
||||
/**
|
||||
* 统一发送钉钉消息(支持群发和回调回复)
|
||||
*/
|
||||
private void sendDingTalkMessage(String accessToken, String robotCode, String targetConversationId,
|
||||
String sessionWebhook, String senderId,
|
||||
String title, String markdownText, File file, String fileName) {
|
||||
// 确定最终发送的会话ID
|
||||
String defaultConversationId = dingTalkProperties.getOpenConversationId();
|
||||
String finalConversationId = (targetConversationId != null && !targetConversationId.isEmpty())
|
||||
? targetConversationId : defaultConversationId;
|
||||
|
||||
// 1. 发送文件(如果有)
|
||||
if (file != null && file.exists() && finalConversationId != null && !finalConversationId.isEmpty()) {
|
||||
try {
|
||||
String mediaId = DingUtil.uploadMedia(accessToken, "file", file.getAbsolutePath());
|
||||
DingUtil.sendOrgGroupFile(accessToken, robotCode, finalConversationId, mediaId, fileName, "xlsx");
|
||||
} catch (Exception e) {
|
||||
log.error("发送钉钉文件失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
// 2. 发送 Markdown 消息
|
||||
// 处理 @ 用户 (注:新版机器人群发接口 sampleMarkdown 暂不支持直接 @,若需 @ 可在文本中拼接,此处暂略)
|
||||
/*
|
||||
List<String> atUserIds = new ArrayList<>();
|
||||
if (senderId != null) {
|
||||
atUserIds.add(senderId);
|
||||
}
|
||||
*/
|
||||
|
||||
// 分片发送长消息
|
||||
int maxLength = 1000;
|
||||
for (int i = 0; i < markdownText.length(); i += maxLength) {
|
||||
String part = markdownText.substring(i, Math.min(i + maxLength, markdownText.length()));
|
||||
// 统一使用企业机器人发送群消息 (不再使用 Webhook)
|
||||
if (finalConversationId != null && !finalConversationId.isEmpty()) {
|
||||
DingUtil.sendOrgGroupMarkdown(accessToken, robotCode, finalConversationId, title, part);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取金蝶生产看板数据 (SQL Server直连)
|
||||
*/
|
||||
@ -379,11 +445,22 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
}
|
||||
}
|
||||
|
||||
@Log(title = "预警企业机器人")
|
||||
@Log(title = "预警钉钉机器人")
|
||||
@XxlJob("getMassageForMultipleWorkCenters")
|
||||
public R<Void> getMassageForMultipleWorkCenters() {
|
||||
return sendMassageForMultipleWorkCenters(null, null, null, null);
|
||||
}
|
||||
|
||||
public R<Void> sendMassageForMultipleWorkCenters(String targetConversationId, String sessionWebhook, String senderId, String targetRobotCode) {
|
||||
try {
|
||||
String robotId = "4d2f037d-0cee-493a-a4ff-1758f67b8069";
|
||||
// 使用钉钉配置
|
||||
String accessToken = getAccessTokenForRobot(targetRobotCode);
|
||||
String finalRobotCode = (targetRobotCode != null && !targetRobotCode.isEmpty())
|
||||
? targetRobotCode : dingTalkProperties.getRobotCode();
|
||||
String defaultConversationId = dingTalkProperties.getOpenConversationId();
|
||||
String finalConversationId = (targetConversationId != null && !targetConversationId.isEmpty())
|
||||
? targetConversationId : defaultConversationId;
|
||||
|
||||
List<String> workCenters = Arrays.asList("机一工段", "机二工段", "机三工段", "装一工段", "装二工段", "委外中心", "电钳工段", "铆焊工段");
|
||||
|
||||
String currentTime = DateUtil.format(new Date(), "yyyy年MM月dd日 HH:mm:ss");
|
||||
@ -403,6 +480,12 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
//加入暂停项目的过滤
|
||||
List<KingdeeWorkCenterDataBo> dataList = result.getData().stream().filter(item -> item.getMoOrderNo() != null && !item.getMoOrderNo().contains("暂停"))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if (dataList.isEmpty()) {
|
||||
msg.append("- ").append(workCenter).append(" (无数据)\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
msg.append("- ").append(workCenter).append(" (共").append(dataList.size()).append("条数据)\n");
|
||||
|
||||
// 生成Excel文件
|
||||
@ -423,12 +506,21 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
|
||||
ExcelTemplateProc.doExportExcelByTemplateProc(templatePath, filePath, staticDataMap, dynamicDataMappingList);
|
||||
|
||||
// 发送Excel文件
|
||||
// 上传文件到钉钉并获取mediaId
|
||||
File excelFile = new File(filePath);
|
||||
wxRobotUtil.sendFileToWeChatGroup(excelFile, robotId);
|
||||
|
||||
// 删除临时文件
|
||||
FileUtils.deleteQuietly(excelFile);
|
||||
if (excelFile.exists()) {
|
||||
// 仅当会话ID存在时发送文件
|
||||
if (finalConversationId != null && !finalConversationId.isEmpty()) {
|
||||
try {
|
||||
String mediaId = DingUtil.uploadMedia(accessToken, "file", filePath);
|
||||
DingUtil.sendOrgGroupFile(accessToken, finalRobotCode, finalConversationId, mediaId, fileName, "xlsx");
|
||||
} catch (Exception e) {
|
||||
log.error("发送钉钉文件失败: {}", fileName, e);
|
||||
}
|
||||
}
|
||||
// 删除临时文件
|
||||
FileUtils.deleteQuietly(excelFile);
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("获取工段{}数据失败", workCenter, e);
|
||||
@ -437,7 +529,10 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
}
|
||||
|
||||
msg.append("\n详细数据请查看发送的Excel文件!");
|
||||
wxRobotUtil.sendMsgToWeChatGroup(msg.toString(), robotId, true); // @所有人
|
||||
|
||||
// 使用钉钉发送文本消息 (兼容回调)
|
||||
sendDingTalkMessage(accessToken, finalRobotCode, targetConversationId, sessionWebhook, senderId,
|
||||
"生产预警数据更新提醒", msg.toString(), null, null);
|
||||
|
||||
return R.ok();
|
||||
|
||||
@ -505,6 +600,10 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
@Log(title = "延期警告企业机器人")
|
||||
@XxlJob("getMassageDelayDate")
|
||||
public R<Void> getMassageDelayDate() {
|
||||
return sendMassageDelayDate(null, null, null, null);
|
||||
}
|
||||
|
||||
public R<Void> sendMassageDelayDate(String targetConversationId, String sessionWebhook, String senderId, String targetRobotCode) {
|
||||
try {
|
||||
// String robotId = "4d2f037d-0cee-493a-a4ff-1758f67b8069";
|
||||
String robotId = "483489b2-b219-468c-851f-f56a34a62d91";
|
||||
@ -518,6 +617,14 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
.append("> **统计时间:** <font color=\"info\">").append(currentTime).append("</font>\n\n")
|
||||
.append("## 🔧 工作中心数据统计:\n");
|
||||
|
||||
// 钉钉配置
|
||||
String accessToken = getAccessTokenForRobot(targetRobotCode);
|
||||
String finalRobotCode = (targetRobotCode != null && !targetRobotCode.isEmpty())
|
||||
? targetRobotCode : dingTalkProperties.getRobotCode();
|
||||
String defaultConversationId = dingTalkProperties.getOpenConversationId();
|
||||
String finalConversationId = (targetConversationId != null && !targetConversationId.isEmpty())
|
||||
? targetConversationId : defaultConversationId;
|
||||
|
||||
// 获取并统计每个工段的数据
|
||||
for (String workCenter : workCenters) {
|
||||
try {
|
||||
@ -529,6 +636,12 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
List<KingdeeWorkCenterDataBo> dataList = result.getData().stream().filter(item -> item.getMoOrderNo() != null && !item.getMoOrderNo().contains("暂停"))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 如果过滤后没有数据,直接跳过
|
||||
if (dataList.isEmpty()) {
|
||||
markdownMsg.append("- ").append(workCenter).append(":<font color=\"comment\">无数据</font>\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
markdownMsg.append("- ").append(workCenter).append(":共 <font color=\"warning\">").append(dataList.size()).append("</font> 条\n");
|
||||
|
||||
// 生成Excel文件
|
||||
@ -551,10 +664,20 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
|
||||
// 发送Excel文件
|
||||
File excelFile = new File(filePath);
|
||||
wxRobotUtil.sendFileToWeChatGroup(excelFile, robotId);
|
||||
if (excelFile.exists()) {
|
||||
// 钉钉
|
||||
if (finalConversationId != null && !finalConversationId.isEmpty()) {
|
||||
try {
|
||||
String mediaId = DingUtil.uploadMedia(accessToken, "file", excelFile.getAbsolutePath());
|
||||
DingUtil.sendOrgGroupFile(accessToken, finalRobotCode, finalConversationId, mediaId, fileName, "xlsx");
|
||||
} catch (Exception e) {
|
||||
log.error("发送钉钉文件失败: {}", fileName, e);
|
||||
}
|
||||
}
|
||||
|
||||
// 删除临时文件
|
||||
FileUtils.deleteQuietly(excelFile);
|
||||
// 删除临时文件
|
||||
FileUtils.deleteQuietly(excelFile);
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("获取工段{}数据失败", workCenter, e);
|
||||
@ -565,11 +688,10 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
// 结尾提示与分段发送
|
||||
markdownMsg.append("\n> **📊 详细数据请查看发送的Excel文件!**");
|
||||
String messageContent = markdownMsg.toString();
|
||||
int maxLength = 4096;
|
||||
for (int i = 0; i < messageContent.length(); i += maxLength) {
|
||||
String part = messageContent.substring(i, Math.min(i + maxLength, messageContent.length()));
|
||||
wxRobotUtil.sendMarkdownMsgToWeChatGroup(part, robotId);
|
||||
}
|
||||
|
||||
// 钉钉发送
|
||||
sendDingTalkMessage(accessToken, finalRobotCode, targetConversationId, sessionWebhook, senderId,
|
||||
"金蝶生产延期数据更新提醒", messageContent, null, null);
|
||||
|
||||
return R.ok();
|
||||
|
||||
@ -580,21 +702,56 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Log(title = "金蝶安全库存数据", businessType = BusinessType.OTHER)
|
||||
@XxlJob("getKuCun")
|
||||
public R<Void> getKuCun() {
|
||||
String robotId = "0d2390e0-3e74-49fc-bd02-900b86bf0f55";
|
||||
return sendKuCunData(null, null, null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送安全库存数据
|
||||
* @param targetConversationId 目标会话ID(可选)
|
||||
* @param sessionWebhook 回调Webhook(可选)
|
||||
* @param senderId 发送者ID(可选,用于@)
|
||||
* @param targetRobotCode 目标机器人编码(可选)
|
||||
*/
|
||||
public R<Void> sendKuCunData(String targetConversationId, String sessionWebhook, String senderId, String targetRobotCode) {
|
||||
// 使用钉钉配置
|
||||
String defaultRobotCode = dingTalkProperties.getRobotCode();
|
||||
String defaultConversationId = dingTalkProperties.getOpenConversationId();
|
||||
String appKey = dingTalkProperties.getAppKey();
|
||||
String appSecret = dingTalkProperties.getAppSecret();
|
||||
|
||||
// 确定最终发送的会话ID和RobotCode
|
||||
String finalConversationId = (targetConversationId != null && !targetConversationId.isEmpty())
|
||||
? targetConversationId : defaultConversationId;
|
||||
String finalRobotCode = (targetRobotCode != null && !targetRobotCode.isEmpty())
|
||||
? targetRobotCode : defaultRobotCode;
|
||||
|
||||
// 确定使用的 AppKey 和 AppSecret
|
||||
String currentAppKey = appKey;
|
||||
String currentAppSecret = appSecret;
|
||||
|
||||
if (finalRobotCode.equals("dingwoaeaozawfochwoo")) {
|
||||
String safetyAppKey = dingTalkProperties.getSafetyStockAppKey();
|
||||
String safetyAppSecret = dingTalkProperties.getSafetyStockAppSecret();
|
||||
if (safetyAppKey != null && !safetyAppKey.isEmpty() && safetyAppSecret != null && !safetyAppSecret.isEmpty()) {
|
||||
currentAppKey = safetyAppKey;
|
||||
currentAppSecret = safetyAppSecret;
|
||||
} else {
|
||||
log.warn("检测到使用了新机器人编码 {}, 但未配置 safetyStockAppKey/Secret,尝试使用默认配置", finalRobotCode);
|
||||
}
|
||||
}
|
||||
|
||||
// 获取AccessToken
|
||||
String accessToken = DingUtil.getAccessToken(currentAppKey, currentAppSecret);
|
||||
|
||||
StringBuilder markdownMsg = new StringBuilder();
|
||||
// 获取今天的日期
|
||||
Date today = new Date();
|
||||
Date sixAM = DateUtil.parse(DateUtil.format(today, "yyyy-MM-dd") + " 06:00:00");
|
||||
|
||||
// 创建查询条件
|
||||
LambdaQueryWrapper<WlStockData> safetyStockLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
// 获取时间在今天6点以后的数据
|
||||
safetyStockLambdaQueryWrapper.ge(WlStockData::getCreateTime, sixAM);
|
||||
// 直接生成数据,不再查询数据库
|
||||
List<WlStockData> safetyStocks = iWlStockDataService.generateStockDataOnly();
|
||||
|
||||
List<WlStockData> safetyStocks = baseMapper.selectList(safetyStockLambdaQueryWrapper);
|
||||
log.info("查询安全库存结果===========>:{}", safetyStocks);
|
||||
// 处理物料分组
|
||||
safetyStocks = processMaterialGroups(safetyStocks);
|
||||
@ -604,27 +761,26 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
|
||||
try {
|
||||
if (CollUtil.isEmpty(safetyStocks)) {
|
||||
markdownMsg.append("## 🚀 安全库存提醒\n\n")
|
||||
markdownMsg.append("### 🚀 安全库存提醒\n\n")
|
||||
.append("今日暂无安全库存预警数据。");
|
||||
} else {
|
||||
markdownMsg.append("## 🚀 安全库存提醒\n\n")
|
||||
markdownMsg.append("### 🚀 安全库存提醒\n\n")
|
||||
.append("以下是今日的安全库存预警数据:\n\n");
|
||||
// 只显示前三个安全库存数据
|
||||
int count = Math.min(3, safetyStocks.size());
|
||||
for (int i = 0; i < count; i++) {
|
||||
WlStockData safetyStock = safetyStocks.get(i);
|
||||
markdownMsg.append("### 物料信息\n")
|
||||
.append("#### 物料编号: **").append(safetyStock.getMaterialCode()).append("**\n")
|
||||
.append("> **物料名称:** ").append(safetyStock.getMaterialName()).append("\n")
|
||||
.append("> **预计可用量:** ").append(String.format("%.2f", safetyStock.getCurrentStock())).append("\n")
|
||||
.append("> **即时库存:** ").append(String.format("%.2f", safetyStock.getSecAvbqty())).append("\n")
|
||||
.append("> **最大库存:** ").append(String.format("%.2f", safetyStock.getMaxsafetyStock())).append("\n")
|
||||
.append("> **创建时间:** ").append(DateUtil.formatDateTime(safetyStock.getCreateTime())).append("\n")
|
||||
markdownMsg.append("**物料编号: ").append(safetyStock.getMaterialCode()).append("**\n")
|
||||
.append("- 物料名称: ").append(safetyStock.getMaterialName()).append("\n")
|
||||
.append("- 预计可用量: ").append(String.format("%.2f", safetyStock.getCurrentStock())).append("\n")
|
||||
.append("- 即时库存: ").append(String.format("%.2f", safetyStock.getSecAvbqty())).append("\n")
|
||||
.append("- 最大库存: ").append(String.format("%.2f", safetyStock.getMaxsafetyStock())).append("\n")
|
||||
.append("- 创建时间: ").append(DateUtil.formatDateTime(safetyStock.getCreateTime())).append("\n")
|
||||
.append("---\n"); // 添加分隔线
|
||||
}
|
||||
// 添加总数汇总
|
||||
markdownMsg.append("### 总数汇总\n")
|
||||
.append("> 今日安全库存预警数据总数: **").append(safetyStocks.size()).append("**\n");
|
||||
markdownMsg.append("**总数汇总**\n")
|
||||
.append("- 今日安全库存预警数据总数: **").append(safetyStocks.size()).append("**\n");
|
||||
}
|
||||
|
||||
// 生成Excel文件
|
||||
@ -643,18 +799,37 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
|
||||
ExcelTemplateProc.doExportExcelByTemplateProc(templatePath, filePath, staticDataMap, dynamicDataMappingList);
|
||||
|
||||
// 发送Excel文件
|
||||
// 上传文件到钉钉并获取mediaId
|
||||
File excelFile = new File(filePath);
|
||||
wxRobotUtil.sendFileToWeChatGroup(excelFile, robotId);
|
||||
String mediaId = DingUtil.uploadMedia(accessToken, "file", filePath);
|
||||
|
||||
// 发送文件消息(始终发送到指定会话)
|
||||
if (finalConversationId != null && !finalConversationId.isEmpty()) {
|
||||
DingUtil.sendOrgGroupFile(accessToken, finalRobotCode, finalConversationId,
|
||||
mediaId, fileName, "xlsx");
|
||||
}
|
||||
|
||||
// 删除临时文件
|
||||
FileUtils.deleteQuietly(excelFile);
|
||||
markdownMsg.append("\n详细数据请查看发送的Excel文件!");
|
||||
|
||||
String messageContent = markdownMsg.toString();
|
||||
int maxLength = 1000;
|
||||
|
||||
// 准备发送消息 (注:新版机器人群发接口 sampleMarkdown 暂不支持直接 @,若需 @ 可在文本中拼接,此处暂略)
|
||||
/*
|
||||
List<String> atUserIds = new ArrayList<>();
|
||||
if (senderId != null) {
|
||||
atUserIds.add(senderId);
|
||||
}
|
||||
*/
|
||||
|
||||
for (int i = 0; i < messageContent.length(); i += maxLength) {
|
||||
String part = messageContent.substring(i, Math.min(i + maxLength, messageContent.length()));
|
||||
wxRobotUtil.sendMarkdownMsgToWeChatGroup(part, robotId);
|
||||
|
||||
if (finalConversationId != null && !finalConversationId.isEmpty()) {
|
||||
DingUtil.sendOrgGroupMarkdown(accessToken, finalRobotCode, finalConversationId, "物料安全库存提醒", part);
|
||||
}
|
||||
}
|
||||
return R.ok();
|
||||
} catch (Exception e) {
|
||||
@ -1169,6 +1344,10 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
@XxlJob("getPurchaseOrder2")
|
||||
@PostMapping("/getPurchaseOrder2")
|
||||
public R<Void> getPurchaseOrder2() {
|
||||
return sendPurchaseOrder2(null, null, null, null);
|
||||
}
|
||||
|
||||
public R<Void> sendPurchaseOrder2(String targetConversationId, String sessionWebhook, String senderId, String targetRobotCode) {
|
||||
try {
|
||||
// String robotId = "4d2f037d-0cee-493a-a4ff-1758f67b8069";
|
||||
String robotId = "d5a51230-e0de-4c26-b088-07d6e89e6e07";
|
||||
@ -1179,6 +1358,11 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
.append("更新时间:").append(currentTime).append("\n\n")
|
||||
.append("🔧 订单数据统计:\n");
|
||||
|
||||
// 钉钉配置
|
||||
String accessToken = getAccessTokenForRobot(targetRobotCode);
|
||||
String finalRobotCode = (targetRobotCode != null && !targetRobotCode.isEmpty())
|
||||
? targetRobotCode : dingTalkProperties.getRobotCode();
|
||||
|
||||
// 获取采购订单和采购申请数据
|
||||
List<PurchaseOrderExcelDTO> allPurchaseOrderList = JdUtil.getPurchaseOrder();
|
||||
List<PurchaseRequestExcelDTO> allpurchaseRequestList = JdUtil.getPurchaseRequestOrder();
|
||||
@ -1222,14 +1406,17 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
|
||||
// 发送Excel文件
|
||||
File excelFile = new File(filePath);
|
||||
if (excelFile.exists()) {
|
||||
wxRobotUtil.sendFileToWeChatGroup(excelFile, robotId);
|
||||
FileUtils.deleteQuietly(excelFile);
|
||||
}
|
||||
|
||||
|
||||
msg.append("\n详细数据请查看发送的Excel文件!");
|
||||
wxRobotUtil.sendMsgToWeChatGroup(msg.toString(), robotId, true); // @所有人
|
||||
|
||||
// 钉钉发送 (包含文件)
|
||||
sendDingTalkMessage(accessToken, finalRobotCode, targetConversationId, sessionWebhook, senderId,
|
||||
"采购订单提醒", msg.toString(), excelFile, fileName);
|
||||
|
||||
// 删除临时文件 (在发送完之后删除)
|
||||
if (excelFile.exists()) {
|
||||
FileUtils.deleteQuietly(excelFile);
|
||||
}
|
||||
|
||||
return R.ok();
|
||||
|
||||
@ -1398,6 +1585,10 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
@XxlJob("getProductionOrder")
|
||||
@PostMapping("/getProductionOrder")
|
||||
public R<Void> getProductionOrder() {
|
||||
return sendProductionOrder(null, null, null, null);
|
||||
}
|
||||
|
||||
public R<Void> sendProductionOrder(String targetConversationId, String sessionWebhook, String senderId, String targetRobotCode) {
|
||||
//TO DO:
|
||||
|
||||
try {
|
||||
@ -1406,6 +1597,11 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
StringBuilder msg = new StringBuilder();
|
||||
msg.append("🏭 工序汇报未入库\n\n").append("更新时间:").append(currentTime).append("\n\n").append("🔧 订单数据统计:\n");
|
||||
|
||||
// 钉钉配置
|
||||
String accessToken = getAccessTokenForRobot(targetRobotCode);
|
||||
String finalRobotCode = (targetRobotCode != null && !targetRobotCode.isEmpty())
|
||||
? targetRobotCode : dingTalkProperties.getRobotCode();
|
||||
|
||||
//工序汇报单,未入库列表
|
||||
List<ProcessReportDTO> processReportDTOList = JdUtil.getProcessReport();
|
||||
msg.append("- 到期未开工:").append(processReportDTOList.size()).append("条\n");
|
||||
@ -1446,12 +1642,17 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
ExcelTemplateProc.doExportExcelByTemplateProc(templatePath, filePath, staticDataMap, dynamicDataMappingList);
|
||||
// 发送Excel文件
|
||||
File excelFile = new File(filePath);
|
||||
|
||||
msg.append("\n详细数据请查看发送的Excel文件!");
|
||||
|
||||
// 钉钉发送
|
||||
sendDingTalkMessage(accessToken, finalRobotCode, targetConversationId, sessionWebhook, senderId,
|
||||
"工序汇报未入库", msg.toString(), excelFile, fileName);
|
||||
|
||||
// 删除临时文件
|
||||
if (excelFile.exists()) {
|
||||
wxRobotUtil.sendFileToWeChatGroup(excelFile, robotId);
|
||||
FileUtils.deleteQuietly(excelFile);
|
||||
}
|
||||
msg.append("\n详细数据请查看发送的Excel文件!");
|
||||
wxRobotUtil.sendMsgToWeChatGroup(msg.toString(), robotId, true); // @所有人
|
||||
|
||||
return R.ok();
|
||||
|
||||
@ -1466,6 +1667,10 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
@XxlJob("getProcessTransferForm")
|
||||
@PostMapping("/getProcessTransferForm")
|
||||
public R<Void> getProcessTransferForm() {
|
||||
return sendProcessTransferForm(null, null, null, null);
|
||||
}
|
||||
|
||||
public R<Void> sendProcessTransferForm(String targetConversationId, String sessionWebhook, String senderId, String targetRobotCode) {
|
||||
//TO D0:需要查询工序计划的时间是否在今日
|
||||
try {
|
||||
String robotId = "8af8abea-3f21-4ca7-ad0a-5b7a2cf4d78e";
|
||||
@ -1475,11 +1680,17 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
markdownMsg.append("🏭 **工序转移**\n\n");
|
||||
markdownMsg.append("- 📊 统计时间:").append(currentTime).append("\n");
|
||||
markdownMsg.append("- 📋 订单数据统计:\n");
|
||||
|
||||
// 钉钉配置
|
||||
String accessToken = getAccessTokenForRobot(targetRobotCode);
|
||||
String finalRobotCode = (targetRobotCode != null && !targetRobotCode.isEmpty())
|
||||
? targetRobotCode : dingTalkProperties.getRobotCode();
|
||||
|
||||
//工序汇报单,未入库列表
|
||||
List<ProcessTransferFormDTO> processReportDTOList = JdUtil.getProcessTransferForm();
|
||||
markdownMsg.append(" - 工序转移数据:").append(processReportDTOList.size()).append("条\n");
|
||||
// 追加Excel文件提示
|
||||
if (processReportDTOList.size() > 0) {
|
||||
if (!processReportDTOList.isEmpty()) {
|
||||
markdownMsg.append("\n📄 详细数据请查看发送的 Excel 文件\n");
|
||||
}
|
||||
// 生成Excel文件使用采购模板
|
||||
@ -1535,13 +1746,16 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
// 使用采购模板生成Excel
|
||||
String templatePath = "EXCEL模板/工序转移数据.xlsx";
|
||||
ExcelTemplateProc.doExportExcelByTemplateProc(templatePath, filePath, staticDataMap, dynamicDataMappingList);
|
||||
// 发送消息
|
||||
wxRobotUtil.sendMarkdownMsgToWeChatGroup(markdownMsg.toString(), robotId);
|
||||
|
||||
// 发送Excel文件
|
||||
File excelFile = new File(filePath);
|
||||
|
||||
// 钉钉发送 (文件 + 消息)
|
||||
sendDingTalkMessage(accessToken, finalRobotCode, targetConversationId, sessionWebhook, senderId,
|
||||
"工序转移", markdownMsg.toString(), excelFile, fileName);
|
||||
|
||||
// 删除临时文件
|
||||
if (excelFile.exists()) {
|
||||
wxRobotUtil.sendFileToWeChatGroup(excelFile, robotId);
|
||||
FileUtils.deleteQuietly(excelFile);
|
||||
}
|
||||
|
||||
|
||||
@ -6,11 +6,8 @@ import java.net.URLEncoder;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
@ -79,6 +76,7 @@ public class ProcessOrderProController extends BaseController {
|
||||
private final ISafetyStockService safetyStockService;
|
||||
private final IProcessRouteService processRouteService;
|
||||
private final SafetyStockMapper stockMapper;
|
||||
|
||||
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy年MM月dd日");
|
||||
|
||||
/**
|
||||
@ -120,10 +118,6 @@ public class ProcessOrderProController extends BaseController {
|
||||
return R.ok(iProcessOrderProService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 钉钉数据同步 Webhook 地址
|
||||
*/
|
||||
private static final String DINGTALK_WEBHOOK_URL = "https://connector.dingtalk.com/webhook/flow/103694935fdc210503b10006";
|
||||
|
||||
/**
|
||||
* 新增项目令号
|
||||
@ -134,22 +128,7 @@ public class ProcessOrderProController extends BaseController {
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody ProcessOrderProBo bo) {
|
||||
boolean result = iProcessOrderProService.insertByBo(bo);
|
||||
if (result) {
|
||||
// 异步同步数据到钉钉 Webhook
|
||||
CompletableFuture.runAsync(() -> {
|
||||
try {
|
||||
// 将业务对象转换为 JSON 字符串
|
||||
String jsonBody = JSONUtil.toJsonStr(bo);
|
||||
System.out.println(jsonBody);
|
||||
// 发送 POST 请求
|
||||
String response = HttpUtil.post(DINGTALK_WEBHOOK_URL, jsonBody);
|
||||
System.out.println("钉钉Webhook响应: " + response);
|
||||
} catch (Exception e) {
|
||||
// 仅记录日志,不影响主流程
|
||||
e.printStackTrace();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return toAjax(result);
|
||||
}
|
||||
|
||||
@ -172,8 +151,7 @@ public class ProcessOrderProController extends BaseController {
|
||||
@SaCheckPermission("system:orderPro:remove")
|
||||
@Log(title = "项目令号", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
|
||||
|
||||
return iProcessOrderProService.deleteWithValidByIds(Arrays.asList(ids), true);
|
||||
}
|
||||
@ -252,7 +230,7 @@ public class ProcessOrderProController extends BaseController {
|
||||
* @return
|
||||
*/
|
||||
@SaCheckPermission("system:orderPro:uploadDwg")
|
||||
@Log(title = "上传dwg图纸", businessType = BusinessType.INSERT)
|
||||
@Log(title = "上传dwg图纸", businessType = BusinessType.uploadDwg)
|
||||
@PostMapping("/uploadDwg")
|
||||
@ResponseBody
|
||||
public R<Void> uploadContractPDF(@RequestParam("ids") List<Long> ids, @RequestParam("file") MultipartFile filePath) {
|
||||
@ -1307,9 +1285,6 @@ public class ProcessOrderProController extends BaseController {
|
||||
routes.add(item);
|
||||
}
|
||||
if (bomItems != null && !bomItems.isEmpty()) {
|
||||
if ("总装部件".equals(Objects.toString(base.getMaterial(), "").trim())) {
|
||||
|
||||
} else {
|
||||
for (MaterialUseDTO b : bomItems) {
|
||||
Map<String, Object> bomMap = new HashMap<>();
|
||||
bomMap.put("routeDescription", base.getRouteDescription());
|
||||
@ -1330,7 +1305,6 @@ public class ProcessOrderProController extends BaseController {
|
||||
bomMap.put("bomUnit", b.getChildUnit());
|
||||
kingdeeBomRows.add(bomMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// 用生成的 routes 替换原始 routeList,保持原序展开后的结构用于后续导出
|
||||
@ -1598,9 +1572,9 @@ public class ProcessOrderProController extends BaseController {
|
||||
if (mcode.isEmpty() || childCode.isEmpty()) {
|
||||
continue;
|
||||
}
|
||||
if ("总装部件".equals(parentMaterial)) {
|
||||
/* if ("总装部件".equals(parentMaterial)) {
|
||||
continue;
|
||||
}
|
||||
}*/
|
||||
grouped.computeIfAbsent(mcode, k -> new ArrayList<>());
|
||||
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
@ -1763,7 +1737,6 @@ public class ProcessOrderProController extends BaseController {
|
||||
}
|
||||
|
||||
// 2. 构建FTP路径和本地路径
|
||||
// 假设Excel文件在 /2026/SH-26-001-LT/ 目录下
|
||||
String ftpPath = "/" + year + "/" + productionCode;
|
||||
String localPath = "D:\\file\\";
|
||||
|
||||
@ -1847,7 +1820,7 @@ public class ProcessOrderProController extends BaseController {
|
||||
List<MaterialBom> bomItems = processRouteService.getProcessMaterialList(materialCode, materialName, processDescription);
|
||||
List<ProcessRoute> routeGuDing = processRouteService.getProcessRoutesByOrder(processDescription, materialCode);
|
||||
if (routeGuDing != null && !routeGuDing.isEmpty()) {
|
||||
routeGuDing.stream().forEach(r -> {
|
||||
routeGuDing.forEach(r -> {
|
||||
ProcessRoute item = new ProcessRoute();
|
||||
item.setRouteDescription(base.getRouteDescription());
|
||||
item.setMaterialCode(base.getMaterialCode());
|
||||
@ -1883,41 +1856,35 @@ public class ProcessOrderProController extends BaseController {
|
||||
routes.add(item);
|
||||
}
|
||||
if (bomItems != null && !bomItems.isEmpty()) {
|
||||
if ("总装部件".equals(Objects.toString(base.getMaterial(), "").trim())) {
|
||||
|
||||
} else {
|
||||
for (MaterialBom b : bomItems) {
|
||||
Map<String, Object> bomMap = new HashMap<>();
|
||||
bomMap.put("routeDescription", base.getRouteDescription());
|
||||
bomMap.put("materialCode", base.getMaterialCode());
|
||||
bomMap.put("materialName", base.getMaterialName());
|
||||
bomMap.put("material", base.getMaterial());
|
||||
bomMap.put("discWeight", base.getDiscWeight());
|
||||
bomMap.put("rawMaterialCode", b.getMaterialCode());
|
||||
bomMap.put("rawMaterialName", b.getMaterialName());
|
||||
bomMap.put("bomMaterial", b.getMaterialType());
|
||||
bomMap.put("bomDanZhong", null);
|
||||
if ("根".equals(b.getUnit())) {
|
||||
if (b.getQuantity() != null && b.getQuantity().contains("/")) {
|
||||
String[] arr = b.getQuantity().split("/");
|
||||
bomMap.put("discUsage", Double.parseDouble(arr[0]) / Double.parseDouble(arr[1]));
|
||||
} else {
|
||||
bomMap.put("discUsage", null);
|
||||
}
|
||||
} else if ("mm".equals(b.getUnit())) {
|
||||
b.setUnit("m");
|
||||
bomMap.put("discUsage", b.getQuantity());
|
||||
for (MaterialBom b : bomItems) {
|
||||
Map<String, Object> bomMap = new HashMap<>();
|
||||
bomMap.put("routeDescription", base.getRouteDescription());
|
||||
bomMap.put("materialCode", base.getMaterialCode());
|
||||
bomMap.put("materialName", base.getMaterialName());
|
||||
bomMap.put("material", base.getMaterial());
|
||||
bomMap.put("discWeight", base.getDiscWeight());
|
||||
bomMap.put("rawMaterialCode", b.getMaterialCode());
|
||||
bomMap.put("rawMaterialName", b.getMaterialName());
|
||||
bomMap.put("bomMaterial", b.getMaterialType());
|
||||
bomMap.put("bomDanZhong", null);
|
||||
if ("根".equals(b.getUnit())) {
|
||||
if (b.getQuantity() != null && b.getQuantity().contains("/")) {
|
||||
String[] arr = b.getQuantity().split("/");
|
||||
bomMap.put("discUsage", Double.parseDouble(arr[0]) / Double.parseDouble(arr[1]));
|
||||
} else {
|
||||
bomMap.put("discUsage", b.getQuantity());
|
||||
bomMap.put("discUsage", null);
|
||||
}
|
||||
|
||||
|
||||
bomMap.put("bomUnit", b.getUnit());
|
||||
kingdeeBomRows.add(bomMap);
|
||||
} else if ("mm".equals(b.getUnit())) {
|
||||
b.setUnit("m");
|
||||
bomMap.put("discUsage", b.getQuantity());
|
||||
} else {
|
||||
bomMap.put("discUsage", b.getQuantity());
|
||||
}
|
||||
bomMap.put("bomUnit", b.getUnit());
|
||||
kingdeeBomRows.add(bomMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// 用生成的 routes 替换原始 routeList,保持原序展开后的结构用于后续导出
|
||||
routeList = routes;
|
||||
// 2. 读取原始表数据
|
||||
|
||||
@ -9,6 +9,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
@ -20,6 +21,7 @@ import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.system.domain.vo.DesignerProjectSummaryVo;
|
||||
import com.ruoyi.system.domain.vo.ProcessPlanVo;
|
||||
import com.ruoyi.system.domain.bo.ProcessPlanBo;
|
||||
import com.ruoyi.system.service.IProcessPlanService;
|
||||
@ -66,6 +68,16 @@ public class ProcessPlanController extends BaseController {
|
||||
ExcelUtil.exportExcel(list, "方案管理", ProcessPlanVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取设计人项目汇总(每周、每月、每年)
|
||||
*/
|
||||
@SaIgnore
|
||||
@GetMapping("/summary/designer")
|
||||
public R<List<DesignerProjectSummaryVo>> getDesignerProjectSummary() {
|
||||
return R.ok(iProcessPlanService.getDesignerProjectSummary());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取方案管理详细信息
|
||||
*
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
package com.ruoyi.system.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.excel.ExcelWriter;
|
||||
@ -9,30 +8,38 @@ import com.alibaba.excel.support.ExcelTypeEnum;
|
||||
import com.alibaba.excel.write.metadata.WriteSheet;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
import com.ruoyi.common.config.DingTalkProperties;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.dingding.DingUtil;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.excel.DefaultExcelListener;
|
||||
import com.ruoyi.common.excel.ExcelResult;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.helper.LoginHelper;
|
||||
import com.ruoyi.common.utils.FtpUtil;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.utils.file.SmbUtil;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.system.domain.*;
|
||||
import com.ruoyi.system.domain.bo.ProcessRouteBo;
|
||||
import com.ruoyi.system.domain.dto.*;
|
||||
import com.ruoyi.system.domain.vo.*;
|
||||
import com.ruoyi.system.domain.vo.PcRigidChainVo;
|
||||
import com.ruoyi.system.domain.vo.PlannedProcessVo;
|
||||
import com.ruoyi.system.domain.vo.ProcessRouteVo;
|
||||
import com.ruoyi.system.domain.vo.ProductionOrderVo;
|
||||
import com.ruoyi.system.jdmain.rouplan.Model;
|
||||
import com.ruoyi.system.mapper.BomDetailsMapper;
|
||||
import com.ruoyi.system.mapper.MaterialBomMapper;
|
||||
import com.ruoyi.system.mapper.ProcessOrderProMapper;
|
||||
import com.ruoyi.system.mapper.ProcessRouteMapper;
|
||||
import com.ruoyi.system.runner.JdUtil;
|
||||
import com.ruoyi.system.service.IBomDetailsService;
|
||||
import com.ruoyi.system.service.IProcessRouteService;
|
||||
import com.ruoyi.system.service.*;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -51,7 +58,9 @@ import java.io.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.net.URLEncoder;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@ -66,13 +75,22 @@ import java.util.stream.Collectors;
|
||||
@Slf4j
|
||||
public class ProcessRouteController extends BaseController {
|
||||
private final ProcessRouteMapper baseMapper;
|
||||
@Autowired
|
||||
BomDetailsMapper bomDetailsMapper;
|
||||
private final IProcessRouteService iProcessRouteService;
|
||||
@Autowired
|
||||
MaterialBomMapper materialBomMapper;
|
||||
private final IBomDetailsService iBomDetailsService;
|
||||
private final ProcessOrderProMapper proMapper;
|
||||
private final IImMaterialService materialService;
|
||||
@Autowired
|
||||
BomDetailsMapper bomDetailsMapper;
|
||||
@Autowired
|
||||
MaterialBomMapper materialBomMapper;
|
||||
@Autowired
|
||||
private DingTalkProperties dingTalkProperties;
|
||||
@Autowired
|
||||
private ISysOssService iSysOssService;
|
||||
@Autowired
|
||||
private IProcessOrderProService processOrderProService;
|
||||
@Autowired
|
||||
private ISysUserService userService;
|
||||
|
||||
private Long generateUniqueParentId(Long originalId) {
|
||||
return originalId + 1000;
|
||||
@ -157,8 +175,7 @@ public class ProcessRouteController extends BaseController {
|
||||
// 遍历所有工艺路线记录
|
||||
for (ProcessRouteVo processRouteVo : rows) {
|
||||
// 组合父级键值,物料编码 + 物料名称
|
||||
String parentCodeAndName = String.format("%s_%s", processRouteVo.getMaterialCode(),
|
||||
processRouteVo.getMaterialName());
|
||||
String parentCodeAndName = String.format("%s_%s", processRouteVo.getMaterialCode(), processRouteVo.getMaterialName());
|
||||
// 查找是否已存在父节点
|
||||
ProcessRouteVo parent = routeMap.get(parentCodeAndName);
|
||||
if (parent == null) {
|
||||
@ -182,8 +199,7 @@ public class ProcessRouteController extends BaseController {
|
||||
topLevelList.add(parent);
|
||||
}
|
||||
// 创建子节点,并将其添加到父节点的子集
|
||||
ProcessRouteVo child = createChildVo(processRouteVo, parent.getId(), parent.getMaterialCode(),
|
||||
parent.getMaterialName());
|
||||
ProcessRouteVo child = createChildVo(processRouteVo, parent.getId(), parent.getMaterialCode(), parent.getMaterialName());
|
||||
parent.getChildren().add(child);
|
||||
}
|
||||
|
||||
@ -234,9 +250,7 @@ public class ProcessRouteController extends BaseController {
|
||||
List<ProcessRoute> list = iProcessRouteService.queryList(bo);
|
||||
List<MaterialUsageDTO2> bomlist = JdUtil.getPRD_PPBOM(bo.getRouteDescription());
|
||||
//过滤bomlist 只要009开头的标准件
|
||||
bomlist = bomlist.stream()
|
||||
.filter(bom -> bom.getMaterialCode().startsWith("009"))
|
||||
.collect(Collectors.toList());
|
||||
bomlist = bomlist.stream().filter(bom -> bom.getMaterialCode().startsWith("009")).collect(Collectors.toList());
|
||||
if (list.isEmpty() && bomlist.isEmpty()) {
|
||||
throw new ServiceException("没有数据");
|
||||
}
|
||||
@ -249,22 +263,17 @@ public class ProcessRouteController extends BaseController {
|
||||
ServletOutputStream os = response.getOutputStream();
|
||||
|
||||
// 创建ExcelWriter
|
||||
try (com.alibaba.excel.ExcelWriter excelWriter = EasyExcel.write(os)
|
||||
.autoCloseStream(false) // 防止自动关闭流
|
||||
try (com.alibaba.excel.ExcelWriter excelWriter = EasyExcel.write(os).autoCloseStream(false) // 防止自动关闭流
|
||||
.build()) {
|
||||
// 写入工艺路线sheet
|
||||
if (!list.isEmpty()) {
|
||||
WriteSheet writeSheet1 = EasyExcel.writerSheet(0, "工艺路线")
|
||||
.head(ProcessRoute.class)
|
||||
.build();
|
||||
WriteSheet writeSheet1 = EasyExcel.writerSheet(0, "工艺路线").head(ProcessRoute.class).build();
|
||||
excelWriter.write(list, writeSheet1);
|
||||
}
|
||||
|
||||
// 写入标准件清单sheet
|
||||
if (!bomlist.isEmpty()) {
|
||||
WriteSheet writeSheet2 = EasyExcel.writerSheet(1, "标准件清单")
|
||||
.head(MaterialUsageDTO2.class)
|
||||
.build();
|
||||
WriteSheet writeSheet2 = EasyExcel.writerSheet(1, "标准件清单").head(MaterialUsageDTO2.class).build();
|
||||
excelWriter.write(bomlist, writeSheet2);
|
||||
}
|
||||
}
|
||||
@ -292,10 +301,7 @@ public class ProcessRouteController extends BaseController {
|
||||
if (file.exists()) {
|
||||
// 读取Excel的sheet6 从第三行开始 读取到第4列 无数据的跳过
|
||||
DefaultExcelListener<ProcessRoute> listener = new DefaultExcelListener<>(true);
|
||||
EasyExcel.read(ExcelName, ProcessRoute.class, listener)
|
||||
.sheet(6)
|
||||
.headRowNumber(3)
|
||||
.doRead();
|
||||
EasyExcel.read(ExcelName, ProcessRoute.class, listener).sheet(6).headRowNumber(3).doRead();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
@ -313,16 +319,11 @@ public class ProcessRouteController extends BaseController {
|
||||
ServletOutputStream os = response.getOutputStream();
|
||||
|
||||
// 使用 EasyExcel 写入已有Excel的第七个sheet(index=6)
|
||||
try (ExcelWriter excelWriter = EasyExcel.write(os)
|
||||
.withTemplate(file) // 指定模板文件
|
||||
.autoCloseStream(true)
|
||||
.build()) {
|
||||
try (ExcelWriter excelWriter = EasyExcel.write(os).withTemplate(file) // 指定模板文件
|
||||
.autoCloseStream(true).build()) {
|
||||
|
||||
// 写入到第七个 sheet(index=6),并命名为“工艺路线”
|
||||
WriteSheet writeSheet = EasyExcel.writerSheet("已有工艺路线")
|
||||
.head(ProcessRoute.class)
|
||||
.needHead(true)
|
||||
.build();
|
||||
WriteSheet writeSheet = EasyExcel.writerSheet("已有工艺路线").head(ProcessRoute.class).needHead(true).build();
|
||||
excelWriter.write(list, writeSheet);
|
||||
}
|
||||
|
||||
@ -406,6 +407,53 @@ public class ProcessRouteController extends BaseController {
|
||||
return R.fail("项目 " + productionOrderNo + "已导入过工艺 ,请先清空再上传");
|
||||
}
|
||||
if (iProcessRouteService.saveData(list1, list)) {
|
||||
// 获取当前登录用户昵称(需要在异步线程前获取)
|
||||
String currentUserNickName = "未知用户";
|
||||
try {
|
||||
Long userId = LoginHelper.getUserId();
|
||||
if (userId != null) {
|
||||
SysUser user = userService.selectUserById(userId);
|
||||
if (user != null && StringUtils.isNotEmpty(user.getNickName())) {
|
||||
currentUserNickName = user.getNickName();
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.warn("获取当前登录用户昵称失败", e);
|
||||
}
|
||||
|
||||
// 异步发送钉钉卡片
|
||||
String finalNickName = currentUserNickName;
|
||||
CompletableFuture.runAsync(() -> {
|
||||
try {
|
||||
ProcessOrderPro order = processOrderProService.selectByProjectNumber(productionOrderNo);
|
||||
if (order != null) {
|
||||
// 获取 AccessToken
|
||||
String accessToken = DingUtil.getAccessToken(dingTalkProperties.getAppKey(), dingTalkProperties.getAppSecret());
|
||||
// 构造卡片数据
|
||||
Map<String, String> cardDataMap = new HashMap<>();
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
||||
cardDataMap.put("pro_number", StringUtils.defaultIfEmpty(order.getProductionOrderNo(), ""));
|
||||
cardDataMap.put("createTime", order.getRouteUptime() != null ? sdf.format(new Date()) : "");
|
||||
cardDataMap.put("title", finalNickName + "提交工艺审核");
|
||||
cardDataMap.put("lastMessage", "请尽快处理");
|
||||
cardDataMap.put("status", StringUtils.defaultIfEmpty("待审批", "待审批"));
|
||||
|
||||
String outTrackId = "audit-card-" + System.currentTimeMillis();
|
||||
String outTrackId1 = DingUtil.createAndDeliverCard(accessToken, dingTalkProperties.getRouteCardTemplateId(), dingTalkProperties.getRobotCode(), dingTalkProperties.getOpenConversationId(), outTrackId, cardDataMap, dingTalkProperties.getCallbackRouteKey());
|
||||
// 更新数据库中的AuditCardId
|
||||
ProcessOrderPro update = new ProcessOrderPro();
|
||||
update.setId(order.getId());
|
||||
update.setUpdateBy("Dingding");
|
||||
update.setAuditCardId(outTrackId1);
|
||||
update.setBomStatus(2L);
|
||||
// 更新审核状态为1(已审核/提交审核)
|
||||
update.setRouteStatus(0L);
|
||||
proMapper.updateById(update);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("发送钉钉卡片异常", e);
|
||||
}
|
||||
});
|
||||
return R.ok("上传物料成功");
|
||||
} else {
|
||||
return R.fail("导入失败");
|
||||
@ -548,19 +596,14 @@ public class ProcessRouteController extends BaseController {
|
||||
@Log(title = "获取材料bom列表")
|
||||
@SaCheckPermission("system:route:getBomInfo")
|
||||
@PostMapping("/getBomInfo")
|
||||
public ResponseEntity<List<MaterialBom>> getProcessMaterialList( @RequestParam(value = "materialCode") String materialCode,
|
||||
@RequestParam(value = "materialName") String materialName,
|
||||
@RequestParam(value = "productionOrderNo") String productionOrderNo) {
|
||||
|
||||
return ResponseEntity
|
||||
.ok(iProcessRouteService.getProcessMaterialList(materialCode, materialName, productionOrderNo));
|
||||
public ResponseEntity<List<MaterialBom>> getProcessMaterialList(@RequestParam(value = "materialCode") String materialCode, @RequestParam(value = "materialName") String materialName, @RequestParam(value = "productionOrderNo") String productionOrderNo) {
|
||||
return ResponseEntity.ok(iProcessRouteService.getProcessMaterialList(materialCode, materialName, productionOrderNo));
|
||||
}
|
||||
|
||||
@Log(title = "获取金蝶列表")
|
||||
@SaCheckPermission("system:route:getProcessRouteList")
|
||||
@GetMapping("/getProcessRouteList")
|
||||
public ResponseEntity<List<ProcessRouteJdDTO>> getProcessRouteList(@RequestParam(value = "materialCode") String materialCode, @RequestParam(value = "materialName") String materialName, @RequestParam(value = "productionOrderNo") String productionOrderNo) {
|
||||
|
||||
return ResponseEntity.ok(iProcessRouteService.getProcessRouteList(materialCode, materialName, productionOrderNo));
|
||||
}
|
||||
|
||||
@ -570,8 +613,7 @@ public class ProcessRouteController extends BaseController {
|
||||
public R<Void> importDataTime(@RequestParam("file") MultipartFile file) throws Exception {
|
||||
String originalFilename = file.getOriginalFilename();
|
||||
log.info("读取文件名: " + originalFilename);
|
||||
ExcelResult<ProcessRouteVo> result = ExcelUtil.importExcelSheet6(file.getInputStream(), ProcessRouteVo.class,
|
||||
true);
|
||||
ExcelResult<ProcessRouteVo> result = ExcelUtil.importExcelSheet6(file.getInputStream(), ProcessRouteVo.class, true);
|
||||
List<ProcessRouteVo> list = result.getList();
|
||||
List<ProcessRoute> list1 = iProcessRouteService.importDataTime(list);
|
||||
return R.ok("更新成功");
|
||||
@ -582,15 +624,12 @@ public class ProcessRouteController extends BaseController {
|
||||
@SaCheckPermission("system:route:importDataTime123")
|
||||
@PostMapping(value = "/importDataTime123", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||
public R<Void> importDataTime123(@RequestParam("file") MultipartFile file) throws Exception {
|
||||
|
||||
DefaultExcelListener<PcRigidChainVo> listener = new DefaultExcelListener<>(true);
|
||||
EasyExcel.read(file.getInputStream(), PcRigidChainVo.class, listener).excelType(ExcelTypeEnum.XLS).sheet(1).headRowNumber(4).doRead();
|
||||
|
||||
List<PcRigidChainVo> list1 = listener.getExcelResult().getList();
|
||||
for (PcRigidChainVo pcRigidChainVO : list1) {
|
||||
log.info("数据 ===============>: " + JSONUtil.toJsonStr(pcRigidChainVO));
|
||||
}
|
||||
|
||||
return R.ok("更新成功");
|
||||
}
|
||||
|
||||
@ -651,7 +690,6 @@ public class ProcessRouteController extends BaseController {
|
||||
materialBom.setMaterialType(materialUsageDTO.getCaizhi());
|
||||
//保留四位小数
|
||||
materialBom.setQuantity(String.valueOf(BigDecimal.valueOf(materialUsageDTO.getFenzi()).divide(new BigDecimal(materialUsageDTO.getFenmu()), 4, RoundingMode.HALF_UP)));
|
||||
|
||||
return materialBom;
|
||||
}
|
||||
|
||||
@ -678,42 +716,77 @@ public class ProcessRouteController extends BaseController {
|
||||
// 设置路线描述为生产订单号
|
||||
processRoute.setRouteDescription(productionOrderNo);
|
||||
// 设置工序号
|
||||
processRoute.setProcessNo(processRouteDTO.getProcessNo());
|
||||
processRoute.setProcessNo(processRouteDTO != null ? processRouteDTO.getProcessNo() : null);
|
||||
// 设置工序名称
|
||||
processRoute.setProcessName(processRouteDTO.getProcessName());
|
||||
processRoute.setDiscWeight(Double.valueOf(materialAndRoute.getDanzhong()));
|
||||
processRoute.setMaterial(materialAndRoute.getCaizhi());
|
||||
processRoute.setProcessName(processRouteDTO != null ? processRouteDTO.getProcessName() : null);
|
||||
|
||||
if (materialAndRoute != null && StringUtils.isNotEmpty(materialAndRoute.getMaterialCode())) {
|
||||
ImMaterial materialByCode = materialService.getMaterialByCode(materialAndRoute.getMaterialCode());
|
||||
if (materialByCode != null && materialByCode.getSingleWeight() != null) {
|
||||
processRoute.setDiscWeight(Double.valueOf(String.valueOf(materialByCode.getSingleWeight())));
|
||||
} else {
|
||||
processRoute.setDiscWeight(null);
|
||||
}
|
||||
} else {
|
||||
processRoute.setDiscWeight(null);
|
||||
}
|
||||
|
||||
processRoute.setMaterial(materialAndRoute != null ? materialAndRoute.getCaizhi() : null);
|
||||
// 设置物料代码
|
||||
processRoute.setMaterialCode(materialAndRoute.getMaterialCode());
|
||||
processRoute.setMaterialName(materialAndRoute.getMaterialName());
|
||||
processRoute.setMaterialCode(materialAndRoute != null ? materialAndRoute.getMaterialCode() : null);
|
||||
processRoute.setMaterialName(materialAndRoute != null ? materialAndRoute.getMaterialName() : null);
|
||||
|
||||
processRoute.setWorkCenter(processRouteDTO.getWorkCenter());
|
||||
processRoute.setWorkCenter(processRouteDTO != null ? processRouteDTO.getWorkCenter() : null);
|
||||
// 基本时长
|
||||
processRoute.setActivityDuration(processRouteDTO.getActivityDuration());
|
||||
processRoute.setProcessDescription(processRouteDTO.getProcessDescription());
|
||||
processRoute.setProcessControl(processRouteDTO.getProcessControl());
|
||||
processRoute.setActivityDuration(processRouteDTO != null ? processRouteDTO.getActivityDuration() : null);
|
||||
processRoute.setProcessDescription(processRouteDTO != null ? processRouteDTO.getProcessDescription() : null);
|
||||
processRoute.setProcessControl(processRouteDTO != null ? processRouteDTO.getProcessControl() : null);
|
||||
|
||||
processRoute.setXuStartTime(null);
|
||||
processRoute.setXuEndTime(null);
|
||||
processRoute.setActivityUnit("分");
|
||||
|
||||
// 本批数量对应
|
||||
processRoute.setBatchQuantity(materialAndRoute.getBenpi());
|
||||
processRoute.setFirstBatchQuantity(Double.valueOf(materialAndRoute.getDantai()));
|
||||
List<MaterialUseDTO> materialUsageDTOList = materialAndRoute.getMaterialUseDTOS();
|
||||
for (MaterialUseDTO materialUsageDTO : materialUsageDTOList) {
|
||||
processRoute.setUnitQuantity(materialUsageDTO.getFenzi());
|
||||
processRoute.setBomMaterial(materialUsageDTO.getCaizhi());
|
||||
processRoute.setRawMaterialCode(materialUsageDTO.getMaterialCode());
|
||||
processRoute.setRawMaterialName(materialUsageDTO.getMaterialName());
|
||||
processRoute.setBomUnit(materialUsageDTO.getChildUnit());
|
||||
if (materialUsageDTO.getChildUnit().equals("根")) {
|
||||
processRoute.setDiscUsage(String.valueOf(Double.valueOf(materialUsageDTO.getFenmu())));
|
||||
} else {
|
||||
processRoute.setDiscUsage(String.valueOf((double) (materialUsageDTO.getFenzi() / materialUsageDTO.getFenmu())));
|
||||
processRoute.setBatchQuantity(materialAndRoute != null ? materialAndRoute.getBenpi() : null);
|
||||
if (materialAndRoute != null && materialAndRoute.getDantai() != null) {
|
||||
processRoute.setFirstBatchQuantity(Double.valueOf(materialAndRoute.getDantai()));
|
||||
} else {
|
||||
processRoute.setFirstBatchQuantity(null);
|
||||
}
|
||||
|
||||
List<MaterialUseDTO> materialUsageDTOList = materialAndRoute != null ? materialAndRoute.getMaterialUseDTOS() : null;
|
||||
if (materialUsageDTOList != null) {
|
||||
for (MaterialUseDTO materialUsageDTO : materialUsageDTOList) {
|
||||
if (materialUsageDTO != null) {
|
||||
processRoute.setUnitQuantity(materialUsageDTO.getFenzi());
|
||||
processRoute.setBomMaterial(materialUsageDTO.getCaizhi());
|
||||
processRoute.setRawMaterialCode(materialUsageDTO.getMaterialCode());
|
||||
processRoute.setRawMaterialName(materialUsageDTO.getMaterialName());
|
||||
processRoute.setBomUnit(materialUsageDTO.getChildUnit());
|
||||
if ("根".equals(materialUsageDTO.getChildUnit())) {
|
||||
if (materialUsageDTO.getFenmu() != null) {
|
||||
processRoute.setDiscUsage(String.valueOf(Double.valueOf(materialUsageDTO.getFenmu())));
|
||||
} else {
|
||||
processRoute.setDiscUsage(null);
|
||||
}
|
||||
} else {
|
||||
if (materialUsageDTO.getFenzi() != null && materialUsageDTO.getFenmu() != null && materialUsageDTO.getFenmu() != 0) {
|
||||
processRoute.setDiscUsage(String.valueOf(materialUsageDTO.getFenzi() / materialUsageDTO.getFenmu()));
|
||||
} else {
|
||||
processRoute.setDiscUsage(null);
|
||||
}
|
||||
}
|
||||
processRoute.setMaterial(materialUsageDTO.getCaizhi());
|
||||
} else {
|
||||
processRoute.setUnitQuantity(null);
|
||||
processRoute.setBomMaterial(null);
|
||||
processRoute.setRawMaterialCode(null);
|
||||
processRoute.setRawMaterialName(null);
|
||||
processRoute.setBomUnit(null);
|
||||
processRoute.setDiscUsage(null);
|
||||
processRoute.setMaterial(null);
|
||||
}
|
||||
}
|
||||
|
||||
processRoute.setMaterial(materialUsageDTO.getCaizhi());
|
||||
|
||||
}
|
||||
return processRoute;
|
||||
}
|
||||
@ -821,8 +894,7 @@ public class ProcessRouteController extends BaseController {
|
||||
return bomDetails;
|
||||
}
|
||||
|
||||
private MaterialBom creatBomMaterial(MaterialUsageDTO materialUsageDTO, CombinedDTO combinedDTO,
|
||||
String productionOrderNo) {
|
||||
private MaterialBom creatBomMaterial(MaterialUsageDTO materialUsageDTO, CombinedDTO combinedDTO, String productionOrderNo) {
|
||||
MaterialBom materialBom = new MaterialBom();
|
||||
materialBom.setProjectNumber(productionOrderNo);
|
||||
materialBom.setParentMaterialCode(combinedDTO.getMaterialCode());
|
||||
@ -845,8 +917,23 @@ public class ProcessRouteController extends BaseController {
|
||||
@PostMapping("/getAllRouteAndUse")
|
||||
public void getAllRouteAndUse(@RequestParam("rooteProdet") String rooteProdet) {
|
||||
log.info("获取项目生产数据表:{}", rooteProdet);
|
||||
// 下载Excel模板
|
||||
SmbUtil.downloadExcelFiles(rooteProdet);
|
||||
// 下载Excel模板 (切换为FTP方式)
|
||||
// SmbUtil.downloadExcelFiles(rooteProdet);
|
||||
|
||||
String ftpHost = "192.168.5.18";
|
||||
String ftpUser = "admin";
|
||||
String ftpPass = "hbyt2025";
|
||||
int ftpPort = 21;
|
||||
String localDir = "D:\\file";
|
||||
// 假设远程目录结构与SMB一致,为 /2026/{rooteProdet}
|
||||
String remoteDir = "/2026/" + rooteProdet;
|
||||
|
||||
R<String> ftpResult = FtpUtil.downloadFtpDirectoryFiles(ftpHost, ftpUser, ftpPass, ftpPort, remoteDir, localDir);
|
||||
if (R.isError(ftpResult)) {
|
||||
log.error("FTP下载失败: {}", ftpResult.getMsg());
|
||||
} else {
|
||||
log.info("FTP下载结果: {}", ftpResult.getMsg());
|
||||
}
|
||||
|
||||
// 构建Excel文件路径
|
||||
String ExcelName = "D:\\file\\" + rooteProdet + "汇总表.xlsx";
|
||||
@ -861,10 +948,7 @@ public class ProcessRouteController extends BaseController {
|
||||
if (file.exists()) {
|
||||
// 读取Excel的sheet6 从第三行开始 读取到第4列 无数据的跳过
|
||||
DefaultExcelListener<ProcessRouteGetDTO> listener = new DefaultExcelListener<>(true);
|
||||
EasyExcel.read(ExcelName, ProcessRouteGetDTO.class, listener)
|
||||
.sheet(6)
|
||||
.headRowNumber(3)
|
||||
.doRead();
|
||||
EasyExcel.read(ExcelName, ProcessRouteGetDTO.class, listener).sheet(6).headRowNumber(3).doRead();
|
||||
List<ProcessRouteGetDTO> list = listener.getExcelResult().getList();
|
||||
List<JDMaterialAndRoute> list1 = iProcessRouteService.getProcessRouteGD(list, rooteProdet);
|
||||
|
||||
@ -886,17 +970,16 @@ public class ProcessRouteController extends BaseController {
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 更新生产订单仓库字段
|
||||
*/
|
||||
@SaCheckPermission("system:route:updateProductionOrders")
|
||||
@Log(title = "更新生产订单仓库", businessType = BusinessType.OTHER)
|
||||
@PostMapping("/updateProductionOrders")
|
||||
public R updateProductionOrders(@RequestParam("rooteProdet") String rooteProdet,@RequestParam("cangKuNum")String cangKuNum) throws Exception {
|
||||
//判断此项目是否有
|
||||
List<String> list = iProcessRouteService.updateProductionOrders(rooteProdet,cangKuNum);
|
||||
return R.ok(list);
|
||||
public R updateProductionOrders(@RequestParam("rooteProdet") String rooteProdet, @RequestParam("cangKuNum") String cangKuNum) throws Exception {
|
||||
//判断此项目是否有
|
||||
List<String> list = iProcessRouteService.updateProductionOrders(rooteProdet, cangKuNum);
|
||||
return R.ok(list);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -905,9 +988,9 @@ public class ProcessRouteController extends BaseController {
|
||||
@SaCheckPermission("system:route:updateProductionOrders")
|
||||
@Log(title = "更新采购申请单仓库", businessType = BusinessType.OTHER)
|
||||
@PostMapping("/updateCgOrders")
|
||||
public R updateCgOrders(@RequestParam("rooteProdet") String rooteProdet,@RequestParam("cangKuNum")String cangKuNum) throws Exception {
|
||||
public R updateCgOrders(@RequestParam("rooteProdet") String rooteProdet, @RequestParam("cangKuNum") String cangKuNum) throws Exception {
|
||||
//判断此项目是否有
|
||||
List<String> list = iProcessRouteService.updateCgOrders(rooteProdet,cangKuNum);
|
||||
List<String> list = iProcessRouteService.updateCgOrders(rooteProdet, cangKuNum);
|
||||
return R.ok(list);
|
||||
}
|
||||
}
|
||||
|
||||
@ -110,4 +110,9 @@ public class BomDetails extends BaseEntity {
|
||||
*bom类型
|
||||
*/
|
||||
private String bomType;
|
||||
/**
|
||||
*重要程度
|
||||
*/
|
||||
@JsonProperty("F_HBYT_ZYCD")
|
||||
private String stateImportance;
|
||||
}
|
||||
|
||||
@ -80,16 +80,56 @@ public class ProcessOrderPro extends BaseEntity {
|
||||
private String drawingPath;
|
||||
|
||||
/**
|
||||
* bom状态(0,未完成 1,完成 2已上传)
|
||||
* 项目状态(0方案设计完成,1设计出图完成,2,工艺待审核 3 已推送BOM,4已推送工艺,5已核算MRP, 6开始生产,7生产完成,8 工艺审核完成 )
|
||||
*/
|
||||
private Long bomStatus;
|
||||
/**
|
||||
* 工艺状态(0,未完成 1,完成 2已上传)
|
||||
* 工艺状态(0,未审核 1,已审核 2,已拒绝 )
|
||||
*/
|
||||
private Long routeStatus;
|
||||
|
||||
/**
|
||||
* 工艺上传日志
|
||||
*/
|
||||
private String routeLog;
|
||||
/**
|
||||
* 工艺上传更新时间
|
||||
*/
|
||||
private Date routeUptime;
|
||||
/**
|
||||
* 排产计划更新时间
|
||||
*/
|
||||
private Date planUptime;
|
||||
/**
|
||||
* BOM/物料更新时间
|
||||
*/
|
||||
private Date bomUptime;
|
||||
/**
|
||||
* bom数量
|
||||
*/
|
||||
private Long bomCount;
|
||||
/**
|
||||
* 物料数量
|
||||
*/
|
||||
private Long materialCount;
|
||||
/**
|
||||
* 工艺路线数量
|
||||
*/
|
||||
private Long routeCount;
|
||||
/**
|
||||
* 出图时间
|
||||
*/
|
||||
private Date drawingTime;
|
||||
/**
|
||||
* 出图人
|
||||
*/
|
||||
private String drawingBy;
|
||||
/**
|
||||
* 审核卡片Id
|
||||
*/
|
||||
private String auditCardId;
|
||||
/**
|
||||
* 通知卡片Id
|
||||
*/
|
||||
private String notificationCardId;
|
||||
|
||||
}
|
||||
|
||||
@ -48,46 +48,52 @@ public class ProcessRoute extends BaseEntity {
|
||||
@ColumnWidth(25)
|
||||
@ExcelProperty(value ={"名称","名称"},index=2)
|
||||
private String materialName;
|
||||
/**
|
||||
* 重要程度
|
||||
*/
|
||||
@ColumnWidth(10)
|
||||
@ExcelProperty(value={ "重要程度","重要程度"},index=5)
|
||||
private String stateImportance;
|
||||
/**
|
||||
* 材料BOM单位
|
||||
*/
|
||||
@ColumnWidth(10)
|
||||
@ExcelProperty(value={ "材料BOM","单位"},index=10)
|
||||
@ExcelProperty(value={"单重KG","单重KG"},index=4)
|
||||
private String bomUnit;
|
||||
/**
|
||||
* 材料BOM单位
|
||||
*/
|
||||
@ExcelProperty(value={ "材料BOM","材料单重KG"},index=8)
|
||||
@ExcelProperty(value={ "材料BOM","材料单重KG"},index=9)
|
||||
private Double bomDanZhong;
|
||||
/**
|
||||
* 工序号
|
||||
*/
|
||||
@ColumnWidth(10)
|
||||
@ExcelProperty(value ={ "工序号","工序号"},index = 11)
|
||||
@ExcelProperty(value ={ "工序号","工序号"},index = 12)
|
||||
private Long processNo;
|
||||
/**
|
||||
* 工作中心(加工车间)
|
||||
*/
|
||||
@ColumnWidth(20)
|
||||
@ExcelProperty(value ={ "工作中心(加工车间)","工作中心(加工车间)"},index = 12)
|
||||
@ExcelProperty(value ={ "工作中心(加工车间)","工作中心(加工车间)"},index = 13)
|
||||
private String workCenter;
|
||||
/**
|
||||
* 工序名称
|
||||
*/
|
||||
@ColumnWidth(20)
|
||||
@ExcelProperty(value ={ "工序名称","工序名称"},index = 13)
|
||||
@ExcelProperty(value ={ "工序名称","工序名称"},index = 14)
|
||||
private String processName;
|
||||
/**
|
||||
* 材料BOM物料编码
|
||||
*/
|
||||
@ColumnWidth(20)
|
||||
@ExcelProperty(value={ "材料BOM","物料编码"}, index=5)
|
||||
@ExcelProperty(value={ "材料BOM","物料编码"}, index=6)
|
||||
private String rawMaterialCode;
|
||||
/**
|
||||
* 材料BOM物料名称
|
||||
*/
|
||||
@ColumnWidth(25)
|
||||
@ExcelProperty(value={ "材料BOM","物料名称"},index = 6)
|
||||
@ExcelProperty(value={ "材料BOM","物料名称"},index = 7)
|
||||
private String rawMaterialName;
|
||||
/**
|
||||
* 单重KG
|
||||
@ -99,40 +105,40 @@ public class ProcessRoute extends BaseEntity {
|
||||
* 材料BOM用量
|
||||
*/
|
||||
@ColumnWidth(10)
|
||||
@ExcelProperty(value = { "材料BOM","用量"},index = 9)
|
||||
@ExcelProperty(value = { "材料BOM","用量"},index = 10)
|
||||
private String discUsage;
|
||||
/**
|
||||
* 工序说明(序描述)
|
||||
*/
|
||||
@ColumnWidth(30)
|
||||
@ExcelProperty(value ={ "工序说明(序描述)","工序说明(序描述)"},index = 14)
|
||||
@ExcelProperty(value ={ "工序说明(序描述)","工序说明(序描述)"},index = 15)
|
||||
private String processDescription;
|
||||
/**
|
||||
* 工序控制
|
||||
*/
|
||||
@ColumnWidth(20)
|
||||
@ExcelProperty(value ={ "工序控制","工序控制"},index = 15)
|
||||
@ExcelProperty(value ={ "工序控制","工序控制"},index = 16)
|
||||
private String processControl;
|
||||
/**
|
||||
* 活动时长
|
||||
*/
|
||||
@ColumnWidth(10)
|
||||
|
||||
@ExcelProperty(value={ "活动时长","活动时长"},index = 16)
|
||||
@ExcelProperty(value={ "活动时长","活动时长"},index = 17)
|
||||
private Double activityDuration;
|
||||
/**
|
||||
* 活动单位
|
||||
*/
|
||||
@ColumnWidth(10)
|
||||
|
||||
@ExcelProperty(value={ "活动单位","活动单位"},index =17)
|
||||
@ExcelProperty(value={ "活动单位","活动单位"},index =18)
|
||||
private String activityUnit;
|
||||
|
||||
/**
|
||||
* bom材质
|
||||
*/
|
||||
@ColumnWidth(15)
|
||||
@ExcelProperty(value={ "材料BOM","材质"},index = 7)
|
||||
@ExcelProperty(value={ "材料BOM","材质"},index = 8)
|
||||
private String bomMaterial;
|
||||
/**
|
||||
* 材质
|
||||
@ -144,13 +150,13 @@ public class ProcessRoute extends BaseEntity {
|
||||
* 单台数量
|
||||
*/
|
||||
@ColumnWidth(10)
|
||||
@ExcelProperty(value = {"制件数量","单台数量"},index = 18)
|
||||
@ExcelProperty(value = {"制件数量","单台数量"},index = 19)
|
||||
private Double unitQuantity;
|
||||
/**
|
||||
* 本批数量
|
||||
*/
|
||||
@ColumnWidth(10)
|
||||
@ExcelProperty(value = {"制件数量","本批数量"},index = 19)
|
||||
@ExcelProperty(value = {"制件数量","本批数量"},index = 20)
|
||||
private Long batchQuantity;
|
||||
/**
|
||||
* 首批数量
|
||||
@ -172,14 +178,14 @@ public class ProcessRoute extends BaseEntity {
|
||||
* 序开始时间
|
||||
*/
|
||||
@ColumnWidth(15)
|
||||
@ExcelProperty(value = {"计划完成时间","起始日期"},index = 20)
|
||||
@ExcelProperty(value = {"计划完成时间","起始日期"},index = 21)
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
|
||||
private Date xuStartTime;
|
||||
/**
|
||||
* 序结束时间
|
||||
*/
|
||||
@ColumnWidth(15)
|
||||
@ExcelProperty(value = {"计划完成时间","完成日期"},index = 22)
|
||||
@ExcelProperty(value = {"计划完成时间","完成日期"},index = 23)
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
|
||||
private Date xuEndTime;
|
||||
}
|
||||
|
||||
@ -83,4 +83,8 @@ public class BomDetailsBo extends BaseEntity {
|
||||
*bom类型
|
||||
*/
|
||||
private String bomType;
|
||||
/**
|
||||
* 重要程度
|
||||
*/
|
||||
private String stateImportance;
|
||||
}
|
||||
|
||||
@ -110,5 +110,45 @@ public class ProcessOrderProBo extends BaseEntity {
|
||||
* 工艺上传日志
|
||||
*/
|
||||
private String routeLog;
|
||||
/**
|
||||
* 工艺上传更新时间
|
||||
*/
|
||||
private Date routeUptime;
|
||||
/**
|
||||
* 排产计划更新时间
|
||||
*/
|
||||
private Date planUptime;
|
||||
/**
|
||||
* BOM/物料更新时间
|
||||
*/
|
||||
private Date bomUptime;
|
||||
/**
|
||||
* bom数量
|
||||
*/
|
||||
private Long bomCount;
|
||||
/**
|
||||
* 物料数量
|
||||
*/
|
||||
private Long materialCount;
|
||||
/**
|
||||
* 工艺路线数量
|
||||
*/
|
||||
private Long routeCount;
|
||||
/**
|
||||
* 出图时间
|
||||
*/
|
||||
private Date drawingTime;
|
||||
/**
|
||||
* 出图人
|
||||
*/
|
||||
private String drawingBy;
|
||||
/**
|
||||
* 审核卡片Id
|
||||
*/
|
||||
private String auditCardId;
|
||||
|
||||
/**
|
||||
* 通知卡片Id
|
||||
*/
|
||||
private String notificationCardId;
|
||||
}
|
||||
|
||||
@ -5,6 +5,9 @@ import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.alibaba.excel.annotation.write.style.ColumnWidth;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
@ -149,4 +152,10 @@ public class ProcessRouteBo extends BaseEntity {
|
||||
*/
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
|
||||
private Date xuEndTime;
|
||||
|
||||
|
||||
/**
|
||||
* 重要程度
|
||||
*/
|
||||
private String stateImportance;
|
||||
}
|
||||
|
||||
@ -107,4 +107,9 @@ public class BomDetailsVo {
|
||||
*bom类型
|
||||
*/
|
||||
private String bomType;
|
||||
/**
|
||||
*重要程度
|
||||
*/
|
||||
@ExcelProperty(value = "重要程度")
|
||||
private String stateImportance;
|
||||
}
|
||||
|
||||
@ -125,4 +125,49 @@ public class ProcessOrderProVo {
|
||||
*/
|
||||
@ExcelProperty(value = "工艺上传日志")
|
||||
private String routeLog;
|
||||
/**
|
||||
* 工艺上传更新时间
|
||||
*/
|
||||
private Date routeUptime;
|
||||
/**
|
||||
* 排产计划更新时间
|
||||
*/
|
||||
private Date planUptime;
|
||||
/**
|
||||
* BOM/物料更新时间
|
||||
*/
|
||||
private Date bomUptime;
|
||||
/**
|
||||
* bom数量
|
||||
*/
|
||||
private Long bomCount;
|
||||
/**
|
||||
* 物料数量
|
||||
*/
|
||||
private Long materialCount;
|
||||
/**
|
||||
* 工艺路线数量
|
||||
*/
|
||||
private Long routeCount;
|
||||
/**
|
||||
* 出图人
|
||||
*/
|
||||
private String drawingBy;
|
||||
/**
|
||||
* 出图时间
|
||||
*/
|
||||
@ExcelProperty(value = "出图时间")
|
||||
private Date drawingTime;
|
||||
/**
|
||||
* 审核卡片Id
|
||||
*/
|
||||
@ExcelProperty(value = "审核卡片Id")
|
||||
private String auditCardId;
|
||||
|
||||
/**
|
||||
* 通知卡片Id
|
||||
*/
|
||||
@ExcelProperty(value = "通知卡片Id")
|
||||
private String notificationCardId;
|
||||
|
||||
}
|
||||
|
||||
@ -11,6 +11,7 @@ import com.ruoyi.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@ -27,7 +28,7 @@ import java.util.List;
|
||||
@ContentRowHeight(15)
|
||||
@HeadRowHeight(20)
|
||||
@ColumnWidth(15)
|
||||
public class ProcessRouteVo {
|
||||
public class ProcessRouteVo implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
private List<ProcessRouteVo> children;
|
||||
@ -74,10 +75,17 @@ public class ProcessRouteVo {
|
||||
@ColumnWidth(5)
|
||||
@ExcelProperty(value={"单重KG","单重KG"},index=4)
|
||||
private Double discWeight;
|
||||
/**
|
||||
* 重要程度
|
||||
*/
|
||||
@ColumnWidth(5)
|
||||
@ExcelProperty(value={"重要程度","重要程度"},index=5)
|
||||
private String stateImportance;
|
||||
|
||||
/**
|
||||
* 材料BOM物料编码
|
||||
*/
|
||||
@ExcelProperty(value={ "材料BOM","物料编码"}, index=5)
|
||||
@ExcelProperty(value={ "材料BOM","物料编码"}, index=6)
|
||||
private String rawMaterialCode;
|
||||
|
||||
|
||||
@ -85,88 +93,88 @@ public class ProcessRouteVo {
|
||||
/**
|
||||
* 材料BOM物料名称
|
||||
*/
|
||||
@ExcelProperty(value={ "材料BOM","物料名称"},index = 6)
|
||||
@ExcelProperty(value={ "材料BOM","物料名称"},index = 7)
|
||||
private String rawMaterialName;
|
||||
/**
|
||||
* bom材质
|
||||
*/
|
||||
@ColumnWidth(7)
|
||||
@ExcelProperty(value={ "材料BOM","材质"},index = 7)
|
||||
@ExcelProperty(value={ "材料BOM","材质"},index =8)
|
||||
private String bomMaterial;
|
||||
/**
|
||||
* 材料BOM单位
|
||||
*/
|
||||
@ExcelProperty(value={ "材料BOM","材料单重KG"},index=8)
|
||||
@ExcelProperty(value={ "材料BOM","材料单重KG"},index=9)
|
||||
private Double bomDanZhong;
|
||||
|
||||
/**
|
||||
* 材料BOM用量
|
||||
*/
|
||||
@ColumnWidth(10)
|
||||
@ExcelProperty(value = { "材料BOM","用量"},index = 9)
|
||||
@ExcelProperty(value = { "材料BOM","用量"},index = 10)
|
||||
private String discUsage;
|
||||
/**
|
||||
* 材料BOM单位
|
||||
*/
|
||||
@ColumnWidth(6)
|
||||
@ExcelProperty(value={ "材料BOM","单位"},index=10)
|
||||
@ExcelProperty(value={ "材料BOM","单位"},index=11)
|
||||
private String bomUnit;
|
||||
|
||||
/**
|
||||
* 工序号
|
||||
*/
|
||||
@ColumnWidth(10)
|
||||
@ExcelProperty(value ={ "工序号","工序号"},index = 11)
|
||||
@ExcelProperty(value ={ "工序号","工序号"},index = 12)
|
||||
private Long processNo;
|
||||
|
||||
/**
|
||||
* 工作中心(加工车间)
|
||||
*/
|
||||
@ExcelProperty(value ={ "工作中心(加工车间)","工作中心(加工车间)"},index = 12)
|
||||
@ExcelProperty(value ={ "工作中心(加工车间)","工作中心(加工车间)"},index = 13)
|
||||
private String workCenter;
|
||||
|
||||
/**
|
||||
* 工序名称
|
||||
*/
|
||||
@ExcelProperty(value ={ "工序名称","工序名称"},index = 13)
|
||||
@ExcelProperty(value ={ "工序名称","工序名称"},index = 14)
|
||||
private String processName;
|
||||
|
||||
/**
|
||||
* 工序说明(序描述)
|
||||
*/
|
||||
@ColumnWidth(25)
|
||||
@ExcelProperty(value ={ "工序说明(序描述)","工序说明(序描述)"},index = 14)
|
||||
@ExcelProperty(value ={ "工序说明(序描述)","工序说明(序描述)"},index = 15)
|
||||
private String processDescription;
|
||||
|
||||
/**
|
||||
* 工序控制
|
||||
*/
|
||||
@ExcelProperty(value ={ "工序控制","工序控制"},index = 15)
|
||||
@ExcelProperty(value ={ "工序控制","工序控制"},index = 16)
|
||||
private String processControl;
|
||||
|
||||
/**
|
||||
* 活动时长
|
||||
*/
|
||||
@ExcelProperty(value ={ "活动时长","活动时长"},index = 16)
|
||||
@ExcelProperty(value ={ "活动时长","活动时长"},index = 17)
|
||||
private Double activityDuration;
|
||||
|
||||
/**
|
||||
* 活动单位
|
||||
*/
|
||||
@ExcelProperty(value ={ "活动单位","活动单位"},index = 17)
|
||||
@ExcelProperty(value ={ "活动单位","活动单位"},index = 18)
|
||||
private String activityUnit;
|
||||
|
||||
/**
|
||||
* 单台数量
|
||||
*/
|
||||
@ExcelProperty(value = {"制件数量","单台数量"},index = 18)
|
||||
@ExcelProperty(value = {"制件数量","单台数量"},index = 19)
|
||||
private Long unitQuantity;
|
||||
|
||||
/**
|
||||
* 本批数量
|
||||
*/
|
||||
|
||||
@ExcelProperty(value = {"制件数量","本批数量"},index = 19)
|
||||
@ExcelProperty(value = {"制件数量","本批数量"},index = 20)
|
||||
private Long batchQuantity;
|
||||
|
||||
/**
|
||||
@ -190,7 +198,7 @@ public class ProcessRouteVo {
|
||||
* 序开始时间
|
||||
*/
|
||||
@ColumnWidth(18)
|
||||
@ExcelProperty(value = {"计划完成时间","起始日期"},index = 20)
|
||||
@ExcelProperty(value = {"计划完成时间","起始日期"},index = 21)
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
|
||||
private Date xuStartTime;
|
||||
|
||||
@ -198,7 +206,7 @@ public class ProcessRouteVo {
|
||||
* 序结束时间
|
||||
*/
|
||||
@ColumnWidth(18)
|
||||
@ExcelProperty(value = {"计划完成时间","完成日期"},index = 22)
|
||||
@ExcelProperty(value = {"计划完成时间","完成日期"},index = 23)
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
|
||||
private Date xuEndTime;
|
||||
|
||||
|
||||
@ -124,8 +124,19 @@ public class SmbUtils {
|
||||
throw new IOException("无法创建本地目录: " + localDir.getAbsolutePath());
|
||||
}
|
||||
|
||||
// 动态解析年份
|
||||
String year = "2025"; // 默认年份
|
||||
if (targetFolder != null) {
|
||||
String[] parts = targetFolder.split("-");
|
||||
if (parts.length >= 2 && parts[1].length() == 2 && parts[1].matches("\\d+")) {
|
||||
year = "20" + parts[1];
|
||||
}
|
||||
}
|
||||
|
||||
// 定位到远程目标子目录
|
||||
SmbFile remoteDir = new SmbFile("smb://192.168.5.18/2025/" + targetFolder + "/", cifs);
|
||||
String smbUrl = "smb://192.168.5.18/" + year + "/" + targetFolder + "/";
|
||||
System.out.println("尝试连接SMB路径: " + smbUrl);
|
||||
SmbFile remoteDir = new SmbFile(smbUrl, cifs);
|
||||
|
||||
if (!remoteDir.exists() || !remoteDir.isDirectory()) {
|
||||
System.err.println("远程目录不存在或不是一个目录: " + remoteDir.getCanonicalPath());
|
||||
|
||||
@ -4,6 +4,8 @@ import com.ruoyi.system.domain.ProcessPlan;
|
||||
import com.ruoyi.system.domain.vo.ProcessPlanVo;
|
||||
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
import com.ruoyi.system.domain.vo.DesignerProjectSummaryVo;
|
||||
|
||||
/**
|
||||
* 方案管理Mapper接口
|
||||
*
|
||||
|
||||
@ -35,7 +35,7 @@ public class PDFGenerator {
|
||||
static DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
|
||||
// 绘制表格行的方法
|
||||
private static void drawTableRow(PDPageContentStream contentStream, PDType0Font font, float margin, float yStart,
|
||||
private static PDPageContentStream drawTableRow(PDPageContentStream contentStream, PDType0Font font, float margin, float yStart,
|
||||
float tableWidth, float[] colWidths, String[] cells, PDDocument document,
|
||||
PDPage page, float rowHeight, float pageHeight) throws IOException {
|
||||
float nextX = margin;
|
||||
@ -72,6 +72,8 @@ public class PDFGenerator {
|
||||
|
||||
nextX += colWidths[i];
|
||||
}
|
||||
|
||||
return contentStream; // 返回可能更新后的contentStream
|
||||
}
|
||||
|
||||
// 生成二维码
|
||||
@ -213,18 +215,18 @@ public class PDFGenerator {
|
||||
SimpleDateFormat formatte11r = new SimpleDateFormat("yyyy-MM-dd");
|
||||
// 绘制生产订单信息表格
|
||||
float[] colWidths = { 60, 95, 110, 110, 60, 60, 55 };
|
||||
drawTableRow(contentStream, font, margin, yStart, tableWidth, colWidths,
|
||||
contentStream = drawTableRow(contentStream, font, margin, yStart, tableWidth, colWidths,
|
||||
new String[] { "生产令号", rooteProdet,
|
||||
"开始时间", formatte11r.format(starttime), "结束时间", formatte11r.format(endtime) },
|
||||
document, page, rowHeight, pageHeight);
|
||||
|
||||
yStart -= rowHeight;
|
||||
drawTableRow(contentStream, font, margin, yStart, tableWidth, colWidths,
|
||||
contentStream = drawTableRow(contentStream, font, margin, yStart, tableWidth, colWidths,
|
||||
new String[] { "单据编号", "生产订单编号", "产品名称", "产品编码", "数量", "生产车间", "次数" }, document, page,
|
||||
rowHeight, pageHeight);
|
||||
|
||||
yStart -= rowHeight;
|
||||
drawTableRow(contentStream, font, margin, yStart, tableWidth, colWidths, new String[] {
|
||||
contentStream = drawTableRow(contentStream, font, margin, yStart, tableWidth, colWidths, new String[] {
|
||||
productionOrderNumber, combinedVo.getOrderNumber(), combinedVo.getMaterialName(),
|
||||
combinedVo.getMaterialCode(),
|
||||
String.valueOf(fmoQty), fDepartmentName, "1", "" }, document, page, rowHeight, pageHeight);
|
||||
@ -235,14 +237,16 @@ public class PDFGenerator {
|
||||
yStart = processTableStartY;
|
||||
|
||||
// 使用支持换行的方法绘制表头
|
||||
yStart = drawTableRowWithWrap(contentStream, font, margin, yStart, tableWidth, processColWidths, new String[] {
|
||||
Object[] result = drawTableRowWithWrap(contentStream, font, margin, yStart, tableWidth, processColWidths, new String[] {
|
||||
"工序号", "工序名称", "数量", "工作中心", "工时(分)", "工序说明", "控制码", "开始时间", "结束时间" }, document, page,
|
||||
rowHeight, pageHeight);
|
||||
contentStream = (PDPageContentStream) result[0];
|
||||
yStart = (Float) result[1];
|
||||
|
||||
for (PlannedProcessVo process : combinedVo.getProcesses()) {
|
||||
SimpleDateFormat formatte1r = new SimpleDateFormat("yyyy-MM-dd");
|
||||
// 使用支持换行的方法绘制数据行,特别是工序说明字段
|
||||
yStart = drawTableRowWithWrap(contentStream, font, margin, yStart, tableWidth, processColWidths, new String[] {
|
||||
Object[] processResult = drawTableRowWithWrap(contentStream, font, margin, yStart, tableWidth, processColWidths, new String[] {
|
||||
String.valueOf(process.getFOperNumber()), process.getFProcessName(),
|
||||
String.valueOf(process.getFOperQty()),
|
||||
process.getFWorkCenterName(), String.format("%.2f", process.getFActivity1BaseQty()),
|
||||
@ -255,6 +259,8 @@ public class PDFGenerator {
|
||||
? (formatte1r.format(process.getFSeqPlanFinishTime()))
|
||||
: ""
|
||||
}, document, page, rowHeight, pageHeight);
|
||||
contentStream = (PDPageContentStream) processResult[0];
|
||||
yStart = (Float) processResult[1];
|
||||
}
|
||||
|
||||
// 添加生产用料清单标题
|
||||
@ -275,7 +281,7 @@ public class PDFGenerator {
|
||||
|
||||
// 用料清单表头
|
||||
float[] materialColWidths = { 25, 130, 110, 50, 35, 40, 40, 80, 50 };
|
||||
drawTableRow(contentStream, font, margin, yStart, tableWidth, materialColWidths, new String[] {
|
||||
contentStream = drawTableRow(contentStream, font, margin, yStart, tableWidth, materialColWidths, new String[] {
|
||||
"序号", "物料编码", "物料名称", "规格型号", "单位", "应发数", "已领数", "仓库", "备注"
|
||||
}, document, page, rowHeight, pageHeight);
|
||||
|
||||
@ -293,7 +299,7 @@ public class PDFGenerator {
|
||||
yStart = pageHeight - margin;
|
||||
|
||||
// 绘制用料清单表头
|
||||
drawTableRow(contentStream, font, margin, yStart, tableWidth, materialColWidths,
|
||||
contentStream = drawTableRow(contentStream, font, margin, yStart, tableWidth, materialColWidths,
|
||||
new String[] {
|
||||
"序号", "物料编码", "物料名称", "规格型号", "单位", "应发数", "已领数", "仓库", "备注"
|
||||
}, document, page, rowHeight, pageHeight);
|
||||
@ -302,7 +308,7 @@ public class PDFGenerator {
|
||||
|
||||
MaterialUsageDTO material = materialUsageDTOList.get(i);
|
||||
SimpleDateFormat formatte1r = new SimpleDateFormat("yyyy-MM-dd");
|
||||
drawTableRow(contentStream, font, margin, yStart, tableWidth, materialColWidths,
|
||||
contentStream = drawTableRow(contentStream, font, margin, yStart, tableWidth, materialColWidths,
|
||||
new String[] {
|
||||
String.valueOf(i + 1), material.getMaterialCode(),
|
||||
material.getMaterialName(),
|
||||
@ -552,7 +558,7 @@ public class PDFGenerator {
|
||||
}
|
||||
|
||||
// Java 8兼容的改进表格绘制方法,支持自动换行
|
||||
private static float drawTableRowWithWrap(PDPageContentStream contentStream, PDType0Font font, float margin,
|
||||
private static Object[] drawTableRowWithWrap(PDPageContentStream contentStream, PDType0Font font, float margin,
|
||||
float yStart, float tableWidth, float[] colWidths, String[] cells, PDDocument document,
|
||||
PDPage page, float baseRowHeight, float pageHeight) throws IOException {
|
||||
|
||||
@ -613,7 +619,7 @@ public class PDFGenerator {
|
||||
nextX += colWidths[i];
|
||||
}
|
||||
|
||||
return nextY - actualRowHeight; // 返回下一行的Y坐标
|
||||
return new Object[]{contentStream, nextY - actualRowHeight}; // 返回contentStream和下一行的Y坐标
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.ruoyi.system.service;
|
||||
|
||||
import com.ruoyi.system.domain.ProcessPlan;
|
||||
import com.ruoyi.system.domain.vo.DesignerProjectSummaryVo;
|
||||
import com.ruoyi.system.domain.vo.ExpiryProjectVo;
|
||||
import com.ruoyi.system.domain.vo.OverdueProjectVo;
|
||||
import com.ruoyi.system.domain.vo.ProcessPlanVo;
|
||||
@ -54,4 +55,9 @@ public interface IProcessPlanService {
|
||||
List<ExpiryProjectVo> getExpiryProjects();
|
||||
|
||||
TableDataInfo<ProcessPlanVo> queryPageList2(ProcessPlanBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 获取设计人项目汇总(每周、每月、每年)
|
||||
*/
|
||||
List<DesignerProjectSummaryVo> getDesignerProjectSummary();
|
||||
}
|
||||
|
||||
@ -49,5 +49,10 @@ public interface IWlStockDataService {
|
||||
|
||||
List<WlStockData> generateDoc();
|
||||
|
||||
/**
|
||||
* 生成安全库存数据但不存入数据库
|
||||
*/
|
||||
List<WlStockData> generateStockDataOnly();
|
||||
|
||||
List<String> getLogs(int lastIndex);
|
||||
}
|
||||
|
||||
@ -1,38 +1,44 @@
|
||||
package com.ruoyi.system.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.lowagie.text.Rectangle;
|
||||
import com.lowagie.text.pdf.PdfReader;
|
||||
import com.ruoyi.common.config.DingTalkProperties;
|
||||
import com.ruoyi.common.constant.Constants;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.dingding.DingUtil;
|
||||
import com.ruoyi.common.helper.LoginHelper;
|
||||
import com.ruoyi.common.utils.FtpUtil;
|
||||
import com.ruoyi.common.utils.HttpUtils;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.utils.file.DeleteFile;
|
||||
import com.ruoyi.common.utils.file.PDFDocHelper;
|
||||
|
||||
import com.ruoyi.oss.factory.OssFactory;
|
||||
import com.ruoyi.system.domain.*;
|
||||
import com.ruoyi.system.domain.bo.ProcessOrderProBo;
|
||||
import com.ruoyi.system.domain.dto.ProcessRouteExcelDTO;
|
||||
import com.ruoyi.system.domain.dto.excuteDrawing.DataInfo;
|
||||
import com.ruoyi.system.domain.dto.excuteDrawing.ProductInfo;
|
||||
import com.ruoyi.system.domain.dto.excuteDrawing.PwProductionBill;
|
||||
import com.ruoyi.system.domain.dto.excuteDrawing.RigidChainModelDTO;
|
||||
import com.ruoyi.system.domain.vo.OverdueProjectVo;
|
||||
import com.ruoyi.system.domain.vo.ProcessOrderProVo;
|
||||
import com.ruoyi.system.domain.vo.ProductionOrderVo;
|
||||
import com.ruoyi.system.domain.vo.SysOssVo;
|
||||
import com.ruoyi.system.listener.FileToZip;
|
||||
import com.ruoyi.system.listener.SmbUtils;
|
||||
import com.ruoyi.system.mapper.*;
|
||||
import com.ruoyi.system.runner.JdUtil;
|
||||
import com.ruoyi.system.service.*;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -41,27 +47,26 @@ import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.BeanWrapper;
|
||||
import org.springframework.beans.BeanWrapperImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.system.domain.bo.ProcessOrderProBo;
|
||||
import com.ruoyi.system.domain.vo.ProcessOrderProVo;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
|
||||
|
||||
import java.io.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.function.Function;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.function.Function;
|
||||
import java.time.LocalDate;
|
||||
|
||||
|
||||
/**
|
||||
* 项目令号Service业务层处理
|
||||
@ -75,7 +80,8 @@ import java.time.LocalDate;
|
||||
public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
private final FigureSaveMapper figureSaveMapper;
|
||||
private final IMaterialBomService materialBomService;
|
||||
|
||||
private final DingTalkProperties dingTalkProperties;
|
||||
private final ISysOssService iSysOssService;
|
||||
private final ProcessOrderProMapper baseMapper;
|
||||
private final DeviceSpec35rMapper deviceSpec35rMapper;
|
||||
private final DeviceSpec30sMapper deviceSpec30sMapper;
|
||||
@ -87,18 +93,13 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
private final DeviceSpec100rMapper deviceSpec100rMapper;
|
||||
|
||||
private final SafetyStockMapper safetyStockMapper;
|
||||
|
||||
@Autowired
|
||||
private ProcessRouteMapper processRouteMapper;
|
||||
|
||||
@Autowired
|
||||
private IPcRigidChainService pcRigidChainService;
|
||||
private final IProcessRouteService iProcessRouteService;
|
||||
private final IProductionOrderService iProductionOrderService;
|
||||
private static final String FILE_EXTENSION = ".xlsx"; // 目标文件后缀
|
||||
private static final String LOCAL_DIR = "D:/file/";
|
||||
private static final String ROBOTID = "8af8abea-3f21-4ca7-ad0a-5b7a2cf4d78e";
|
||||
|
||||
private final ISysUserService userService;
|
||||
@Autowired
|
||||
private ProcessRouteMapper processRouteMapper;
|
||||
@Autowired
|
||||
private IPcRigidChainService pcRigidChainService;
|
||||
@Value("${app.drawing.base-path:F:}")
|
||||
private String basePath;
|
||||
|
||||
@ -111,84 +112,79 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
private String statusUrl;
|
||||
@Autowired
|
||||
private IFigureSaveService iFigureSaveService;
|
||||
private Map<String, SpecStrategy> specStrategies;
|
||||
|
||||
private interface SpecStrategy {
|
||||
ProductInfo build(FigureSave figureSave);
|
||||
public static String[] getNullPropertyNames(Object source) {
|
||||
BeanWrapper src = new BeanWrapperImpl(source);
|
||||
java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors();
|
||||
|
||||
Set<String> emptyNames = new HashSet<>();
|
||||
for (java.beans.PropertyDescriptor pd : pds) {
|
||||
Object srcValue = src.getPropertyValue(pd.getName());
|
||||
if (srcValue == null) emptyNames.add(pd.getName());
|
||||
}
|
||||
return emptyNames.toArray(new String[0]);
|
||||
}
|
||||
|
||||
private Map<String, SpecStrategy> specStrategies;
|
||||
public static void copyPropertiesIgnoreNull(Object src, Object target) {
|
||||
BeanUtils.copyProperties(src, target, getNullPropertyNames(src));
|
||||
}
|
||||
|
||||
private void initStrategies() {
|
||||
if (specStrategies != null) return;
|
||||
specStrategies = new HashMap<>();
|
||||
specStrategies.put("35R", figureSave -> {
|
||||
LambdaQueryWrapper<DeviceSpec35r> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(DeviceSpec35r::getBoxType, figureSave.getBoxType())
|
||||
.eq(DeviceSpec35r::getTravelLength, Objects.toString(figureSave.getJdInventory(), ""))
|
||||
.eq(DeviceSpec35r::getItemType, figureSave.getProductType());
|
||||
wrapper.eq(DeviceSpec35r::getBoxType, figureSave.getBoxType()).eq(DeviceSpec35r::getTravelLength, Objects.toString(figureSave.getJdInventory(), "")).eq(DeviceSpec35r::getItemType, figureSave.getProductType());
|
||||
DeviceSpec35r device = deviceSpec35rMapper.selectOne(wrapper);
|
||||
if (device == null) return null;
|
||||
return buildProductInfo(figureSave, device);
|
||||
});
|
||||
specStrategies.put("30S", figureSave -> {
|
||||
LambdaQueryWrapper<DeviceSpec30s> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(DeviceSpec30s::getBoxType, figureSave.getBoxType())
|
||||
.eq(DeviceSpec30s::getTravelLength, Objects.toString(figureSave.getJdInventory(), ""))
|
||||
.eq(DeviceSpec30s::getItemType, figureSave.getProductType());
|
||||
wrapper.eq(DeviceSpec30s::getBoxType, figureSave.getBoxType()).eq(DeviceSpec30s::getTravelLength, Objects.toString(figureSave.getJdInventory(), "")).eq(DeviceSpec30s::getItemType, figureSave.getProductType());
|
||||
DeviceSpec30s device = deviceSpec30sMapper.selectOne(wrapper);
|
||||
if (device == null) return null;
|
||||
return buildProductInfo30S(figureSave, device);
|
||||
});
|
||||
specStrategies.put("30D", figureSave -> {
|
||||
LambdaQueryWrapper<DeviceSpec30d> w = new LambdaQueryWrapper<>();
|
||||
w.eq(DeviceSpec30d::getBoxType, figureSave.getBoxType())
|
||||
.eq(DeviceSpec30d::getTravelLength, Objects.toString(figureSave.getJdInventory(), ""))
|
||||
.eq(DeviceSpec30d::getItemType, figureSave.getProductType());
|
||||
w.eq(DeviceSpec30d::getBoxType, figureSave.getBoxType()).eq(DeviceSpec30d::getTravelLength, Objects.toString(figureSave.getJdInventory(), "")).eq(DeviceSpec30d::getItemType, figureSave.getProductType());
|
||||
DeviceSpec30d d = deviceSpec30dMapper.selectOne(w);
|
||||
if (d == null) return null;
|
||||
return buildProductInfoGeneric(figureSave, d);
|
||||
});
|
||||
specStrategies.put("40R", figureSave -> {
|
||||
LambdaQueryWrapper<DeviceSpec40r> w = new LambdaQueryWrapper<>();
|
||||
w.eq(DeviceSpec40r::getBoxType, figureSave.getBoxType())
|
||||
.eq(DeviceSpec40r::getTravelLength, Objects.toString(figureSave.getJdInventory(), ""))
|
||||
.eq(DeviceSpec40r::getItemType, figureSave.getProductType());
|
||||
w.eq(DeviceSpec40r::getBoxType, figureSave.getBoxType()).eq(DeviceSpec40r::getTravelLength, Objects.toString(figureSave.getJdInventory(), "")).eq(DeviceSpec40r::getItemType, figureSave.getProductType());
|
||||
DeviceSpec40r d = deviceSpec40rMapper.selectOne(w);
|
||||
if (d == null) return null;
|
||||
return buildProductInfoGeneric(figureSave, d);
|
||||
});
|
||||
specStrategies.put("40S", figureSave -> {
|
||||
LambdaQueryWrapper<DeviceSpec40s> w = new LambdaQueryWrapper<>();
|
||||
w.eq(DeviceSpec40s::getBoxType, figureSave.getBoxType())
|
||||
.eq(DeviceSpec40s::getTravelLength, Objects.toString(figureSave.getJdInventory(), ""))
|
||||
.eq(DeviceSpec40s::getItemType, figureSave.getProductType());
|
||||
w.eq(DeviceSpec40s::getBoxType, figureSave.getBoxType()).eq(DeviceSpec40s::getTravelLength, Objects.toString(figureSave.getJdInventory(), "")).eq(DeviceSpec40s::getItemType, figureSave.getProductType());
|
||||
DeviceSpec40s d = deviceSpec40sMapper.selectOne(w);
|
||||
if (d == null) return null;
|
||||
return buildProductInfoGeneric(figureSave, d);
|
||||
});
|
||||
specStrategies.put("60R", figureSave -> {
|
||||
LambdaQueryWrapper<DeviceSpec60r> w = new LambdaQueryWrapper<>();
|
||||
w.eq(DeviceSpec60r::getBoxType, figureSave.getBoxType())
|
||||
.eq(DeviceSpec60r::getTravelLength, Objects.toString(figureSave.getJdInventory(), ""))
|
||||
.eq(DeviceSpec60r::getItemType, figureSave.getProductType());
|
||||
w.eq(DeviceSpec60r::getBoxType, figureSave.getBoxType()).eq(DeviceSpec60r::getTravelLength, Objects.toString(figureSave.getJdInventory(), "")).eq(DeviceSpec60r::getItemType, figureSave.getProductType());
|
||||
DeviceSpec60r d = deviceSpec60rMapper.selectOne(w);
|
||||
if (d == null) return null;
|
||||
return buildProductInfoGeneric(figureSave, d);
|
||||
});
|
||||
specStrategies.put("80R", figureSave -> {
|
||||
LambdaQueryWrapper<DeviceSpec80r> w = new LambdaQueryWrapper<>();
|
||||
w.eq(DeviceSpec80r::getBoxType, figureSave.getBoxType())
|
||||
.eq(DeviceSpec80r::getTravelLength, Objects.toString(figureSave.getJdInventory(), ""))
|
||||
.eq(DeviceSpec80r::getItemType, figureSave.getProductType());
|
||||
w.eq(DeviceSpec80r::getBoxType, figureSave.getBoxType()).eq(DeviceSpec80r::getTravelLength, Objects.toString(figureSave.getJdInventory(), "")).eq(DeviceSpec80r::getItemType, figureSave.getProductType());
|
||||
DeviceSpec80r d = deviceSpec80rMapper.selectOne(w);
|
||||
if (d == null) return null;
|
||||
return buildProductInfoGeneric(figureSave, d);
|
||||
});
|
||||
specStrategies.put("100R", figureSave -> {
|
||||
LambdaQueryWrapper<DeviceSpec100r> w = new LambdaQueryWrapper<>();
|
||||
w.eq(DeviceSpec100r::getBoxType, figureSave.getBoxType())
|
||||
.eq(DeviceSpec100r::getTravelLength, Objects.toString(figureSave.getJdInventory(), ""))
|
||||
.eq(DeviceSpec100r::getItemType, figureSave.getProductType());
|
||||
w.eq(DeviceSpec100r::getBoxType, figureSave.getBoxType()).eq(DeviceSpec100r::getTravelLength, Objects.toString(figureSave.getJdInventory(), "")).eq(DeviceSpec100r::getItemType, figureSave.getProductType());
|
||||
DeviceSpec100r d = deviceSpec100rMapper.selectOne(w);
|
||||
if (d == null) return null;
|
||||
return buildProductInfoGeneric(figureSave, d);
|
||||
@ -223,7 +219,7 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
if (st != null) return st;
|
||||
}
|
||||
for (String prefix : specStrategies.keySet()) {
|
||||
if (key.startsWith(prefix)){
|
||||
if (key.startsWith(prefix)) {
|
||||
return specStrategies.get(prefix);
|
||||
}
|
||||
}
|
||||
@ -286,25 +282,109 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
// 下载excel文件
|
||||
log.info("下载excel文件.." + bo.getProductionOrderNo());
|
||||
SmbUtils.downloadExcelFiles(bo.getProductionOrderNo());
|
||||
/* //同时推送至企业微信群
|
||||
String fileName = LOCAL_DIR + "/" + bo.getProductionOrderNo()+"汇总表" + FILE_EXTENSION;
|
||||
File file = new File(fileName);
|
||||
wxRobotUtil.sendFileToWeChatGroup(file, ROBOTID);
|
||||
//拼接要发送到的信息markdown格式
|
||||
String msg = "生产令号:" + bo.getProductionOrderNo() + "\n" +
|
||||
"生产名称:" + bo.getProductionName() + "\n" +
|
||||
"图纸号:" + bo.getDrawingNo() + "\n" +
|
||||
"图纸名称:" + bo.getDrawingName() + "\n" +
|
||||
"计划完工时间:" + bo.getPlanEndTime() + "\n" +
|
||||
"计划开工时间:" + bo.getPlanStartTime() + "\n" ;
|
||||
wxRobotUtil.sendMsgToWeChatGroup(msg, ROBOTID,true);*/
|
||||
|
||||
ProcessOrderPro add = BeanUtil.toBean(bo, ProcessOrderPro.class);
|
||||
|
||||
|
||||
//创建人换成昵称
|
||||
Long userId = LoginHelper.getUserId();
|
||||
if (userId != null) {
|
||||
SysUser user = userService.selectUserById(userId);
|
||||
if (user != null) {
|
||||
add.setCreateBy(user.getNickName());
|
||||
}
|
||||
}
|
||||
// 如果出图时间为空,默认为当前时间
|
||||
if (add.getDrawingTime() == null) {
|
||||
add.setDrawingTime(new Date());
|
||||
bo.setDrawingTime(add.getDrawingTime());
|
||||
}
|
||||
add.setRouteStatus(0L);
|
||||
add.setBomStatus(0L);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
// 异步发送钉钉卡片
|
||||
CompletableFuture.runAsync(() -> {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
||||
try {
|
||||
// 获取 AccessToken
|
||||
String accessToken = DingUtil.getAccessToken(dingTalkProperties.getAppKey(), dingTalkProperties.getAppSecret());
|
||||
// 处理图片上传
|
||||
String imgMediaId = ""; // 默认图片
|
||||
if (StringUtils.isNotEmpty(bo.getDrawingPath())) {
|
||||
try {
|
||||
Long ossId = Long.parseLong(bo.getDrawingPath());
|
||||
SysOssVo ossVo = iSysOssService.getById(ossId);
|
||||
if (ossVo != null) {
|
||||
String suffix = FileUtil.getSuffix(ossVo.getOriginalName());
|
||||
File tempFile = FileUtil.createTempFile("ding_img", StringUtils.isNotEmpty(suffix) ? "." + suffix : ".jpg", true);
|
||||
try (InputStream is = OssFactory.instance().getObjectContent(ossVo.getUrl()); OutputStream os = Files.newOutputStream(tempFile.toPath())) {
|
||||
IoUtil.copy(is, os);
|
||||
}
|
||||
imgMediaId = DingUtil.uploadMedia(accessToken, "image", tempFile.getAbsolutePath());
|
||||
FileUtil.del(tempFile);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("上传图片到钉钉失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 构造卡片数据
|
||||
Map<String, String> cardDataMap = new HashMap<>();
|
||||
|
||||
cardDataMap.put("drawing_time", bo.getDrawingTime() != null ? sdf.format(bo.getDrawingTime()) : "待定");
|
||||
cardDataMap.put("production_order_no", StringUtils.defaultIfEmpty(bo.getProductionOrderNo(), ""));
|
||||
cardDataMap.put("production_name", StringUtils.defaultIfEmpty(bo.getProductionName(), ""));
|
||||
cardDataMap.put("drawing_by", StringUtils.defaultIfEmpty(bo.getDrawingBy(), "暂无"));
|
||||
cardDataMap.put("bom_uptime", bo.getBomUptime() != null ? sdf.format(bo.getBomUptime()) : "未上传");
|
||||
cardDataMap.put("drawing_type", StringUtils.defaultIfEmpty(bo.getDrawingType(), ""));
|
||||
cardDataMap.put("project_end_time", bo.getProjectEndTime() != null ? sdf.format(bo.getProjectEndTime()) : "待定");
|
||||
cardDataMap.put("route_uptime", bo.getRouteUptime() != null ? sdf.format(bo.getRouteUptime()) : "未上传");
|
||||
cardDataMap.put("material_count", bo.getMaterialCount() != null ? String.valueOf(bo.getMaterialCount()) : "0");
|
||||
cardDataMap.put("route_count", bo.getRouteCount() != null ? String.valueOf(bo.getRouteCount()) : "0");
|
||||
cardDataMap.put("plan_uptime", bo.getPlanUptime() != null ? sdf.format(bo.getPlanUptime()) : "未上传");
|
||||
cardDataMap.put("bom_count", bo.getBomCount() != null ? String.valueOf(bo.getBomCount()) : "0");
|
||||
cardDataMap.put("img_id", imgMediaId);
|
||||
String outTrackId = "project-card-" + System.currentTimeMillis();
|
||||
String outTrackId1 = DingUtil.createAndDeliverCard(accessToken, dingTalkProperties.getProjectCardTemplateId(), dingTalkProperties.getRobotCode(), dingTalkProperties.getOpenConversationId(), outTrackId, cardDataMap, dingTalkProperties.getCallbackRouteKey());
|
||||
//同时发送给设计人员
|
||||
List<String> designers = StringUtils.splitList(bo.getDrawingBy());
|
||||
// 收集手机号用于@
|
||||
List<String> receiverMobiles = new ArrayList<>();
|
||||
|
||||
for (String designer : designers) {
|
||||
SysUser sysUser = userService.selectUserByUserName(designer);
|
||||
if (sysUser != null && StringUtils.isNotEmpty(sysUser.getPhonenumber())) {
|
||||
receiverMobiles.add(sysUser.getPhonenumber());
|
||||
log.info("添加发送消息用户 {}: {}", sysUser.getNickName(), sysUser.getPhonenumber());
|
||||
}
|
||||
}
|
||||
|
||||
if (!receiverMobiles.isEmpty()) {
|
||||
// 去重
|
||||
receiverMobiles = receiverMobiles.stream().distinct().collect(Collectors.toList());
|
||||
try {
|
||||
log.info("发送群消息并@用户(手机号): {}", receiverMobiles);
|
||||
DingUtil.sendSessionText("https://oapi.dingtalk.com/robot/send?access_token=61525f1eccca9dde871df334918b1aac47f08e4ef71b8c689b46a091b3d45450",
|
||||
bo.getProductionOrderNo() + " 项目已创建", null, receiverMobiles);
|
||||
} catch (Exception e) {
|
||||
log.error("发送@消息失败", e);
|
||||
}
|
||||
}
|
||||
// 更新数据库中的 auditCardId
|
||||
ProcessOrderPro update = new ProcessOrderPro();
|
||||
update.setId(add.getId());
|
||||
update.setUpdateBy("Dingding");
|
||||
update.setNotificationCardId(outTrackId1);
|
||||
log.info("更新项目令号 {} 卡片id {}", add.getProductionOrderNo(), outTrackId1);
|
||||
baseMapper.updateById(update);
|
||||
|
||||
bo.setAuditCardId(outTrackId1);
|
||||
} catch (Exception e) {
|
||||
log.error("发送钉钉卡片异常", e);
|
||||
}
|
||||
});
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
@ -384,7 +464,6 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
return baseMapper.selectOne(wrapper);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@ -450,7 +529,6 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
return baseMapper.selectList(qw);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void addProduct(RigidChainModelDTO orderPro) {
|
||||
FigureSave figureSave = new FigureSave();
|
||||
@ -470,7 +548,7 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
box = m.group("box");
|
||||
} else {
|
||||
axial = Objects.toString(orderPro.getAxialType(), "");
|
||||
type = Objects.toString(orderPro.getProductType(),"");
|
||||
type = Objects.toString(orderPro.getProductType(), "");
|
||||
journey = Objects.toString(orderPro.getJourney(), "");
|
||||
box = Objects.toString(orderPro.getBoxType(), "");
|
||||
}
|
||||
@ -518,9 +596,136 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
pwProductionBill.setProduct(productInfos);
|
||||
|
||||
// 6. 调用API
|
||||
return callDrawingApi(pwProductionBill, orderPro);
|
||||
}
|
||||
try {
|
||||
return callDrawingApi(pwProductionBill, orderPro);
|
||||
} catch (Exception e) {
|
||||
log.error("调用出图API失败", e);
|
||||
throw e;
|
||||
} finally {
|
||||
// 无论成功失败,都发送通知和文件
|
||||
CompletableFuture.runAsync(() -> {
|
||||
try {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
||||
// 获取 AccessToken
|
||||
String accessToken = DingUtil.getAccessToken(dingTalkProperties.getAppKey(), dingTalkProperties.getAppSecret());
|
||||
|
||||
// 构造Markdown消息内容
|
||||
StringBuilder markdownText = new StringBuilder();
|
||||
markdownText.append("**项目创建出图完成,请及时填写工艺**\n\n");
|
||||
markdownText.append("> **时间**: ").append(sdf.format(new Date())).append("\n\n");
|
||||
markdownText.append("> **项目令号**: ").append(StringUtils.defaultIfEmpty(orderPro.getProductionOrderNo(), "")).append("\n\n");
|
||||
markdownText.append("> **项目名称**: ").append(StringUtils.defaultIfEmpty(orderPro.getProductionName(), "")).append("\n\n");
|
||||
|
||||
// 补充更多实体信息(若库中尚无记录,processOrderPro 可能为 null)
|
||||
ProcessOrderPro po = processOrderPro;
|
||||
SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd");
|
||||
if (po != null) {
|
||||
if (StringUtils.isNotBlank(po.getDrawingNo())) {
|
||||
markdownText.append("> **图号**: ").append(po.getDrawingNo()).append("\n\n");
|
||||
}
|
||||
if (StringUtils.isNotBlank(po.getDrawingName())) {
|
||||
markdownText.append("> **图纸名称**: ").append(po.getDrawingName()).append("\n\n");
|
||||
}
|
||||
String planStart = po.getPlanStartTime() == null ? "" : sdfDate.format(po.getPlanStartTime());
|
||||
String planEnd = po.getPlanEndTime() == null ? "" : sdfDate.format(po.getPlanEndTime());
|
||||
if (StringUtils.isNotBlank(planStart) || StringUtils.isNotBlank(planEnd)) {
|
||||
markdownText.append("> **计划周期**: ").append(planStart).append(" ~ ").append(planEnd).append("\n\n");
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(po.getUnit()) || po.getQuantity() != null) {
|
||||
markdownText.append("> **单位/数量**: ").append(StringUtils.defaultIfEmpty(po.getUnit(), "")).append(StringUtils.isNotBlank(po.getUnit()) && po.getQuantity() != null ? " / " : "").append(po.getQuantity() == null ? "" : po.getQuantity()).append("\n\n");
|
||||
}
|
||||
|
||||
if (po.getIsEnterpriseStandard() != null) {
|
||||
markdownText.append("> **是否企标**: ").append(po.getIsEnterpriseStandard() == 1 ? "是" : "否").append("\n\n");
|
||||
}
|
||||
|
||||
String bomStatus = null;
|
||||
if (po.getBomStatus() != null) {
|
||||
if (po.getBomStatus() == 0) bomStatus = "未完成";
|
||||
else if (po.getBomStatus() == 1) bomStatus = "完成";
|
||||
else if (po.getBomStatus() == 2) bomStatus = "已上传";
|
||||
else bomStatus = String.valueOf(po.getBomStatus());
|
||||
}
|
||||
String routeStatus = null;
|
||||
if (po.getRouteStatus() != null) {
|
||||
if (po.getRouteStatus() == 0) routeStatus = "未审核";
|
||||
else if (po.getRouteStatus() == 1) routeStatus = "已审核";
|
||||
else routeStatus = String.valueOf(po.getRouteStatus());
|
||||
}
|
||||
if (StringUtils.isNotBlank(bomStatus) || StringUtils.isNotBlank(routeStatus)) {
|
||||
markdownText.append("> **BOM/工艺状态**: ").append(StringUtils.defaultIfEmpty(bomStatus, "-")).append(" / ").append(StringUtils.defaultIfEmpty(routeStatus, "-")).append("\n\n");
|
||||
}
|
||||
|
||||
if (po.getDrawingTime() != null) {
|
||||
markdownText.append("> **出图时间**: ").append(sdf.format(po.getDrawingTime())).append("\n\n");
|
||||
}
|
||||
if (StringUtils.isNotBlank(po.getDrawingBy())) {
|
||||
markdownText.append("> **出图人**: ").append(po.getDrawingBy()).append("\n\n");
|
||||
}
|
||||
}
|
||||
|
||||
markdownText.append("\n请相关人员及时处理。");
|
||||
|
||||
// 发送Markdown消息
|
||||
DingUtil.sendOrgGroupMarkdown(accessToken, dingTalkProperties.getRobotCode(), dingTalkProperties.getOpenConversationId(), "生产项目创建通知", markdownText.toString());
|
||||
|
||||
// 下载并发送Excel文件
|
||||
log.info("开始下载并发送Excel文件: {}", orderPro.getProductionOrderNo());
|
||||
|
||||
// 1. 解析年份
|
||||
String productionCode = orderPro.getProductionOrderNo();
|
||||
String year = "2025"; // 默认
|
||||
if (productionCode != null) {
|
||||
if (productionCode.startsWith("EY")) {
|
||||
if (productionCode.length() >= 4) {
|
||||
try {
|
||||
Integer.parseInt(productionCode.substring(2, 4));
|
||||
year = "20" + productionCode.substring(2, 4);
|
||||
} catch (Exception ignore) {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
int firstDash = productionCode.indexOf("-");
|
||||
if (firstDash >= 0 && firstDash + 3 <= productionCode.length()) {
|
||||
try {
|
||||
Integer.parseInt(productionCode.substring(firstDash + 1, firstDash + 3));
|
||||
year = "20" + productionCode.substring(firstDash + 1, firstDash + 3);
|
||||
} catch (Exception ignore) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 2. 构建FTP路径和本地路径
|
||||
String ftpPath = "/" + year + "/" + productionCode;
|
||||
String localPath = "D:\\file\\";
|
||||
|
||||
// 3. 下载文件(只下载汇总表.xlsx)
|
||||
R<String> downloadResult = FtpUtil.downloadFtpDirectoryFiles("192.168.5.18", "admin", "hbyt2025", 21, ftpPath, localPath, "汇总表.xlsx");
|
||||
if (downloadResult == null || downloadResult.getCode() != 200) {
|
||||
log.warn("Excel文件下载可能失败: productionCode={}, ftpPath={}, result={}", productionCode, ftpPath, downloadResult);
|
||||
}
|
||||
|
||||
// 4. 构建本地文件路径并发送钉钉文件
|
||||
String filePath = localPath + productionCode + "汇总表.xlsx";
|
||||
File excelFile = new File(filePath);
|
||||
if (excelFile.exists() && excelFile.length() > 0) {
|
||||
// Upload media
|
||||
String mediaId = DingUtil.uploadMedia(accessToken, "file", filePath);
|
||||
// Send file
|
||||
DingUtil.sendOrgGroupFile(accessToken, dingTalkProperties.getRobotCode(), dingTalkProperties.getOpenConversationId(), mediaId, excelFile.getName(), "sampleFile");
|
||||
log.info("Excel文件发送成功");
|
||||
} else {
|
||||
log.warn("Excel文件未找到或为空: {}", filePath);
|
||||
}
|
||||
|
||||
} catch (Exception ex) {
|
||||
log.error("发送出图通知/文件失败", ex);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void validateOrderPro(ProcessOrderProBo orderPro) {
|
||||
if (orderPro == null || StringUtils.isBlank(orderPro.getProductionOrderNo())) {
|
||||
@ -579,22 +784,11 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
|
||||
private List<ProductInfo> buildProductInfos(Long orderId) {
|
||||
List<FigureSave> figureSaveList = figureSaveMapper.selectList(new LambdaQueryWrapper<FigureSave>().eq(FigureSave::getPid, orderId));
|
||||
return figureSaveList.stream()
|
||||
.map(fs -> {
|
||||
SpecStrategy st = getStrategyForType(fs.getProductType());
|
||||
ProductInfo pi = st != null ? st.build(fs) : null;
|
||||
return pi != null ? pi : buildProductInfoFallback(fs);
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
//出图时如果不是标准的产品,而是零件图的话,变量会为空
|
||||
private ProductInfo buildProductInfoFallback(FigureSave figureSave) {
|
||||
ProductInfo productInfo = new ProductInfo();
|
||||
productInfo.setAssembledrawing(figureSave.getFigureNumber());
|
||||
productInfo.setNumber(String.valueOf(figureSave.getFigureNum()));
|
||||
productInfo.setSourcefile(figureSave.getDrawPath().replace("/", "\\"));
|
||||
productInfo.setVars(new DataInfo());
|
||||
return productInfo;
|
||||
return figureSaveList.stream().map(fs -> {
|
||||
SpecStrategy st = getStrategyForType(fs.getProductType());
|
||||
ProductInfo pi = st != null ? st.build(fs) : null;
|
||||
return pi != null ? pi : buildProductInfoFallback(fs);
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
/*
|
||||
private ProductInfo buildProductInfo(FigureSave figureSave, PcRigidChain rigidChain) {
|
||||
@ -608,6 +802,16 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
return productInfo;
|
||||
}*/
|
||||
|
||||
//出图时如果不是标准的产品,而是零件图的话,变量会为空
|
||||
private ProductInfo buildProductInfoFallback(FigureSave figureSave) {
|
||||
ProductInfo productInfo = new ProductInfo();
|
||||
productInfo.setAssembledrawing(figureSave.getFigureNumber());
|
||||
productInfo.setNumber(String.valueOf(figureSave.getFigureNum()));
|
||||
productInfo.setSourcefile(figureSave.getDrawPath().replace("/", "\\"));
|
||||
productInfo.setVars(new DataInfo());
|
||||
return productInfo;
|
||||
}
|
||||
|
||||
private ProductInfo buildProductInfo(FigureSave figureSave, DeviceSpec35r device) {
|
||||
ProductInfo productInfo = new ProductInfo();
|
||||
productInfo.setAssembledrawing(figureSave.getFigureNumber());
|
||||
@ -618,6 +822,7 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
productInfo.setVars(datainfo);
|
||||
return productInfo;
|
||||
}
|
||||
|
||||
private ProductInfo buildProductInfo30S(FigureSave figureSave, DeviceSpec30s device) {
|
||||
ProductInfo productInfo = new ProductInfo();
|
||||
productInfo.setAssembledrawing(figureSave.getFigureNumber());
|
||||
@ -653,7 +858,9 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
setDataInfoFields(datainfo, device);
|
||||
}
|
||||
return datainfo;
|
||||
} private DataInfo buildDataInfo30S(DeviceSpec30s device) {
|
||||
}
|
||||
|
||||
private DataInfo buildDataInfo30S(DeviceSpec30s device) {
|
||||
DataInfo datainfo = new DataInfo();
|
||||
if (device != null) {
|
||||
setDataInfoFields(datainfo, device);
|
||||
@ -827,6 +1034,7 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
|
||||
/**
|
||||
* 创建35R变量实体
|
||||
*
|
||||
* @param datainfo
|
||||
* @param device
|
||||
*/
|
||||
@ -860,8 +1068,10 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
datainfo.setG6(Objects.toString(device.getG6(), ""));
|
||||
datainfo.setG7(Objects.toString(device.getG7(), ""));
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建30S变量实体
|
||||
*
|
||||
* @param datainfo
|
||||
* @param device
|
||||
*/
|
||||
@ -976,14 +1186,14 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
} catch (Exception ex) {
|
||||
try {
|
||||
emitter.send(SseEmitter.event().name("error").data(Objects.toString(ex.getMessage(), "error")));
|
||||
} catch (Exception ignore) {}
|
||||
} catch (Exception ignore) {
|
||||
}
|
||||
emitter.completeWithError(ex);
|
||||
}
|
||||
}).start();
|
||||
return emitter;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param id
|
||||
*/
|
||||
@ -1036,7 +1246,7 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
//如果这个是EY开头的那就取EY后面的数字 25 26 27 作为年份 2025 2026 2027
|
||||
try {
|
||||
String year = "2025"; // 默认2025
|
||||
|
||||
|
||||
if (productionCode != null) {
|
||||
if (productionCode.startsWith("EY")) {
|
||||
// EY开头,取第2位开始的两位 (索引2和3)
|
||||
@ -1118,7 +1328,7 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
String watermarkedPdfDir = arr + code + "/zip";
|
||||
String productionOrderNo = processOrderPro.getProductionOrderNo();
|
||||
|
||||
classifyPdfByWorkCenterToTarget(productionOrderNo,watermarkedPdfDir, code, arr + code + "/zip");
|
||||
classifyPdfByWorkCenterToTarget(productionOrderNo, watermarkedPdfDir, code, arr + code + "/zip");
|
||||
|
||||
// 8.1 删除 zip/ 根目录中未分类的 PDF 文件(只保留分类目录)
|
||||
File[] zipPdfFiles = new File(watermarkedPdfDir).listFiles((dir, name) -> name.toLowerCase().endsWith(".pdf"));
|
||||
@ -1185,7 +1395,7 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
/**
|
||||
* 将 PDF 按工作中心分类复制到目标目录(如 zip/工作中心/)
|
||||
*/
|
||||
private void classifyPdfByWorkCenterToTarget(String productionOrderNo,String sourceDirPath, String code, String targetBaseDirPath) {
|
||||
private void classifyPdfByWorkCenterToTarget(String productionOrderNo, String sourceDirPath, String code, String targetBaseDirPath) {
|
||||
/* //按工作中心 分类时 查找是否有采购申请单 和生产订单
|
||||
//获取这个项目的所有生产令号
|
||||
List<String> orderList = JdUtil.getOrderNumberCollection(productionOrderNo);
|
||||
@ -1211,9 +1421,9 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
unmovedMaterials.add(materialCode);
|
||||
workCenter = "未匹配订单";
|
||||
} else {*/
|
||||
workCenter = iProcessRouteService.getRouteCode(materialCode, code);
|
||||
if (iProductionOrderService.isPurchas(productionOrderNo, materialCode)) workCenter = "外购件";
|
||||
if (workCenter == null || workCenter.isEmpty()) workCenter = "无工段";
|
||||
workCenter = iProcessRouteService.getRouteCode(materialCode, code);
|
||||
if (iProductionOrderService.isPurchas(productionOrderNo, materialCode)) workCenter = "外购件";
|
||||
if (workCenter == null || workCenter.isEmpty()) workCenter = "无工段";
|
||||
/*}*/
|
||||
|
||||
File workCenterDir = new File(targetBaseDirPath, workCenter);
|
||||
@ -1433,7 +1643,6 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String uploadContractPDF(Integer id, String originalFilename, MultipartFile filePath) {
|
||||
if (id == null) {
|
||||
@ -1560,13 +1769,10 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
return projects;
|
||||
}
|
||||
|
||||
|
||||
// 辅助方法:将 java.util.Date 转换为 LocalDate
|
||||
private LocalDate convertToLocalDate(Date date) {
|
||||
if (date != null) {
|
||||
return date.toInstant()
|
||||
.atZone(ZoneId.systemDefault())
|
||||
.toLocalDate();
|
||||
return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@ -1611,9 +1817,7 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
List<MaterialBom> allBoms = materialBomService.selectByProCode(proRoot);
|
||||
|
||||
// 建立 routlist 的 Map 方便查找
|
||||
Map<String, ProcessRoute> routeMap1 = routlist.stream()
|
||||
.filter(r -> r.getMaterialCode() != null)
|
||||
.collect(Collectors.toMap(ProcessRoute::getMaterialCode, r -> r));
|
||||
Map<String, ProcessRoute> routeMap1 = routlist.stream().filter(r -> r.getMaterialCode() != null).collect(Collectors.toMap(ProcessRoute::getMaterialCode, r -> r));
|
||||
|
||||
// 合并数据
|
||||
for (ProcessRoute route : allRoutes) {
|
||||
@ -1639,9 +1843,7 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
// 合并 material keys
|
||||
LinkedHashSet<String> materialKeys = new LinkedHashSet<>();
|
||||
materialKeys.addAll(routeMap.keySet());
|
||||
orderMap.keySet().stream()
|
||||
.filter(key -> !materialKeys.contains(key))
|
||||
.forEach(materialKeys::add);
|
||||
orderMap.keySet().stream().filter(key -> !materialKeys.contains(key)).forEach(materialKeys::add);
|
||||
|
||||
for (String key : materialKeys) {
|
||||
List<ProcessRoute> processRoutes = routeMap.getOrDefault(key, Collections.emptyList());
|
||||
@ -1649,35 +1851,17 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
ProductionOrderVo orderVo = orderMap.get(key);
|
||||
|
||||
// 优先从 processRoutes 取值,其次才用 orderVo,最后才用 BOM 或 key
|
||||
String originalMaterialCode = !processRoutes.isEmpty()
|
||||
? processRoutes.get(0).getMaterialCode().trim()
|
||||
: (orderVo != null
|
||||
? (orderVo.getDrawingNo() != null ? orderVo.getDrawingNo().trim() : null)
|
||||
: (!materialBoms.isEmpty()
|
||||
? (materialBoms.get(0).getParentMaterialCode() != null ? materialBoms.get(0).getParentMaterialCode().trim() : null)
|
||||
: key));
|
||||
String originalMaterialCode = !processRoutes.isEmpty() ? processRoutes.get(0).getMaterialCode().trim() : (orderVo != null ? (orderVo.getDrawingNo() != null ? orderVo.getDrawingNo().trim() : null) : (!materialBoms.isEmpty() ? (materialBoms.get(0).getParentMaterialCode() != null ? materialBoms.get(0).getParentMaterialCode().trim() : null) : key));
|
||||
|
||||
String originalMaterialName = !processRoutes.isEmpty()
|
||||
? (processRoutes.get(0).getMaterialName() != null ? processRoutes.get(0).getMaterialName().trim() : null)
|
||||
: (orderVo != null ? (orderVo.getDrawingName() != null ? orderVo.getDrawingName().trim() : null) : null);
|
||||
String originalMaterialName = !processRoutes.isEmpty() ? (processRoutes.get(0).getMaterialName() != null ? processRoutes.get(0).getMaterialName().trim() : null) : (orderVo != null ? (orderVo.getDrawingName() != null ? orderVo.getDrawingName().trim() : null) : null);
|
||||
|
||||
String originalMaterial = !processRoutes.isEmpty()
|
||||
? (processRoutes.get(0).getMaterial() != null ? processRoutes.get(0).getMaterial().trim() : null)
|
||||
: (orderVo != null ? (orderVo.getMaterial() != null ? orderVo.getMaterial().trim() : null) : null);
|
||||
String originalMaterial = !processRoutes.isEmpty() ? (processRoutes.get(0).getMaterial() != null ? processRoutes.get(0).getMaterial().trim() : null) : (orderVo != null ? (orderVo.getMaterial() != null ? orderVo.getMaterial().trim() : null) : null);
|
||||
|
||||
Double originalUnitWeight = !processRoutes.isEmpty() ? processRoutes.get(0).getDiscWeight() : (orderVo != null ? orderVo.getSingleWeight() : null);
|
||||
// 新增两个数量字段
|
||||
Double unitQuantity = !processRoutes.isEmpty()
|
||||
? processRoutes.get(0).getUnitQuantity()
|
||||
: (orderVo != null ? orderVo.getQuantity() : null);
|
||||
Double unitQuantity = !processRoutes.isEmpty() ? processRoutes.get(0).getUnitQuantity() : (orderVo != null ? orderVo.getQuantity() : null);
|
||||
|
||||
Double batchQuantity = !processRoutes.isEmpty()
|
||||
? (processRoutes.get(0).getBatchQuantity() != null ? processRoutes.get(0).getBatchQuantity() : 0)
|
||||
: (orderVo != null
|
||||
? (orderVo.getBatchQuantity() != null
|
||||
? Double.valueOf(orderVo.getBatchQuantity())
|
||||
: null)
|
||||
: null);
|
||||
Double batchQuantity = !processRoutes.isEmpty() ? (processRoutes.get(0).getBatchQuantity() != null ? processRoutes.get(0).getBatchQuantity() : 0) : (orderVo != null ? (orderVo.getBatchQuantity() != null ? Double.valueOf(orderVo.getBatchQuantity()) : null) : null);
|
||||
|
||||
int maxSize = Math.max(processRoutes.size(), materialBoms.size());
|
||||
if (maxSize == 0 && orderVo != null) maxSize = 1;
|
||||
@ -1755,19 +1939,7 @@ public class ProcessOrderProServiceImpl implements IProcessOrderProService {
|
||||
return R.ok(jsonStr == null ? "" : jsonStr);
|
||||
}
|
||||
|
||||
public static String[] getNullPropertyNames(Object source) {
|
||||
BeanWrapper src = new BeanWrapperImpl(source);
|
||||
java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors();
|
||||
|
||||
Set<String> emptyNames = new HashSet<>();
|
||||
for (java.beans.PropertyDescriptor pd : pds) {
|
||||
Object srcValue = src.getPropertyValue(pd.getName());
|
||||
if (srcValue == null) emptyNames.add(pd.getName());
|
||||
}
|
||||
return emptyNames.toArray(new String[0]);
|
||||
}
|
||||
|
||||
public static void copyPropertiesIgnoreNull(Object src, Object target) {
|
||||
BeanUtils.copyProperties(src, target, getNullPropertyNames(src));
|
||||
private interface SpecStrategy {
|
||||
ProductInfo build(FigureSave figureSave);
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.system.domain.ProcessOrderPro;
|
||||
import com.ruoyi.system.domain.vo.DesignerProjectSummaryVo;
|
||||
import com.ruoyi.system.domain.vo.ExpiryProjectVo;
|
||||
import com.ruoyi.system.domain.vo.OverdueProjectVo;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -24,6 +25,10 @@ import java.time.ZoneId;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.*;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
/**
|
||||
* 方案管理Service业务层处理
|
||||
*
|
||||
@ -231,4 +236,55 @@ public class ProcessPlanServiceImpl implements IProcessPlanService {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DesignerProjectSummaryVo> getDesignerProjectSummary() {
|
||||
Map<String, DesignerProjectSummaryVo> summaryMap = new HashMap<>();
|
||||
|
||||
// 获取时间点
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
// 本周一 (注意:Java DayOfWeek.MONDAY 是周一,如果需要周日作为第一天请调整)
|
||||
LocalDateTime weekStart = now.with(java.time.DayOfWeek.MONDAY).withHour(0).withMinute(0).withSecond(0).withNano(0);
|
||||
// 如果今天是周日,with(MONDAY) 会返回本周一(如果周一是第一天),或者上周一。
|
||||
// Java 的 with(DayOfWeek) 是调整到本周的某一天。
|
||||
// 为了确保逻辑正确,如果今天是周日(7),我们需要判断一周的起始。
|
||||
// 简单起见,假设 create_time >= 本周一即可。
|
||||
|
||||
LocalDateTime monthStart = now.withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
|
||||
LocalDateTime yearStart = now.withDayOfYear(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
|
||||
|
||||
// 1. 本周
|
||||
countByDesigner(weekStart, summaryMap, (vo, count) -> vo.setWeeklyCount(count));
|
||||
// 2. 本月
|
||||
countByDesigner(monthStart, summaryMap, (vo, count) -> vo.setMonthlyCount(count));
|
||||
// 3. 本年
|
||||
countByDesigner(yearStart, summaryMap, (vo, count) -> vo.setYearlyCount(count));
|
||||
|
||||
return new ArrayList<>(summaryMap.values());
|
||||
}
|
||||
|
||||
private void countByDesigner(LocalDateTime startTime, Map<String, DesignerProjectSummaryVo> summaryMap, BiConsumer<DesignerProjectSummaryVo, Long> setter) {
|
||||
QueryWrapper<ProcessPlan> wrapper = new QueryWrapper<>();
|
||||
wrapper.select("designer", "count(*) as count")
|
||||
.ge("create_time", startTime)
|
||||
.isNotNull("designer")
|
||||
.ne("designer", "")
|
||||
.groupBy("designer");
|
||||
|
||||
List<Map<String, Object>> list = baseMapper.selectMaps(wrapper);
|
||||
for (Map<String, Object> map : list) {
|
||||
String designer = (String) map.get("designer");
|
||||
Long count = ((Number) map.get("count")).longValue();
|
||||
|
||||
DesignerProjectSummaryVo vo = summaryMap.computeIfAbsent(designer, k -> {
|
||||
DesignerProjectSummaryVo newVo = new DesignerProjectSummaryVo();
|
||||
newVo.setDesigner(k);
|
||||
newVo.setWeeklyCount(0L);
|
||||
newVo.setMonthlyCount(0L);
|
||||
newVo.setYearlyCount(0L);
|
||||
return newVo;
|
||||
});
|
||||
setter.accept(vo, count);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -171,6 +171,22 @@ public class WlStockDataServiceImpl implements IWlStockDataService {
|
||||
|
||||
@Override
|
||||
public List<WlStockData> generateDoc() {
|
||||
List<WlStockData> wlStockDataList = generateDataInternal();
|
||||
// 批量保存数据
|
||||
if (!wlStockDataList.isEmpty()) {
|
||||
boolean success = baseMapper.insertBatch(wlStockDataList);
|
||||
logger.info("批量插入{}条数据: {}", wlStockDataList.size(), success);
|
||||
logMessages("批量插入" + wlStockDataList.size() + "条数据成功");
|
||||
}
|
||||
return wlStockDataList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<WlStockData> generateStockDataOnly() {
|
||||
return generateDataInternal();
|
||||
}
|
||||
|
||||
private List<WlStockData> generateDataInternal() {
|
||||
List<SafetyStock> safetyStocks = safetyStockMapper.selectList();
|
||||
if (CollectionUtils.isEmpty(safetyStocks)) {
|
||||
logger.warn("没有找到安全库存数据");
|
||||
@ -203,13 +219,6 @@ public class WlStockDataServiceImpl implements IWlStockDataService {
|
||||
CompletableFuture.allOf(futures.toArray(new CompletableFuture[0]))
|
||||
.get(5, TimeUnit.MINUTES); // 设置整体超时时间
|
||||
|
||||
// 批量保存数据
|
||||
if (!wlStockDataList.isEmpty()) {
|
||||
boolean success = baseMapper.insertBatch(wlStockDataList);
|
||||
logger.info("批量插入{}条数据: {}", wlStockDataList.size(), success);
|
||||
logMessages("批量插入" + wlStockDataList.size() + "条数据成功");
|
||||
}
|
||||
|
||||
return wlStockDataList;
|
||||
|
||||
} catch (TimeoutException e) {
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
java包使用 `.` 分割 resource 目录使用 `/` 分割
|
||||
<br>
|
||||
此文件目的 防止文件夹粘连找不到 `xml` 文件
|
||||
@ -25,6 +25,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="bomStatus" column="bom_status"/>
|
||||
<result property="routeStatus" column="route_status"/>
|
||||
<result property="routeLog" column="route_log"/>
|
||||
<result property="routeUptime" column="route_uptime"/>
|
||||
<result property="planUptime" column="plan_uptime"/>
|
||||
<result property="bomUptime" column="bom_uptime"/>
|
||||
<result property="bomCount" column="bom_count"/>
|
||||
<result property="materialCount" column="material_count"/>
|
||||
<result property="routeCount" column="route_count"/>
|
||||
<result property="drawingBy" column="drawing_by"/>
|
||||
<result property="drawingTime" column="drawing_time"/>
|
||||
<result property="auditCardId" column="audit_card_id"/>
|
||||
<result property="notificationCardId" column="notification_card_id"/>
|
||||
</resultMap>
|
||||
<!-- 根据项目编号查询 -->
|
||||
<select id="selectByProjectNumber" resultType="com.ruoyi.system.domain.ProcessOrderPro">
|
||||
|
||||
@ -33,6 +33,7 @@
|
||||
<result property="planEndTime" column="plan_end_time"/>
|
||||
<result property="xuStartTime" column="xu_start_time"/>
|
||||
<result property="xuEndTime" column="xu_end_time"/>
|
||||
<result property="stateImportance" column="state_importance"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="existsByProcessNoAndMaterialCode" resultType="boolean">
|
||||
|
||||
2
spy.log
Normal file
2
spy.log
Normal file
@ -0,0 +1,2 @@
|
||||
1753766028406|1|statement|connection 0|url jdbc:mysql://192.168.5.121:3306/item_retrieval-evo?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true|SELECT oss_config_id, config_key, access_key, secret_key, bucket_name, prefix, endpoint, domain, is_https, region, status, ext1, remark, access_policy, create_by, create_time, update_by, update_time FROM sys_oss_config|SELECT oss_config_id, config_key, access_key, secret_key, bucket_name, prefix, endpoint, domain, is_https, region, status, ext1, remark, access_policy, create_by, create_time, update_by, update_time FROM sys_oss_config
|
||||
1759114213618|1|statement|connection 0|url jdbc:mysql://192.168.5.121:3306/item_retrieval-evo?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true|SELECT oss_config_id, config_key, access_key, secret_key, bucket_name, prefix, endpoint, domain, is_https, region, status, ext1, remark, access_policy, create_by, create_time, update_by, update_time FROM sys_oss_config|SELECT oss_config_id, config_key, access_key, secret_key, bucket_name, prefix, endpoint, domain, is_https, region, status, ext1, remark, access_policy, create_by, create_time, update_by, update_time FROM sys_oss_config
|
||||
Loading…
Reference in New Issue
Block a user