钉钉更新

This commit is contained in:
tzy 2026-02-13 09:28:59 +08:00
parent eafb53c54d
commit bc7f1c3b01
100 changed files with 4770 additions and 91309 deletions

View File

@ -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]

View File

@ -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

View File

@ -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

View File

@ -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]

View File

@ -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]

View File

@ -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]

View File

@ -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]

View File

@ -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]

View File

@ -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]

View File

@ -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]

View File

@ -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.

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -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

File diff suppressed because one or more lines are too long

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View 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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View 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

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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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
View File

@ -1,4 +1,4 @@
{
"requires": true,
"lockfileVersion": 1,
"dependencies": {

View File

@ -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("当前系统没有开启短信功能!");
}

View File

@ -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);
}
}

View File

@ -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);

View File

@ -150,6 +150,7 @@ security:
- /system/mrp/**
- /system/orderPro/**
- /system/cost/**
- /ding/callback/**
# MyBatisPlus配置
# https://baomidou.com/config/
@ -290,4 +291,13 @@ management:
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

View File

@ -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

View File

@ -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>

View File

@ -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;
}

View File

@ -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));
}
}

View File

@ -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());
}
}
}

View File

@ -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 + "&timestamp=" + 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 + "&timestamp=" + 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,8 +433,35 @@ 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 文件路径
@ -171,8 +486,43 @@ 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
@ -225,6 +575,7 @@ public class DingUtil {
/**
* 机器人发送群聊消息支持 Map 直接传入
*
* @param accessToken AccessToken
* @param msgContent 消息内容 Map
* @param msgKey 消息模板 Key
@ -233,13 +584,7 @@ public class DingUtil {
* @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 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_nobom_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);
}
}
}

View File

@ -55,4 +55,5 @@ public enum BusinessType {
* 清空数据
*/
CLEAN,
uploadDwg
}

View File

@ -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());

View File

@ -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()

View File

@ -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();

View File

@ -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);
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);
}
} 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);
}

View File

@ -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());
@ -1332,7 +1307,6 @@ public class ProcessOrderProController extends BaseController {
}
}
}
}
// 用生成的 routes 替换原始 routeList保持原序展开后的结构用于后续导出
routeList = routes;
// 2. 读取原始表数据
@ -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,9 +1856,6 @@ 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());
@ -1910,14 +1880,11 @@ public class ProcessOrderProController extends BaseController {
} else {
bomMap.put("discUsage", b.getQuantity());
}
bomMap.put("bomUnit", b.getUnit());
kingdeeBomRows.add(bomMap);
}
}
}
}
// 用生成的 routes 替换原始 routeList保持原序展开后的结构用于后续导出
routeList = routes;
// 2. 读取原始表数据

View File

@ -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());
}
/**
* 获取方案管理详细信息
*

View File

@ -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的第七个sheetindex=6
try (ExcelWriter excelWriter = EasyExcel.write(os)
.withTemplate(file) // 指定模板文件
.autoCloseStream(true)
.build()) {
try (ExcelWriter excelWriter = EasyExcel.write(os).withTemplate(file) // 指定模板文件
.autoCloseStream(true).build()) {
// 写入到第七个 sheetindex=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.setBatchQuantity(materialAndRoute != null ? materialAndRoute.getBenpi() : null);
if (materialAndRoute != null && materialAndRoute.getDantai() != null) {
processRoute.setFirstBatchQuantity(Double.valueOf(materialAndRoute.getDantai()));
List<MaterialUseDTO> materialUsageDTOList = materialAndRoute.getMaterialUseDTOS();
} 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 (materialUsageDTO.getChildUnit().equals("")) {
if ("".equals(materialUsageDTO.getChildUnit())) {
if (materialUsageDTO.getFenmu() != null) {
processRoute.setDiscUsage(String.valueOf(Double.valueOf(materialUsageDTO.getFenmu())));
} else {
processRoute.setDiscUsage(String.valueOf((double) (materialUsageDTO.getFenzi() / materialUsageDTO.getFenmu())));
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);
}
}
}
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,16 +970,15 @@ 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 {
public R updateProductionOrders(@RequestParam("rooteProdet") String rooteProdet, @RequestParam("cangKuNum") String cangKuNum) throws Exception {
//判断此项目是否有
List<String> list = iProcessRouteService.updateProductionOrders(rooteProdet,cangKuNum);
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);
}
}

View File

@ -110,4 +110,9 @@ public class BomDetails extends BaseEntity {
*bom类型
*/
private String bomType;
/**
*重要程度
*/
@JsonProperty("F_HBYT_ZYCD")
private String stateImportance;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -83,4 +83,8 @@ public class BomDetailsBo extends BaseEntity {
*bom类型
*/
private String bomType;
/**
* 重要程度
*/
private String stateImportance;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -107,4 +107,9 @@ public class BomDetailsVo {
*bom类型
*/
private String bomType;
/**
*重要程度
*/
@ExcelProperty(value = "重要程度")
private String stateImportance;
}

View File

@ -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;
}

View File

@ -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;

View File

@ -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());

View File

@ -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接口
*

View File

@ -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坐标
}
}

View File

@ -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();
}

View File

@ -49,5 +49,10 @@ public interface IWlStockDataService {
List<WlStockData> generateDoc();
/**
* 生成安全库存数据但不存入数据库
*/
List<WlStockData> generateStockDataOnly();
List<String> getLogs(int lastIndex);
}

View File

@ -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
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 -> {
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;
}).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
*/
@ -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);
@ -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);
}
}

View File

@ -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);
}
}
}

View File

@ -52,7 +52,7 @@ import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
import static com.ruoyi.system.controller.BomDetailsController.*;
import static com.ruoyi.system.controller.BomDetailsController.isMaterialVerification;
import static com.ruoyi.system.runner.JdUtil.updateCgOrder1;
import static com.ruoyi.system.runner.JsonConverter.createProcessModel;
import static com.ruoyi.system.runner.updatePcessPlanConver.updatePcessPlan1;
@ -67,6 +67,13 @@ import static com.ruoyi.system.runner.updatePcessPlanConver.updatePcessPlan2;
@RequiredArgsConstructor
@Service
public class ProcessRouteServiceImpl implements IProcessRouteService {
private static final Logger log = LoggerFactory.getLogger(ProcessRouteController.class);
private static final Logger logger = LoggerFactory.getLogger(IProcessRouteService.class);
// 全局线程池核心线程10最大线程50存活60s有界队列
private static final ExecutorService GLOBAL_EXECUTOR = new ThreadPoolExecutor(10, 50, 60L, TimeUnit.SECONDS, new LinkedBlockingQueue<>(1000), Executors.defaultThreadFactory(), new ThreadPoolExecutor.CallerRunsPolicy() // 队列满时由调用线程执行防止丢任务
);
// 单据锁 Map
private static final ConcurrentHashMap<String, Object> BILL_LOCK = new ConcurrentHashMap<>();
private final IImMaterialService imMaterialService;
private final IBomDetailsService iBomDetailsService;
private final MssqlQueryService sqlQueryService;
@ -79,19 +86,50 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
private final ProductionRouteTwoMapper productionRouteTwoMapper;
private final ProcessOrderProMapper processOrderProMapper;
private static final Logger log = LoggerFactory.getLogger(ProcessRouteController.class);
private static final Logger logger = LoggerFactory.getLogger(IProcessRouteService.class);
public static JdHuoZhu getFIDToProductionOrder(PlanOrderVo planOrder) {
K3CloudApi client = new K3CloudApi();
JsonObject json = new JsonObject();
json.addProperty("FormId", "PRD_MO");
json.addProperty("FieldKeys", "FTreeEntity_FENTRYID,FID");
// 全局线程池核心线程10最大线程50存活60s有界队列
private static final ExecutorService GLOBAL_EXECUTOR = new ThreadPoolExecutor(
10, 50, 60L, TimeUnit.SECONDS,
new LinkedBlockingQueue<>(1000),
Executors.defaultThreadFactory(),
new ThreadPoolExecutor.CallerRunsPolicy() // 队列满时由调用线程执行防止丢任务
);
JsonArray filterString = new JsonArray();
JsonObject filterObject = new JsonObject();
filterObject.addProperty("FieldName", "FBillNo");
filterObject.addProperty("Compare", "=");
filterObject.addProperty("Value", planOrder.getFBillNo());
filterObject.addProperty("Left", "");
filterObject.addProperty("Right", "");
filterObject.addProperty("Logic", 0);
filterString.add(filterObject);
// 单据锁 Map
private static final ConcurrentHashMap<String, Object> BILL_LOCK = new ConcurrentHashMap<>();
json.add("FilterString", filterString);
json.addProperty("OrderString", "");
json.addProperty("TopRowCount", 0);
json.addProperty("StartRow", 0);
json.addProperty("Limit", 2000);
json.addProperty("SubSystemId", "");
String jsonData = json.toString();
try {
String resultJson = String.valueOf(client.billQuery(jsonData));
JsonArray jsonArray = new Gson().fromJson(resultJson, JsonArray.class);
if (jsonArray != null && jsonArray.size() > 0) {
ObjectMapper objectMapper = new ObjectMapper();
List<JdHuoZhu> jinYongDTOList = objectMapper.readValue(jsonArray.toString(), new TypeReference<List<JdHuoZhu>>() {
});
if (jinYongDTOList != null && !jinYongDTOList.isEmpty()) {
return jinYongDTOList.get(0); // 返回第一个对象
}
} else {
log.warn("未找到与次生产订单的FID {} 相关的记录", planOrder.getFBillNo());
}
} catch (Exception e) {
log.error("调用接口时发生异常: " + e.getMessage(), e);
}
return null; // 如果没有找到返回 null
}
/**
* 查询工艺路线
@ -135,8 +173,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
// 获取工艺表中材质为总装部件的物料编码和名称
LambdaQueryWrapper<ProcessRoute> lqwRoute = buildQueryWrapper(bo);
lqwRoute.eq(ProcessRoute::getMaterial, "总装部件")
.eq(ProcessRoute::getRouteDescription, bo.getRouteDescription());
lqwRoute.eq(ProcessRoute::getMaterial, "总装部件").eq(ProcessRoute::getRouteDescription, bo.getRouteDescription());
List<ProcessRoute> processRoutes = baseMapper.selectList(lqwRoute);
if (!processRoutes.isEmpty()) {
@ -183,8 +220,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
sortedList.add(processRouteVo);
// 获取到工艺路线对应的BOM 数量
List<BomDetails> bomDetails = iBomDetailsService.selectByFNumberAndTotalWeight(
processRoute.getMaterialCode(), processRoute.getRouteDescription());
List<BomDetails> bomDetails = iBomDetailsService.selectByFNumberAndTotalWeight(processRoute.getMaterialCode(), processRoute.getRouteDescription());
// 如果 BOM 详情不为空为每个 BOM 详情创建一个新的对象
if (bomDetails != null && !bomDetails.isEmpty()) {
@ -208,8 +244,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
// 找到对应的 ProcessRouteVo 位置并插入
for (int i = 0; i < sortedList.size(); i++) {
ProcessRoute existingVo = sortedList.get(i);
if (existingVo.getMaterialCode().equals(bomDetailsVo.getMaterialCode()) &&
existingVo.getMaterialName().equals(bomDetailsVo.getMaterialName())) {
if (existingVo.getMaterialCode().equals(bomDetailsVo.getMaterialCode()) && existingVo.getMaterialName().equals(bomDetailsVo.getMaterialName())) {
sortedList.add(i, bomDetailsVo); // 插入到匹配的 ProcessRouteVo 之前
addedKeys.add(key); // 记录已添加的键
break;
@ -261,8 +296,8 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
continue;
}
//获取固定工艺路线和物料清单
List<ProcessRouteDTO> routeList = JdUtil.getRouteGuDing(rooteProdet);
List<MaterialUseDTO> materialUseX = JdUtil.getMaterialUseX(rooteProdet);
List<ProcessRouteDTO> routeList = JdUtil.getRouteGuDing(processRoute.getMaterialCode());
List<MaterialUseDTO> materialUseX = JdUtil.getMaterialUseX(processRoute.getMaterialCode());
if (materialUseX == null || routeList == null) {
continue;
}
@ -285,7 +320,6 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
return materialAndRouteList;
}
/**
* @param materialCode
* @return
@ -294,9 +328,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
public String getRouteCode(String materialCode, String code) {
LambdaQueryWrapper<ProcessRoute> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessRoute::getMaterialCode, materialCode)
.eq(ProcessRoute::getRouteDescription, code)
.eq(ProcessRoute::getProcessNo, "10");
wrapper.eq(ProcessRoute::getMaterialCode, materialCode).eq(ProcessRoute::getRouteDescription, code).eq(ProcessRoute::getProcessNo, "10");
ProcessRoute processRoute = baseMapper.selectOne(wrapper);
if (processRoute == null) {
return "无工段";
@ -334,28 +366,19 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
@Override
public ProcessRoute getProcessRoutesXuTime(String productionOrderNo, String materialCode, String xu) {
LambdaQueryWrapper<ProcessRoute> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessRoute::getRouteDescription, productionOrderNo)
.eq(ProcessRoute::getMaterialCode, materialCode)
.eq(ProcessRoute::getProcessNo, xu);
wrapper.eq(ProcessRoute::getRouteDescription, productionOrderNo).eq(ProcessRoute::getMaterialCode, materialCode).eq(ProcessRoute::getProcessNo, xu);
if (baseMapper.selectOne(wrapper) != null) {
return baseMapper.selectOne(wrapper);
}
return null;
}
private String generateKey1(BomDetails bomDetail, ProcessRoute processRoute) {
return String.format("%s:%s:%s", processRoute.getMaterialCode(), processRoute.getMaterialName(), bomDetail.getName(), bomDetail.getPartNumber());
}
private List<BomDetails> filterBomDetails(List<BomDetails> bomDetails) {
return bomDetails.stream()
.filter(bom -> bom != null &&
bom.getPartNumber() != null &&
!bom.getPartNumber().startsWith("009") &&
!bom.getPartNumber().startsWith(" ") &&
(bom.getRemarks() == null || !bom.getRemarks().contains("伊特")))
.collect(Collectors.toList());
return bomDetails.stream().filter(bom -> bom != null && bom.getPartNumber() != null && !bom.getPartNumber().startsWith("009") && !bom.getPartNumber().startsWith(" ") && (bom.getRemarks() == null || !bom.getRemarks().contains("伊特"))).collect(Collectors.toList());
}
private void addProcessRoutesFromBomDetail(BomDetails bomDetail, List<ProcessRoute> sortedList) {
@ -366,23 +389,19 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
private LambdaQueryWrapper<ProcessRoute> buildQueryWrapper(ProcessRouteBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<ProcessRoute> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getRouteDescription()), ProcessRoute::getRouteDescription,
bo.getRouteDescription());
lqw.eq(StringUtils.isNotBlank(bo.getRouteDescription()), ProcessRoute::getRouteDescription, bo.getRouteDescription());
lqw.eq(StringUtils.isNotBlank(bo.getMaterialCode()), ProcessRoute::getMaterialCode, bo.getMaterialCode());
lqw.like(StringUtils.isNotBlank(bo.getMaterialName()), ProcessRoute::getMaterialName, bo.getMaterialName());
lqw.eq(StringUtils.isNotBlank(bo.getBomUnit()), ProcessRoute::getBomUnit, bo.getBomUnit());
lqw.eq(bo.getProcessNo() != null, ProcessRoute::getProcessNo, bo.getProcessNo());
lqw.eq(StringUtils.isNotBlank(bo.getWorkCenter()), ProcessRoute::getWorkCenter, bo.getWorkCenter());
lqw.like(StringUtils.isNotBlank(bo.getProcessName()), ProcessRoute::getProcessName, bo.getProcessName());
lqw.eq(StringUtils.isNotBlank(bo.getRawMaterialCode()), ProcessRoute::getRawMaterialCode,
bo.getRawMaterialCode());
lqw.like(StringUtils.isNotBlank(bo.getRawMaterialName()), ProcessRoute::getRawMaterialName,
bo.getRawMaterialName());
lqw.eq(StringUtils.isNotBlank(bo.getRawMaterialCode()), ProcessRoute::getRawMaterialCode, bo.getRawMaterialCode());
lqw.like(StringUtils.isNotBlank(bo.getRawMaterialName()), ProcessRoute::getRawMaterialName, bo.getRawMaterialName());
lqw.eq(StringUtils.isNotBlank(bo.getBomMaterial()), ProcessRoute::getBomMaterial, bo.getBomMaterial());
lqw.eq(bo.getDiscWeight() != null, ProcessRoute::getDiscWeight, bo.getDiscWeight());
lqw.eq(bo.getDiscUsage() != null, ProcessRoute::getDiscUsage, bo.getDiscUsage());
lqw.eq(StringUtils.isNotBlank(bo.getProcessDescription()), ProcessRoute::getProcessDescription,
bo.getProcessDescription());
lqw.eq(StringUtils.isNotBlank(bo.getProcessDescription()), ProcessRoute::getProcessDescription, bo.getProcessDescription());
lqw.eq(StringUtils.isNotBlank(bo.getProcessControl()), ProcessRoute::getProcessControl, bo.getProcessControl());
lqw.eq(bo.getActivityDuration() != null, ProcessRoute::getActivityDuration, bo.getActivityDuration());
lqw.eq(StringUtils.isNotBlank(bo.getActivityUnit()), ProcessRoute::getActivityUnit, bo.getActivityUnit());
@ -405,17 +424,13 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
try {
ProcessRoute add = BeanUtil.toBean(bo, ProcessRoute.class);
// 查询是否存在重复序号
if (baseMapper.existsByProcessNoAndMaterialCode(
add.getProcessNo(),
add.getMaterialCode())) {
if (baseMapper.existsByProcessNoAndMaterialCode(add.getProcessNo(), add.getMaterialCode())) {
throw new ServiceException("序号重复,请重新输入");
}
// 1.查询当前物料的所有工序关系
LambdaQueryWrapper<ProcessRoute> route = new LambdaQueryWrapper<>();
route.eq(ProcessRoute::getMaterialCode, add.getMaterialCode())
.eq(ProcessRoute::getMaterialName, add.getMaterialName())
.eq(ProcessRoute::getRouteDescription, add.getRouteDescription());
route.eq(ProcessRoute::getMaterialCode, add.getMaterialCode()).eq(ProcessRoute::getMaterialName, add.getMaterialName()).eq(ProcessRoute::getRouteDescription, add.getRouteDescription());
List<ProcessRoute> routeList = baseMapper.selectList(route);
// 2. 校验连续工序中相同工作中心的工序控制码
@ -424,10 +439,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
}
// 3. 更新所有比新序号大的工艺路线
baseMapper.updateProcessNoAfterInsert(
add.getProcessNo(),
add.getMaterialCode(),
add.getRouteDescription());
baseMapper.updateProcessNoAfterInsert(add.getProcessNo(), add.getMaterialCode(), add.getRouteDescription());
// 4. 保存前的实体校验
validEntityBeforeSave(add);
@ -462,8 +474,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
}
// 查找连续相同工作中心的最后一个工序
int j = i;
while (j + 1 < routeList.size() &&
routeList.get(j + 1).getWorkCenter().equals(current.getWorkCenter())) {
while (j + 1 < routeList.size() && routeList.get(j + 1).getWorkCenter().equals(current.getWorkCenter())) {
j++;
}
// 设置工序控制码
@ -504,10 +515,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
if (!oldRoute.getProcessNo().equals(update.getProcessNo())) {
// 检查新工序号是否已存在排除当前记录
LambdaQueryWrapper<ProcessRoute> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessRoute::getProcessNo, update.getProcessNo())
.eq(ProcessRoute::getMaterialCode, update.getMaterialCode())
.eq(ProcessRoute::getRouteDescription, update.getRouteDescription())
.ne(ProcessRoute::getId, update.getId());
wrapper.eq(ProcessRoute::getProcessNo, update.getProcessNo()).eq(ProcessRoute::getMaterialCode, update.getMaterialCode()).eq(ProcessRoute::getRouteDescription, update.getRouteDescription()).ne(ProcessRoute::getId, update.getId());
if (baseMapper.selectCount(wrapper) > 0) {
throw new ServiceException("该物料编码的工艺序号已存在,请选择其他序号");
@ -516,9 +524,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
// 3. 获取当前物料的所有工序关系
LambdaQueryWrapper<ProcessRoute> route = new LambdaQueryWrapper<>();
route.eq(ProcessRoute::getMaterialCode, update.getMaterialCode())
.eq(ProcessRoute::getMaterialName, update.getMaterialName())
.eq(ProcessRoute::getRouteDescription, update.getRouteDescription());
route.eq(ProcessRoute::getMaterialCode, update.getMaterialCode()).eq(ProcessRoute::getMaterialName, update.getMaterialName()).eq(ProcessRoute::getRouteDescription, update.getRouteDescription());
List<ProcessRoute> routeList = baseMapper.selectList(route);
// 4. 更新当前记录到列表中
@ -560,8 +566,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
for (Long id : ids) {
ProcessRoute processRoute = baseMapper.selectById(id);
LambdaQueryWrapper<ProcessRoute> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessRoute::getMaterialCode, processRoute.getMaterialCode())
.eq(ProcessRoute::getProcessDescription, processRoute.getProcessDescription());
wrapper.eq(ProcessRoute::getMaterialCode, processRoute.getMaterialCode()).eq(ProcessRoute::getProcessDescription, processRoute.getProcessDescription());
List<ProcessRoute> routeList = baseMapper.selectList(wrapper);
// 判断当前集合里的元素是不是只剩一个只剩下一个就不能删除
@ -578,10 +583,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
ProcessRoute processRoute = cunList.get(0);
// 获取删除后其他的 工序,然后更新工序号
LambdaQueryWrapper<ProcessRoute> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessRoute::getRouteDescription, processRoute.getRouteDescription())
.eq(ProcessRoute::getMaterialCode, processRoute.getMaterialCode())
.eq(ProcessRoute::getMaterialName, processRoute.getMaterialName())
.isNotNull(ProcessRoute::getProcessNo);
wrapper.eq(ProcessRoute::getRouteDescription, processRoute.getRouteDescription()).eq(ProcessRoute::getMaterialCode, processRoute.getMaterialCode()).eq(ProcessRoute::getMaterialName, processRoute.getMaterialName()).isNotNull(ProcessRoute::getProcessNo);
List<ProcessRoute> routeList = baseMapper.selectList(wrapper);
// 工序号升序排序
routeList.sort(Comparator.comparing(ProcessRoute::getProcessNo));
@ -613,6 +615,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
public boolean saveData(List<ProcessRouteVo> routeVoList, List<ProductionOrderVo> productionOrderVos) {
List<ProcessRoute> processRoutes = BeanUtil.copyToList(routeVoList, ProcessRoute.class);
processMaterialBom(processRoutes);
//将工序计划表和总装BOM的BOM存入BOM表中
List<BomDetailsVo> bomDetailsVos = processBomDetails(routeVoList, productionOrderVos);
saveBomDetails(bomDetailsVos);
List<ProcessRoute> routeArrayList = new ArrayList<>();
@ -621,17 +624,9 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
boolean allEmpty = processRoutes.stream().allMatch(route -> route.getProcessNo() == null && route.getProcessName() == null);
//获取工艺中所有的时间 挑选出最早的时间和最晚的时间
// 获取最早的开始时间
Date earliestStartTime = processRoutes.stream()
.filter(route -> route.getXuStartTime() != null)
.min(Comparator.comparing(ProcessRoute::getXuStartTime))
.map(ProcessRoute::getXuStartTime)
.orElse(null);
Date earliestStartTime = processRoutes.stream().filter(route -> route.getXuStartTime() != null).min(Comparator.comparing(ProcessRoute::getXuStartTime)).map(ProcessRoute::getXuStartTime).orElse(null);
// 获取最晚的结束时间
Date latestEndTime = processRoutes.stream()
.filter(route -> route.getXuEndTime() != null)
.max(Comparator.comparing(ProcessRoute::getXuEndTime))
.map(ProcessRoute::getXuEndTime)
.orElse(null);
Date latestEndTime = processRoutes.stream().filter(route -> route.getXuEndTime() != null).max(Comparator.comparing(ProcessRoute::getXuEndTime)).map(ProcessRoute::getXuEndTime).orElse(null);
//更新至计划模块中
if (earliestStartTime != null && latestEndTime != null) {
ProcessOrderPro processOrderPro = processOrderProMapper.selectByProjectNumber(processRoutes.get(0).getRouteDescription());
@ -643,14 +638,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
}
if (allEmpty && !processRoutes.isEmpty()) {
List<String> duplicateWeldingMaterials = processRoutes.stream()
.filter(route -> "组焊件".equals(route.getMaterial()))
.map(ProcessRoute::getMaterialCode)
.collect(Collectors.groupingBy(code -> code, Collectors.counting()))
.entrySet().stream()
.filter(entry -> entry.getValue() > 1)
.map(Map.Entry::getKey)
.collect(Collectors.toList());
List<String> duplicateWeldingMaterials = processRoutes.stream().filter(route -> "组焊件".equals(route.getMaterial())).map(ProcessRoute::getMaterialCode).collect(Collectors.groupingBy(code -> code, Collectors.counting())).entrySet().stream().filter(entry -> entry.getValue() > 1).map(Map.Entry::getKey).collect(Collectors.toList());
Set<String> processedWeldingMaterials = new HashSet<>();
@ -729,34 +717,23 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
}
} else {
Date now = new Date();
// 先组装 routeArrayList
routeArrayList = processRoutes.stream()
.filter(pr -> pr.getProcessNo() != null
|| pr.getWorkCenter() != null
|| pr.getProcessName() != null)
.map(pr -> {
routeArrayList = processRoutes.stream().filter(pr -> pr.getProcessNo() != null || pr.getWorkCenter() != null || pr.getProcessName() != null).map(pr -> {
// 如果描述为空则用工序控制码
if (pr.getProcessDescription() == null || pr.getProcessDescription().isEmpty()) {
pr.setProcessDescription(pr.getProcessName());
}
// 公共逻辑
//此时工艺未审核
pr.setActivityUnit("");
pr.setCreateTime(now);
pr.setUpdateTime(now);
return pr;
})
.collect(Collectors.toList());
}).collect(Collectors.toList());
// 校验是否存在相同物料编码 + 相同工序号
Set<String> duplicateKeys = routeArrayList.stream()
.map(pr -> pr.getMaterialCode() + "-" + pr.getProcessNo())
.filter(Objects::nonNull)
.collect(Collectors.groupingBy(key -> key, Collectors.counting()))
.entrySet().stream()
.filter(e -> e.getValue() > 1)
.map(Map.Entry::getKey)
.collect(Collectors.toSet());
Set<String> duplicateKeys = routeArrayList.stream().map(pr -> pr.getMaterialCode() + "-" + pr.getProcessNo()).filter(obj -> true).collect(Collectors.groupingBy(key -> key, Collectors.counting())).entrySet().stream().filter(e -> e.getValue() > 1).map(Map.Entry::getKey).collect(Collectors.toSet());
if (!duplicateKeys.isEmpty()) {
log.error("发现重复的物料编码+工序号组合: {}", duplicateKeys);
@ -764,6 +741,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
}
}
try {
return baseMapper.insertBatch(routeArrayList);
} catch (Exception e) {
log.error("批量插入工艺路线失败", e);
@ -771,7 +749,6 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
}
}
private void processMaterialBom(List<ProcessRoute> processRoutes) {
for (ProcessRoute processRoute : processRoutes) {
if (processRoute.getRawMaterialCode() != null && processRoute.getRawMaterialName() != null) {
@ -859,8 +836,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
String drawingNo = productionOrderVo.getDrawingNo();
String remark = productionOrderVo.getRemark();
if (drawingNo != null) {
if (isOutsourced(drawingNo) || (remark != null && remark.contains("外购件"))
|| drawingNo.startsWith("DIN") || drawingNo.startsWith("DNS") || drawingNo.startsWith("SF") || drawingNo.startsWith(" ") || drawingNo.startsWith("009")) {
if (isOutsourced(drawingNo) || (remark != null && remark.contains("外购件")) || drawingNo.startsWith("DIN") || drawingNo.startsWith("DNS") || drawingNo.startsWith("SF") || drawingNo.startsWith(" ") || drawingNo.startsWith("009")) {
bomDetails.setStats("外购");
} else {
bomDetails.setStats("自制");
@ -895,6 +871,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
bomDetails.setFName(processRoute.getMaterialName());
bomDetails.setPartNumber(processRoute.getRawMaterialCode());
bomDetails.setName(processRoute.getRawMaterialName());
bomDetails.setStateImportance(processRoute.getStateImportance());
bomDetails.setBomType("0");
// 添加单重验证和日志
Double discWeight = processRoute.getDiscWeight();
@ -930,7 +907,6 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
return bomDetails;
}
public int loadMaterialPreservation(BomDetails bomDetails1, String states) {
K3CloudApi client = new K3CloudApi();
// 创建一个空的JsonObject
@ -1083,11 +1059,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
JsonObject fBOMUnitId = new JsonObject();
fBOMUnitId.addProperty("FNumber", "jian");
subHeadEntity5.add("FBOMUnitId", fBOMUnitId);
if (states.equals("1")) {
subHeadEntity5.addProperty("FIsMainPrd", false);
} else {
subHeadEntity5.addProperty("FIsMainPrd", true);
}
subHeadEntity5.addProperty("FIsMainPrd", !states.equals("1"));
subHeadEntity5.addProperty("FIssueType", "1");
// 创建FPickStockId对象并加入SubHeadEntity5
@ -1125,12 +1097,10 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
}
private boolean isOutsourced(String code) {
return code.startsWith("009") || code.startsWith("AA") || code.startsWith("AB(") ||
code.startsWith("AC(") || code.startsWith("015") || code.contains("(M)") || code.startsWith("BC(");
return code.startsWith("009") || code.startsWith("AA") || code.startsWith("AB(") || code.startsWith("AC(") || code.startsWith("015") || code.contains("(M)") || code.startsWith("BC(");
}
// 保存到 BomDetails 表中
//TODO: 使用本地库加速
private void saveBomDetails(List<BomDetailsVo> bomDetailsVos) {
List<BomDetails> materialsToAdd = new ArrayList<>();
for (BomDetailsVo bomDetailsVo : bomDetailsVos) {
@ -1162,8 +1132,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
List<ProcessRoute> processRoutes = baseMapper.selectList();
ArrayList<ProcessRoute> routeArrayList = new ArrayList<>();
for (ProcessRoute processRoute : processRoutes) {
if (processRoute.getMaterial().equals("组焊件")
&& processRoute.getMaterialCode().equals(Bo.getMaterialCode())) {
if (processRoute.getMaterial().equals("组焊件") && processRoute.getMaterialCode().equals(Bo.getMaterialCode())) {
routeArrayList.add(processRoute);
}
}
@ -1198,14 +1167,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
@Override
public List<ProcessRoute> getRawBom(String rooteProdet) {
LambdaQueryWrapper<ProcessRoute> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessRoute::getRouteDescription, rooteProdet)
.ne(ProcessRoute::getMaterial, "组焊件")
.isNotNull(ProcessRoute::getRawMaterialCode)
.ne(ProcessRoute::getRawMaterialCode, "")
.isNotNull(ProcessRoute::getRawMaterialName)
.ne(ProcessRoute::getRawMaterialName, "")
.and(wrapper1 -> wrapper1.likeRight(ProcessRoute::getRawMaterialCode, "015")
.or().likeRight(ProcessRoute::getRawMaterialCode, "AB"));
wrapper.eq(ProcessRoute::getRouteDescription, rooteProdet).ne(ProcessRoute::getMaterial, "组焊件").isNotNull(ProcessRoute::getRawMaterialCode).ne(ProcessRoute::getRawMaterialCode, "").isNotNull(ProcessRoute::getRawMaterialName).ne(ProcessRoute::getRawMaterialName, "").and(wrapper1 -> wrapper1.likeRight(ProcessRoute::getRawMaterialCode, "015").or().likeRight(ProcessRoute::getRawMaterialCode, "AB"));
return baseMapper.selectList(wrapper);
}
@ -1217,17 +1179,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
public List<ProcessRouteXuDTO> getProcessRoute(String rooteProdet) {
// 查出所有的带工序的物料
LambdaQueryWrapper<ProcessRoute> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessRoute::getRouteDescription, rooteProdet).ne(ProcessRoute::getMaterialName, "")
.ne(ProcessRoute::getProcessName, "按图订制")
.ne(ProcessRoute::getProcessName, "按图定制")
.isNotNull(ProcessRoute::getMaterialName).ne(ProcessRoute::getMaterialCode, "")
.isNotNull(ProcessRoute::getMaterialCode).ne(ProcessRoute::getProcessNo, "")
.isNotNull(ProcessRoute::getProcessNo).ne(ProcessRoute::getProcessName, "")
.isNotNull(ProcessRoute::getProcessName).ne(ProcessRoute::getWorkCenter, "")
.isNotNull(ProcessRoute::getWorkCenter).ne(ProcessRoute::getProcessControl, "")
.isNotNull(ProcessRoute::getProcessControl).ne(ProcessRoute::getActivityDuration, "")
.isNotNull(ProcessRoute::getActivityDuration).ne(ProcessRoute::getActivityUnit, "")
.isNotNull(ProcessRoute::getActivityUnit);
wrapper.eq(ProcessRoute::getRouteDescription, rooteProdet).ne(ProcessRoute::getMaterialName, "").ne(ProcessRoute::getProcessName, "按图订制").ne(ProcessRoute::getProcessName, "按图定制").isNotNull(ProcessRoute::getMaterialName).ne(ProcessRoute::getMaterialCode, "").isNotNull(ProcessRoute::getMaterialCode).ne(ProcessRoute::getProcessNo, "").isNotNull(ProcessRoute::getProcessNo).ne(ProcessRoute::getProcessName, "").isNotNull(ProcessRoute::getProcessName).ne(ProcessRoute::getWorkCenter, "").isNotNull(ProcessRoute::getWorkCenter).ne(ProcessRoute::getProcessControl, "").isNotNull(ProcessRoute::getProcessControl).ne(ProcessRoute::getActivityDuration, "").isNotNull(ProcessRoute::getActivityDuration).ne(ProcessRoute::getActivityUnit, "").isNotNull(ProcessRoute::getActivityUnit);
List<ProcessRoute> processRoutes = baseMapper.selectList(wrapper);
// 存储按物料编码分组的 ProcessRouteXuDTO
@ -1273,6 +1225,16 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
@Override
public R<ProcessRoutePushResultDTO> pushRouteBom(String rooteProdet, String groupName) {
//先查询此项目的工艺状态是否审核
LambdaQueryWrapper<ProcessOrderPro> wq = new LambdaQueryWrapper<>();
wq.eq(ProcessOrderPro::getProductionOrderNo, rooteProdet);
ProcessOrderPro processOrderPro1 = processOrderProMapper.selectOne(wq);
if (processOrderPro1 != null && processOrderPro1.getRouteStatus() == 0) {
return R.fail("项目:" + processOrderPro1.getProductionOrderNo() + "工艺未审核,无法推送,请先审核");
}
if (processOrderPro1 != null && processOrderPro1.getRouteStatus() == 2) {
return R.fail("项目:" + processOrderPro1.getProductionOrderNo() + "工艺未通过,无法推送,请先审核");
}
List<ProcessRouteXuDTO> rawBomList = getProcessRoute(rooteProdet);
List<ProcessRouteXuDTO> successfulRoutes = new ArrayList<>();
List<ProcessRouteXuDTO> failedRoutes = new ArrayList<>();
@ -1329,8 +1291,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
for (ProcessRouteXuDTO processRouteXuDTO : rawBomList) {
// 获取金蝶中的此物料工艺路线,在金蝶查询可能有多条工艺路线
List<ProcessRouteSelectDTO> jdProcessRoute = getSelectProcessRoute(processRouteXuDTO.getMaterialCode());
Map<String, List<ProcessRouteSelectDTO>> groupedByFNumber = jdProcessRoute.stream()
.collect(Collectors.groupingBy(ProcessRouteSelectDTO::getFNumber));
Map<String, List<ProcessRouteSelectDTO>> groupedByFNumber = jdProcessRoute.stream().collect(Collectors.groupingBy(ProcessRouteSelectDTO::getFNumber));
// 当前物料的工艺路线
List<ProcessRouteDTO> processRouteDT = processRouteXuDTO.getProcessRouteDT();
// 比较工艺路线
@ -1383,12 +1344,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
for (int i = 0; i < processRouteDT.size(); i++) {
ProcessRouteDTO localRoute = processRouteDT.get(i);
ProcessRouteSelectDTO jdRoute = jdRoutes.get(i);
if (!Objects.equals(localRoute.getProcessNo(), jdRoute.getProcessNo()) ||
!Objects.equals(localRoute.getProcessName(), jdRoute.getProcessName()) ||
!Objects.equals(localRoute.getProcessDescription(), jdRoute.getProcessDescription()) ||
!Objects.equals(localRoute.getWorkCenter(), jdRoute.getWorkCenter()) ||
!Objects.equals(localRoute.getProcessControl(), jdRoute.getProcessControl()) ||
!Objects.equals(localRoute.getActivityDuration(), jdRoute.getActivityDuration())) {
if (!Objects.equals(localRoute.getProcessNo(), jdRoute.getProcessNo()) || !Objects.equals(localRoute.getProcessName(), jdRoute.getProcessName()) || !Objects.equals(localRoute.getProcessDescription(), jdRoute.getProcessDescription()) || !Objects.equals(localRoute.getWorkCenter(), jdRoute.getWorkCenter()) || !Objects.equals(localRoute.getProcessControl(), jdRoute.getProcessControl()) || !Objects.equals(localRoute.getActivityDuration(), jdRoute.getActivityDuration())) {
return false;
}
}
@ -1446,8 +1402,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
JsonArray jsonArray = new Gson().fromJson(resultJson, JsonArray.class);
// 使用 ObjectMapper JsonArray 转换为 List<PlannedProcessVo>
ObjectMapper objectMapper = new ObjectMapper();
List<PlannedProcessVo> plannedProcessList = objectMapper.readValue(jsonArray.toString(),
new TypeReference<List<PlannedProcessVo>>() {
List<PlannedProcessVo> plannedProcessList = objectMapper.readValue(jsonArray.toString(), new TypeReference<List<PlannedProcessVo>>() {
});
// 检查 plannedProcessList 是否为 null避免空指针异常
@ -1513,8 +1468,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
JsonArray jsonArray = new Gson().fromJson(resultJson, JsonArray.class);
// 将JsonArray转为PlanOrder列表
ObjectMapper objectMapper = new ObjectMapper();
List<PlanOrderVo> planOrders = objectMapper.readValue(jsonArray.toString(),
new TypeReference<List<PlanOrderVo>>() {
List<PlanOrderVo> planOrders = objectMapper.readValue(jsonArray.toString(), new TypeReference<List<PlanOrderVo>>() {
});
// 输出或返回结果
System.out.println(planOrders);
@ -1539,8 +1493,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
private List<PlanOrderVo> queryWithFieldName(K3CloudApi client, String fieldName, String rooteProdet) {
JsonObject json = new JsonObject();
json.addProperty("FormId", "PRD_MO");
json.addProperty("FieldKeys",
"F_HBYT_SCLH,FBillNo ,FMaterialId.FNumber,FMaterialName, F_UCHN_BaseProperty_qtr");
json.addProperty("FieldKeys", "F_HBYT_SCLH,FBillNo ,FMaterialId.FNumber,FMaterialName, F_UCHN_BaseProperty_qtr");
JsonArray filterString = new JsonArray();
JsonObject filterObject = new JsonObject();
@ -1571,9 +1524,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
// 转换结果
ObjectMapper objectMapper = new ObjectMapper();
List<PlanOrderVo> planOrders = objectMapper.readValue(
jsonArray.toString(),
new TypeReference<List<PlanOrderVo>>() {
List<PlanOrderVo> planOrders = objectMapper.readValue(jsonArray.toString(), new TypeReference<List<PlanOrderVo>>() {
});
return planOrders;
@ -1591,8 +1542,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
JsonObject json = new JsonObject();
json.addProperty("FormId", "PRD_PPBOM");
json.addProperty("FieldKeys",
"FBillNo,FMaterialID2.FNumber,FMaterialName1,FMaterialModel1,F_HBYT_CZ,FMaterialType,FMustQty,FPickedQty,FStockID.FName,FMEMO1,FUnitID2.FName,FNumerator,FDenominator");
json.addProperty("FieldKeys", "FBillNo,FMaterialID2.FNumber,FMaterialName1,FMaterialModel1,F_HBYT_CZ,FMaterialType,FMustQty,FPickedQty,FStockID.FName,FMEMO1,FUnitID2.FName,FNumerator,FDenominator");
JsonArray filterString = new JsonArray();
JsonObject filterObject = new JsonObject();
filterObject.addProperty("FieldName", "FMOBillNO");
@ -1728,15 +1678,13 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
return Collections.emptyList();
}
// 过滤掉 null 值并转换为字符串
return processInfoList.stream()
.filter(Objects::nonNull)
return processInfoList.stream().filter(Objects::nonNull)
// 获取 processName 字段
.map(ProcessInfo::getProcessName)
// 过滤掉 null
.filter(Objects::nonNull)
// 去重
.distinct()
.collect(Collectors.toList());
.distinct().collect(Collectors.toList());
}
@Override
@ -1826,7 +1774,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
QueryWrapper<MaterialBom> wrapper = new QueryWrapper<>();
wrapper.eq("parent_material_code", materialCode);
wrapper.eq("project_number", productionOrderNo);
wrapper.eq("parent_material_name", materialName);
// wrapper.eq("parent_material_name", materialName);
return materialBomMapper.selectList(wrapper);
}
@ -1836,9 +1784,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
*/
public List<MaterialBom> getZuHanList(ProcessRoute processRoute) {
LambdaQueryWrapper<MaterialBom> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(MaterialBom::getParentMaterialCode, processRoute.getMaterialCode())
.eq(MaterialBom::getParentMaterialName, processRoute.getMaterialName())
.eq(MaterialBom::getProjectNumber, processRoute.getRouteDescription());
wrapper.eq(MaterialBom::getParentMaterialCode, processRoute.getMaterialCode()).eq(MaterialBom::getParentMaterialName, processRoute.getMaterialName()).eq(MaterialBom::getProjectNumber, processRoute.getRouteDescription());
return materialBomMapper.selectList(wrapper);
}
@ -1857,10 +1803,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
if (rowsAffected > 0) {
// 获取删除后其他的 工序,然后更新工序号
LambdaQueryWrapper<ProcessRoute> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessRoute::getRouteDescription, processRoute.getRouteDescription())
.eq(ProcessRoute::getMaterialCode, processRoute.getMaterialCode())
.eq(ProcessRoute::getMaterialName, processRoute.getMaterialName())
.isNotNull(ProcessRoute::getProcessNo);
wrapper.eq(ProcessRoute::getRouteDescription, processRoute.getRouteDescription()).eq(ProcessRoute::getMaterialCode, processRoute.getMaterialCode()).eq(ProcessRoute::getMaterialName, processRoute.getMaterialName()).isNotNull(ProcessRoute::getProcessNo);
List<ProcessRoute> routeList = baseMapper.selectList(wrapper);
// 工序号升序排序
@ -1919,10 +1862,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
try {
// 1. 收集所有需要查询的令号
Set<String> routeDescriptions = list.stream()
.map(ProcessRouteVo::getRouteDescription)
.filter(Objects::nonNull)
.collect(Collectors.toSet());
Set<String> routeDescriptions = list.stream().map(ProcessRouteVo::getRouteDescription).filter(Objects::nonNull).collect(Collectors.toSet());
if (CollUtil.isEmpty(routeDescriptions)) {
return Collections.emptyList();
@ -1938,25 +1878,12 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
}
// 3. 建立复合键映射关系用于快速查找
Map<String, List<ProcessRoute>> routeMap = allProcessRoutes.stream()
.collect(Collectors.groupingBy(route -> generateKey(route.getRouteDescription(),
route.getMaterialCode(),
route.getProcessNo(),
route.getMaterialName(),
route.getProcessName(),
route.getProcessControl(),
route.getActivityDuration())));
Map<String, List<ProcessRoute>> routeMap = allProcessRoutes.stream().collect(Collectors.groupingBy(route -> generateKey(route.getRouteDescription(), route.getMaterialCode(), route.getProcessNo(), route.getMaterialName(), route.getProcessName(), route.getProcessControl(), route.getActivityDuration())));
// 4. 批量更新数据
List<ProcessRoute> updatedRoutes = new ArrayList<>();
for (ProcessRouteVo vo : list) {
String key = generateKey(vo.getRouteDescription(),
vo.getMaterialCode(),
vo.getProcessNo(),
vo.getMaterialName(),
vo.getProcessName(),
vo.getProcessControl(),
vo.getActivityDuration());
String key = generateKey(vo.getRouteDescription(), vo.getMaterialCode(), vo.getProcessNo(), vo.getMaterialName(), vo.getProcessName(), vo.getProcessControl(), vo.getActivityDuration());
List<ProcessRoute> matchingRoutes = routeMap.get(key);
if (CollUtil.isNotEmpty(matchingRoutes)) {
@ -2004,21 +1931,8 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
* 生成复合键
* 用于匹配所有需要的字段
*/
private String generateKey(String routeDescription,
String materialCode,
Long processNo,
String materialName,
String processName,
String processControl,
Double activityDuration) {
return String.format("%s:%s:%s:%s:%s:%s:%s",
StringUtils.defaultString(routeDescription, ""),
StringUtils.defaultString(materialCode, ""),
processNo == null ? "" : processNo.toString(),
StringUtils.defaultString(materialName, ""),
StringUtils.defaultString(processName, ""),
StringUtils.defaultString(processControl, ""),
activityDuration == null ? "" : activityDuration.toString());
private String generateKey(String routeDescription, String materialCode, Long processNo, String materialName, String processName, String processControl, Double activityDuration) {
return String.format("%s:%s:%s:%s:%s:%s:%s", StringUtils.defaultString(routeDescription, ""), StringUtils.defaultString(materialCode, ""), processNo == null ? "" : processNo.toString(), StringUtils.defaultString(materialName, ""), StringUtils.defaultString(processName, ""), StringUtils.defaultString(processControl, ""), activityDuration == null ? "" : activityDuration.toString());
}
/**
@ -2035,10 +1949,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
for (PlanOrderVo planOrder : planOrderList) {
JsonObject json = new JsonObject();
json.addProperty("FormId", "SFC_OperationPlanning");
json.addProperty("FieldKeys",
"FID,FSubEntity_FDetailID,FProductId.FNumber,FOperNumber,FEntity_FEntryID,FProcessId.FName,FSeqNumber,FSeqName,FPlanStartTime,FPlanFinishTime,"
+
"FOperPlanStartTime,FOperPlanFinishTime,FMONumber,F_HBYT_RKCK");
json.addProperty("FieldKeys", "FID,FSubEntity_FDetailID,FProductId.FNumber,FOperNumber,FEntity_FEntryID,FProcessId.FName,FSeqNumber,FSeqName,FPlanStartTime,FPlanFinishTime," + "FOperPlanStartTime,FOperPlanFinishTime,FMONumber,F_HBYT_RKCK");
JsonArray filterString = new JsonArray();
JsonObject filterObject = new JsonObject();
@ -2060,8 +1971,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
String jsonData = json.toString();
try {
String resultJson = String.valueOf(client.billQuery(jsonData));
System.out.println(
"生成查询计划订单查询 " + planOrder.getFBillNo() + " 的结果: " + resultJson);
System.out.println("生成查询计划订单查询 " + planOrder.getFBillNo() + " 的结果: " + resultJson);
JsonArray jsonArray = new Gson().fromJson(resultJson, JsonArray.class);
if (jsonArray == null || jsonArray.size() == 0) {
log.info("查询订单 {} 时没有返回数据", planOrder.getFBillNo());
@ -2069,8 +1979,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
}
ObjectMapper objectMapper = new ObjectMapper();
List<PlanPrcessNumDTO> plannedProcessList = objectMapper.readValue(jsonArray.toString(),
new TypeReference<List<PlanPrcessNumDTO>>() {
List<PlanPrcessNumDTO> plannedProcessList = objectMapper.readValue(jsonArray.toString(), new TypeReference<List<PlanPrcessNumDTO>>() {
});
if (plannedProcessList != null && !plannedProcessList.isEmpty()) {
plannedProcesses.addAll(plannedProcessList);
@ -2104,10 +2013,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
});
// 获取或创建 FEntity 对象
FEntity fEntity = model.getFEntity().stream()
.filter(entity -> entity.getFEntryID() == dto.getFEntity_FEntryID())
.findFirst()
.orElseGet(() -> {
FEntity fEntity = model.getFEntity().stream().filter(entity -> entity.getFEntryID() == dto.getFEntity_FEntryID()).findFirst().orElseGet(() -> {
FEntity newFEntity = new FEntity();
newFEntity.setFEntryID(dto.getFEntity_FEntryID());
newFEntity.setFSeqNumber(dto.getFSeqNumber());
@ -2141,8 +2047,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
public ProcessTimeInfo selectProcessRouteByMaterialCode(String materialCode, String rooteProdet) {
LambdaQueryWrapper<ProcessRoute> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessRoute::getMaterialCode, materialCode)
.eq(ProcessRoute::getRouteDescription, rooteProdet);
wrapper.eq(ProcessRoute::getMaterialCode, materialCode).eq(ProcessRoute::getRouteDescription, rooteProdet);
List<ProcessRoute> processRoutes = baseMapper.selectList(wrapper);
ProcessTimeInfo timeInfo = new ProcessTimeInfo(); // 创建返回对象
@ -2188,8 +2093,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
JsonObject json = new JsonObject();
json.addProperty("FormId", "ENG_Route");
json.addProperty("FieldKeys",
"FNumber,FMATERIALID.FNumber,FMATERIALNAME,FOperNumber,FProcessProperty,FWorkCenterId.FName,FOperDescription,FOptCtrlCodeId.FName,FActivity1Qty");
json.addProperty("FieldKeys", "FNumber,FMATERIALID.FNumber,FMATERIALNAME,FOperNumber,FProcessProperty,FWorkCenterId.FName,FOperDescription,FOptCtrlCodeId.FName,FActivity1Qty");
JsonArray filterString = new JsonArray();
JsonObject filterObject = new JsonObject();
filterObject.addProperty("FieldName", "FMATERIALID.FNumber");
@ -2228,8 +2132,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
JsonObject json = new JsonObject();
json.addProperty("FormId", "ENG_Route");
json.addProperty("FieldKeys",
"FNumber,FMATERIALID.FNumber,FMATERIALNAME,FOperNumber,FProcessProperty,FWorkCenterId.FName,FOperDescription,FOptCtrlCodeId.FName,FActivity1Qty");
json.addProperty("FieldKeys", "FNumber,FMATERIALID.FNumber,FMATERIALNAME,FOperNumber,FProcessProperty,FWorkCenterId.FName,FOperDescription,FOptCtrlCodeId.FName,FActivity1Qty");
JsonArray filterString = new JsonArray();
JsonObject filterObject = new JsonObject();
filterObject.addProperty("FieldName", "FMATERIALID.FNumber");
@ -2285,15 +2188,14 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public R<Void> delByProjectCode(String productionOrderNo) {
boolean allDeleted = true;
// 查询并删除工艺路线
List<ProcessRoute> selectList = baseMapper.selectList(
new QueryWrapper<ProcessRoute>().eq("route_description", productionOrderNo));
List<ProcessRoute> selectList = baseMapper.selectList(new LambdaQueryWrapper<ProcessRoute>().eq(ProcessRoute::getRouteDescription, productionOrderNo));
if (!selectList.isEmpty()) {
boolean result = baseMapper.deleteBatchIds(
selectList.stream().map(ProcessRoute::getId).collect(Collectors.toList())) > 0;
boolean result = baseMapper.deleteBatchIds(selectList.stream().map(ProcessRoute::getId).collect(Collectors.toList())) > 0;
if (!result) {
log.error("删工艺数据发生意外: {}", productionOrderNo);
allDeleted = false;
@ -2301,11 +2203,9 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
}
// 查询并删除材料BOM
List<MaterialBom> selectMaterList = materialBomMapper.selectList(
new QueryWrapper<MaterialBom>().eq("project_number", productionOrderNo));
List<MaterialBom> selectMaterList = materialBomMapper.selectList(new LambdaQueryWrapper<MaterialBom>().eq(MaterialBom::getProjectNumber, productionOrderNo));
if (!selectMaterList.isEmpty()) {
boolean result = materialBomMapper.deleteBatchIds(
selectMaterList.stream().map(MaterialBom::getId).collect(Collectors.toList())) > 0;
boolean result = materialBomMapper.deleteBatchIds(selectMaterList.stream().map(MaterialBom::getId).collect(Collectors.toList())) > 0;
if (!result) {
log.error("删原材料BOM发生意外: {}", productionOrderNo);
allDeleted = false;
@ -2313,33 +2213,40 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
}
// 查询并删除BOM详情
List<BomDetails> selectBomdetailList = bomDetailsMapper.selectList(
new QueryWrapper<BomDetails>().eq("total_weight", productionOrderNo));
List<BomDetails> selectBomdetailList = bomDetailsMapper.selectList(new LambdaQueryWrapper<BomDetails>().eq(BomDetails::getTotalWeight, productionOrderNo));
if (!selectBomdetailList.isEmpty()) {
boolean result = bomDetailsMapper.deleteBatchIds(
selectBomdetailList.stream().map(BomDetails::getId).collect(Collectors.toList())) > 0;
boolean result = bomDetailsMapper.deleteBatchIds(selectBomdetailList.stream().map(BomDetails::getId).collect(Collectors.toList())) > 0;
if (!result) {
log.error("删BOM数据发生意外: {}", productionOrderNo);
allDeleted = false;
}
}
// 查询总装BOM详情
List<ProductionOrder> productionOrderList = productionOrderMapper.selectList(
new QueryWrapper<ProductionOrder>().eq("production_order_no", productionOrderNo));
List<ProductionOrder> productionOrderList = productionOrderMapper.selectList(new LambdaQueryWrapper<ProductionOrder>().eq(ProductionOrder::getProductionOrderNo, productionOrderNo));
if (!productionOrderList.isEmpty()) {
boolean result = productionOrderMapper.deleteBatchIds(
productionOrderList.stream().map(ProductionOrder::getId).collect(Collectors.toList())) > 0;
boolean result = productionOrderMapper.deleteBatchIds(productionOrderList.stream().map(ProductionOrder::getId).collect(Collectors.toList())) > 0;
if (!result) {
log.error("删总装BOM数据发生意外: {}", productionOrderNo);
allDeleted = false;
}
}
// 删除项目令号 ProcessOrderPro
List<ProcessOrderPro> processOrderProList = processOrderProMapper.selectList(new LambdaQueryWrapper<ProcessOrderPro>().eq(ProcessOrderPro::getProductionOrderNo, productionOrderNo));
if (!processOrderProList.isEmpty()) {
boolean result = processOrderProMapper.deleteBatchIds(processOrderProList.stream().map(ProcessOrderPro::getId).collect(Collectors.toList())) > 0;
if (!result) {
log.error("删项目令号数据发生意外: {}", productionOrderNo);
allDeleted = false;
}
}
// 返回结果
if (allDeleted) {
return R.ok();
} else {
return R.fail("删除操作未完全成功");
// 如果有部分失败抛出异常回滚
throw new ServiceException("删除操作未完全成功,已回滚");
}
}
@ -2350,8 +2257,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
* @return
*/
@Override
public List<ProcessRouteJdDTO> getProcessRouteList(String materialCode, String materialName,
String productionOrderNo) {
public List<ProcessRouteJdDTO> getProcessRouteList(String materialCode, String materialName, String productionOrderNo) {
QueryWrapper<ProductionRouteTwo> wrapper = new QueryWrapper<>();
wrapper.eq("FProductId_FNumber", materialCode).eq("f_product_name", materialName).eq("F_HBYT_SCLH", productionOrderNo).orderByAsc("FMATERIALID_FNumber"); // 按工序号排序
@ -2360,8 +2266,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
return Collections.emptyList();
}
// 按生产令号分组
Map<String, List<ProductionRouteTwo>> groupedByProjectCode = productionRouteTwos.stream()
.collect(Collectors.groupingBy(ProductionRouteTwo::getFmaterialidFnumber));
Map<String, List<ProductionRouteTwo>> groupedByProjectCode = productionRouteTwos.stream().collect(Collectors.groupingBy(ProductionRouteTwo::getFmaterialidFnumber));
// 将结果转换到DTO中
List<ProcessRouteJdDTO> processRouteJdDTOs = new ArrayList<>();
groupedByProjectCode.forEach((projectCode, routes) -> {
@ -2375,14 +2280,11 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
processRouteJdDTO.setMaterialName(firstRoute.getFProductName());
// 按工序号分组并转换为ProcessRouteDTO
List<ProcessRouteDTO> processRouteDTList = routes.stream()
.map(route -> {
List<ProcessRouteDTO> processRouteDTList = routes.stream().map(route -> {
ProcessRouteDTO routeDTO = new ProcessRouteDTO();
// 设置工序信息
routeDTO.setProcessNo(
StringUtils.isNotEmpty(route.getFOperNumber()) ? Long.parseLong(route.getFOperNumber())
: null);
routeDTO.setProcessNo(StringUtils.isNotEmpty(route.getFOperNumber()) ? Long.parseLong(route.getFOperNumber()) : null);
routeDTO.setWorkCenter(route.getFworkcenteridFname());
routeDTO.setProcessName(route.getFprocessidFname());
routeDTO.setProcessDescription(route.getFOperDescription());
@ -2392,10 +2294,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
routeDTO.setActivityUnit("小时"); // 或从其他字段获取
return routeDTO;
})
.sorted(Comparator.comparing(ProcessRouteDTO::getProcessNo,
Comparator.nullsLast(Comparator.naturalOrder())))
.collect(Collectors.toList());
}).sorted(Comparator.comparing(ProcessRouteDTO::getProcessNo, Comparator.nullsLast(Comparator.naturalOrder()))).collect(Collectors.toList());
// 设置工艺路线列表
processRouteJdDTO.setProcessRouteDT(processRouteDTList);
@ -2421,18 +2320,13 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
}
LambdaQueryWrapper<ProcessRoute> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessRoute::getMaterialCode, material.getPartNumber())
.eq(ProcessRoute::getMaterialName, material.getName())
.eq(ProcessRoute::getRouteDescription, material.getTotalWeight())
.ne(ProcessRoute::getWorkCenter, "委外中心");
wrapper.eq(ProcessRoute::getMaterialCode, material.getPartNumber()).eq(ProcessRoute::getMaterialName, material.getName()).eq(ProcessRoute::getRouteDescription, material.getTotalWeight()).ne(ProcessRoute::getWorkCenter, "委外中心");
// 不包含工作中心是委外中心的工艺路线
List<ProcessRoute> processRoutes = baseMapper.selectList(wrapper);
if (!CollectionUtils.isEmpty(processRoutes)) {
// 获取所有活动时长并求和处理可能为 null 的情况
double totalActivityDuration = processRoutes.stream()
.mapToDouble(route -> Optional.ofNullable(route.getActivityDuration()).orElse(0.0))
.sum();
double totalActivityDuration = processRoutes.stream().mapToDouble(route -> Optional.ofNullable(route.getActivityDuration()).orElse(0.0)).sum();
return totalActivityDuration;
}
return 0.0;
@ -2446,18 +2340,13 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
}
LambdaQueryWrapper<ProcessRoute> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessRoute::getMaterialCode, material.getFNumber())
.eq(ProcessRoute::getMaterialName, material.getFName())
.eq(ProcessRoute::getRouteDescription, material.getTotalWeight())
.ne(ProcessRoute::getWorkCenter, "委外中心");
wrapper.eq(ProcessRoute::getMaterialCode, material.getFNumber()).eq(ProcessRoute::getMaterialName, material.getFName()).eq(ProcessRoute::getRouteDescription, material.getTotalWeight()).ne(ProcessRoute::getWorkCenter, "委外中心");
// 不包含工作中心是委外中心的工艺路线
List<ProcessRoute> processRoutes = baseMapper.selectList(wrapper);
if (!CollectionUtils.isEmpty(processRoutes)) {
// 获取所有活动时长并求和处理可能为 null 的情况
return processRoutes.stream()
.mapToDouble(route -> Optional.ofNullable(route.getActivityDuration()).orElse(0.0))
.sum();
return processRoutes.stream().mapToDouble(route -> Optional.ofNullable(route.getActivityDuration()).orElse(0.0)).sum();
}
return 0.0;
}
@ -2470,8 +2359,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
@Override
public List<ProcessRoute> getProcessRoutesByOrder(String productionOrderNo, String materialCode) {
LambdaQueryWrapper<ProcessRoute> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessRoute::getRouteDescription, productionOrderNo)
.eq(ProcessRoute::getMaterialCode, materialCode);
wrapper.eq(ProcessRoute::getRouteDescription, productionOrderNo).eq(ProcessRoute::getMaterialCode, materialCode);
if (baseMapper.selectList(wrapper) != null) {
return baseMapper.selectList(wrapper);
}
@ -2485,8 +2373,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
@Override
public List<ProcessRoute> getSingleWeght(String materialCode) {
LambdaQueryWrapper<ProcessRoute> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessRoute::getMaterialCode, materialCode)
.ne(ProcessRoute::getWorkCenter, null);
wrapper.eq(ProcessRoute::getMaterialCode, materialCode).ne(ProcessRoute::getWorkCenter, null);
if (baseMapper.selectList(wrapper) != null) {
return baseMapper.selectList(wrapper);
}
@ -2545,66 +2432,13 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
return Collections.emptyList();
}
// 获取工序是开始时间且是最小工序
private Date getStartTime(List<ProcessRoute> routeList) {
return routeList.stream()
.min(Comparator.comparing(ProcessRoute::getProcessNo))
.map(ProcessRoute::getXuStartTime)
.orElse(null);
return routeList.stream().min(Comparator.comparing(ProcessRoute::getProcessNo)).map(ProcessRoute::getXuStartTime).orElse(null);
}
private Date getEndTime(List<ProcessRoute> routeList) {
return routeList.stream()
.max(Comparator.comparing(ProcessRoute::getProcessNo))
.map(ProcessRoute::getXuEndTime)
.orElse(null);
}
public static JdHuoZhu getFIDToProductionOrder(PlanOrderVo planOrder) {
K3CloudApi client = new K3CloudApi();
JsonObject json = new JsonObject();
json.addProperty("FormId", "PRD_MO");
json.addProperty("FieldKeys", "FTreeEntity_FENTRYID,FID");
JsonArray filterString = new JsonArray();
JsonObject filterObject = new JsonObject();
filterObject.addProperty("FieldName", "FBillNo");
filterObject.addProperty("Compare", "=");
filterObject.addProperty("Value", planOrder.getFBillNo());
filterObject.addProperty("Left", "");
filterObject.addProperty("Right", "");
filterObject.addProperty("Logic", 0);
filterString.add(filterObject);
json.add("FilterString", filterString);
json.addProperty("OrderString", "");
json.addProperty("TopRowCount", 0);
json.addProperty("StartRow", 0);
json.addProperty("Limit", 2000);
json.addProperty("SubSystemId", "");
String jsonData = json.toString();
try {
String resultJson = String.valueOf(client.billQuery(jsonData));
JsonArray jsonArray = new Gson().fromJson(resultJson, JsonArray.class);
if (jsonArray != null && jsonArray.size() > 0) {
ObjectMapper objectMapper = new ObjectMapper();
List<JdHuoZhu> jinYongDTOList = objectMapper.readValue(jsonArray.toString(),
new TypeReference<List<JdHuoZhu>>() {
});
if (jinYongDTOList != null && !jinYongDTOList.isEmpty()) {
return jinYongDTOList.get(0); // 返回第一个对象
}
} else {
log.warn("未找到与次生产订单的FID {} 相关的记录", planOrder.getFBillNo());
}
} catch (Exception e) {
log.error("调用接口时发生异常: " + e.getMessage(), e);
}
return null; // 如果没有找到返回 null
return routeList.stream().max(Comparator.comparing(ProcessRoute::getProcessNo)).map(ProcessRoute::getXuEndTime).orElse(null);
}
/**
@ -2621,8 +2455,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
// 1. 更新生产订单 (PRD_MO)
if (planOrderList != null && !planOrderList.isEmpty()) {
// 按单据号分组减少锁竞争和线程数
Map<String, List<PlanOrderVo>> groupedByBillNo = planOrderList.stream()
.collect(Collectors.groupingBy(PlanOrderVo::getFBillNo));
Map<String, List<PlanOrderVo>> groupedByBillNo = planOrderList.stream().collect(Collectors.groupingBy(PlanOrderVo::getFBillNo));
for (Map.Entry<String, List<PlanOrderVo>> entry : groupedByBillNo.entrySet()) {
String billNo = entry.getKey();
@ -2734,8 +2567,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
List<Future<?>> futures = new ArrayList<>();
// 按单据号分组减少锁竞争和线程数
Map<String, List<CgDTO>> groupedByBillNo = list.stream()
.collect(Collectors.groupingBy(CgDTO::getOrderBillNo));
Map<String, List<CgDTO>> groupedByBillNo = list.stream().collect(Collectors.groupingBy(CgDTO::getOrderBillNo));
for (Map.Entry<String, List<CgDTO>> entry : groupedByBillNo.entrySet()) {
String billNo = entry.getKey();

View File

@ -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) {

View File

@ -1,3 +0,0 @@
java包使用 `.` 分割 resource 目录使用 `/` 分割
<br>
此文件目的 防止文件夹粘连找不到 `xml` 文件

View File

@ -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">

View File

@ -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
View 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