From 10f1237a3bf2fa1cbfb4487d5218b57eb38496d8 Mon Sep 17 00:00:00 2001 From: lhx Date: Fri, 14 Nov 2025 11:44:11 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95=E3=80=81=E6=9D=83=E9=99=90?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 - logs/info.log | 1075 +---------------- .../dc/dc_project/common/ResponseResult.java | 4 + .../dc_project/config/SaTokenConfigure.java | 28 +- .../dc_project/config/StpInterfaceImpl.java | 92 +- .../config/exception/BusinessException.java | 64 + .../config/exception/GlobalException.java | 75 ++ .../dc_project/controller/AuthController.java | 35 + .../com/dc/dc_project/mapper/OrgMapper.java | 1 + .../dc/dc_project/mapper/PersonnelMapper.java | 2 + ...OrgMapper.java => PersonnelOrgMapper.java} | 4 +- .../com/dc/dc_project/mapper/RoleMapper.java | 3 + .../com/dc/dc_project/mapper/UserMapper.java | 1 + .../dc_project/model/dto/user/LoginDto.java | 15 + .../dc/dc_project/model/pojo/Personnel.java | 77 -- .../dc_project/model/pojo/PersonnelOrg.java | 48 + .../com/dc/dc_project/model/pojo/Role.java | 57 - .../com/dc/dc_project/model/pojo/RoleOrg.java | 93 -- .../dc/dc_project/model/vo/PermissionVo.java | 174 +++ .../dc/dc_project/model/vo/PersonnelVo.java | 113 ++ .../com/dc/dc_project/model/vo/UserVo.java | 84 ++ ...gService.java => PersonnelOrgService.java} | 5 +- .../dc/dc_project/service/UserService.java | 8 + .../service/impl/RoleOrgServiceImpl.java | 10 +- .../service/impl/UserServiceImpl.java | 55 + src/main/resources/application.yml | 2 +- src/main/resources/mapper/OrgMapper.xml | 15 +- src/main/resources/mapper/PersonnelMapper.xml | 20 +- .../resources/mapper/PersonnelOrgMapper.xml | 11 + src/main/resources/mapper/RoleMapper.xml | 17 +- src/main/resources/mapper/RoleOrgMapper.xml | 18 - 31 files changed, 799 insertions(+), 1408 deletions(-) create mode 100644 src/main/java/com/dc/dc_project/config/exception/BusinessException.java create mode 100644 src/main/java/com/dc/dc_project/config/exception/GlobalException.java create mode 100644 src/main/java/com/dc/dc_project/controller/AuthController.java rename src/main/java/com/dc/dc_project/mapper/{RoleOrgMapper.java => PersonnelOrgMapper.java} (69%) create mode 100644 src/main/java/com/dc/dc_project/model/dto/user/LoginDto.java create mode 100644 src/main/java/com/dc/dc_project/model/pojo/PersonnelOrg.java delete mode 100644 src/main/java/com/dc/dc_project/model/pojo/RoleOrg.java create mode 100644 src/main/java/com/dc/dc_project/model/vo/PermissionVo.java create mode 100644 src/main/java/com/dc/dc_project/model/vo/PersonnelVo.java create mode 100644 src/main/java/com/dc/dc_project/model/vo/UserVo.java rename src/main/java/com/dc/dc_project/service/{RoleOrgService.java => PersonnelOrgService.java} (67%) create mode 100644 src/main/resources/mapper/PersonnelOrgMapper.xml delete mode 100644 src/main/resources/mapper/RoleOrgMapper.xml diff --git a/.gitignore b/.gitignore index 9bc1eb0..21f876f 100644 --- a/.gitignore +++ b/.gitignore @@ -31,7 +31,6 @@ build/ ### VS Code ### .vscode/ - */*.log /logs/ *.cmd diff --git a/logs/info.log b/logs/info.log index b1b4204..cfcae40 100644 --- a/logs/info.log +++ b/logs/info.log @@ -1,1053 +1,22 @@ -2025-11-13 09:41:56.168 [main] INFO com.dc.dc_project.DcProjectApplication:50 - Starting DcProjectApplication using Java 17.0.14 with PID 16608 (D:\p1\dc_project\target\classes started by ADMIN in D:\p1\dc_project) -2025-11-13 09:41:56.176 [main] INFO com.dc.dc_project.DcProjectApplication:654 - No active profile set, falling back to 1 default profile: "default" -2025-11-13 09:41:56.850 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:295 - Multiple Spring Data modules found, entering strict repository configuration mode -2025-11-13 09:41:56.853 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:143 - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-11-13 09:41:56.882 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:211 - Finished Spring Data repository scanning in 14 ms. Found 0 Redis repository interfaces. -2025-11-13 09:41:57.395 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:111 - Tomcat initialized with port 8800 (http) -2025-11-13 09:41:57.403 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Initializing ProtocolHandler ["http-nio-8800"] -2025-11-13 09:41:57.405 [main] INFO org.apache.catalina.core.StandardService:173 - Starting service [Tomcat] -2025-11-13 09:41:57.406 [main] INFO org.apache.catalina.core.StandardEngine:173 - Starting Servlet engine: [Apache Tomcat/10.1.28] -2025-11-13 09:41:57.457 [main] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring embedded WebApplicationContext -2025-11-13 09:41:57.459 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext:296 - Root WebApplicationContext: initialization completed in 1243 ms -2025-11-13 09:41:57.568 [main] INFO c.a.d.s.b.a.DruidDataSourceAutoConfigure:68 - Init DruidDataSource -2025-11-13 09:41:57.642 [main] INFO com.alibaba.druid.pool.DruidDataSource:1002 - {dataSource-1} inited -2025-11-13 09:41:58.984 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Starting ProtocolHandler ["http-nio-8800"] -2025-11-13 09:41:58.998 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:243 - Tomcat started on port 8800 (http) with context path '/dc' -2025-11-13 09:41:59.006 [main] INFO com.dc.dc_project.DcProjectApplication:56 - Started DcProjectApplication in 3.316 seconds (process running for 4.38) -2025-11-13 16:44:45.449 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2204 - {dataSource-1} closing ... -2025-11-13 16:44:45.453 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2277 - {dataSource-1} closed -2025-11-13 16:45:43.168 [main] INFO com.dc.dc_project.DcProjectApplication:50 - Starting DcProjectApplication using Java 17.0.14 with PID 18920 (D:\p1\dc_project\target\classes started by ADMIN in D:\p1\dc_project) -2025-11-13 16:45:43.170 [main] INFO com.dc.dc_project.DcProjectApplication:654 - No active profile set, falling back to 1 default profile: "default" -2025-11-13 16:45:43.754 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:295 - Multiple Spring Data modules found, entering strict repository configuration mode -2025-11-13 16:45:43.755 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:143 - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-11-13 16:45:43.782 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:211 - Finished Spring Data repository scanning in 14 ms. Found 0 Redis repository interfaces. -2025-11-13 16:45:44.223 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:111 - Tomcat initialized with port 8800 (http) -2025-11-13 16:45:44.232 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Initializing ProtocolHandler ["http-nio-8800"] -2025-11-13 16:45:44.235 [main] INFO org.apache.catalina.core.StandardService:173 - Starting service [Tomcat] -2025-11-13 16:45:44.235 [main] INFO org.apache.catalina.core.StandardEngine:173 - Starting Servlet engine: [Apache Tomcat/10.1.28] -2025-11-13 16:45:44.285 [main] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring embedded WebApplicationContext -2025-11-13 16:45:44.286 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext:296 - Root WebApplicationContext: initialization completed in 1085 ms -2025-11-13 16:45:44.387 [main] INFO c.a.d.s.b.a.DruidDataSourceAutoConfigure:68 - Init DruidDataSource -2025-11-13 16:45:44.450 [main] INFO com.alibaba.druid.pool.DruidDataSource:1002 - {dataSource-1} inited -2025-11-13 16:45:44.710 [main] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext:633 - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'laboratoryBigScreenController' defined in file [D:\p1\dc_project\target\classes\com\dc\dc_project\controller\bigScreen\LaboratoryBigScreenController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'laboratoryServiceImpl' defined in file [D:\p1\dc_project\target\classes\com\dc\dc_project\service\impl\LaboratoryServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'standardCategoryServiceImpl': Unsatisfied dependency expressed through field 'baseMapper': Error creating bean with name 'standardCategoryMapper' defined in file [D:\p1\dc_project\target\classes\com\dc\dc_project\mapper\StandardCategoryMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception with message: Failed to parse mapping resource: 'file [D:\p1\dc_project\target\classes\mapper\RecordEntrustMapper.xml]' -2025-11-13 16:45:44.711 [main] INFO com.alibaba.druid.pool.DruidDataSource:2204 - {dataSource-1} closing ... -2025-11-13 16:45:44.711 [main] INFO com.alibaba.druid.pool.DruidDataSource:2277 - {dataSource-1} closed -2025-11-13 16:45:44.713 [main] INFO org.apache.catalina.core.StandardService:173 - Stopping service [Tomcat] -2025-11-13 16:45:44.729 [main] INFO o.s.b.a.logging.ConditionEvaluationReportLogger:82 - - -Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. -2025-11-13 16:45:44.741 [main] ERROR org.springframework.boot.SpringApplication:859 - Application run failed -org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'laboratoryBigScreenController' defined in file [D:\p1\dc_project\target\classes\com\dc\dc_project\controller\bigScreen\LaboratoryBigScreenController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'laboratoryServiceImpl' defined in file [D:\p1\dc_project\target\classes\com\dc\dc_project\service\impl\LaboratoryServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'standardCategoryServiceImpl': Unsatisfied dependency expressed through field 'baseMapper': Error creating bean with name 'standardCategoryMapper' defined in file [D:\p1\dc_project\target\classes\com\dc\dc_project\mapper\StandardCategoryMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception with message: Failed to parse mapping resource: 'file [D:\p1\dc_project\target\classes\mapper\RecordEntrustMapper.xml]' - at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:795) - at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:237) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1375) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1212) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) - at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) - at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) - at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975) - at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:971) - at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:625) - at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) - at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) - at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) - at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) - at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) - at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) - at com.dc.dc_project.DcProjectApplication.main(DcProjectApplication.java:12) -Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'laboratoryServiceImpl' defined in file [D:\p1\dc_project\target\classes\com\dc\dc_project\service\impl\LaboratoryServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'standardCategoryServiceImpl': Unsatisfied dependency expressed through field 'baseMapper': Error creating bean with name 'standardCategoryMapper' defined in file [D:\p1\dc_project\target\classes\com\dc\dc_project\mapper\StandardCategoryMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception with message: Failed to parse mapping resource: 'file [D:\p1\dc_project\target\classes\mapper\RecordEntrustMapper.xml]' - at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:795) - at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:237) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1375) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1212) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) - at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) - at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) - at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) - at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353) - at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:904) - at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:782) - ... 19 common frames omitted -Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'standardCategoryServiceImpl': Unsatisfied dependency expressed through field 'baseMapper': Error creating bean with name 'standardCategoryMapper' defined in file [D:\p1\dc_project\target\classes\com\dc\dc_project\mapper\StandardCategoryMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception with message: Failed to parse mapping resource: 'file [D:\p1\dc_project\target\classes\mapper\RecordEntrustMapper.xml]' - at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:788) - at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:768) - at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145) - at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:509) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1439) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:599) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) - at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) - at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) - at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) - at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353) - at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:904) - at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:782) - ... 33 common frames omitted -Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'standardCategoryMapper' defined in file [D:\p1\dc_project\target\classes\com\dc\dc_project\mapper\StandardCategoryMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception with message: Failed to parse mapping resource: 'file [D:\p1\dc_project\target\classes\mapper\RecordEntrustMapper.xml]' - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1536) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1430) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:599) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) - at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) - at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) - at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) - at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353) - at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:785) - ... 48 common frames omitted -Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception with message: Failed to parse mapping resource: 'file [D:\p1\dc_project\target\classes\mapper\RecordEntrustMapper.xml]' - at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:648) - at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:636) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1355) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1185) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) - at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) - at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) - at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) - at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1521) - ... 59 common frames omitted -Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception with message: Failed to parse mapping resource: 'file [D:\p1\dc_project\target\classes\mapper\RecordEntrustMapper.xml]' - at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:178) - at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:644) - ... 72 common frames omitted -Caused by: java.io.IOException: Failed to parse mapping resource: 'file [D:\p1\dc_project\target\classes\mapper\RecordEntrustMapper.xml]' - at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.buildSqlSessionFactory(MybatisSqlSessionFactoryBean.java:670) - at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.afterPropertiesSet(MybatisSqlSessionFactoryBean.java:543) - at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.getObject(MybatisSqlSessionFactoryBean.java:701) - at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration.sqlSessionFactory(MybatisPlusAutoConfiguration.java:213) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:569) - at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146) - ... 73 common frames omitted -Caused by: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 50; columnNumber: 32; 元素内容必须由格式正确的字符数据或标记组成。 - at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:262) - at org.apache.ibatis.parsing.XPathParser.(XPathParser.java:127) - at com.baomidou.mybatisplus.core.MybatisXMLMapperBuilder.(MybatisXMLMapperBuilder.java:87) - at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.buildSqlSessionFactory(MybatisSqlSessionFactoryBean.java:667) - ... 81 common frames omitted -Caused by: org.xml.sax.SAXParseException: 元素内容必须由格式正确的字符数据或标记组成。 - at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204) - at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178) - at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400) - at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327) - at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465) - at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.startOfMarkup(XMLDocumentFragmentScannerImpl.java:2589) - at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2679) - at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605) - at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:542) - at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:889) - at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825) - at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) - at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:247) - at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:342) - at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:260) - ... 84 common frames omitted -2025-11-13 16:48:06.009 [main] INFO com.dc.dc_project.DcProjectApplication:50 - Starting DcProjectApplication using Java 17.0.14 with PID 7616 (D:\p1\dc_project\target\classes started by ADMIN in D:\p1\dc_project) -2025-11-13 16:48:06.011 [main] INFO com.dc.dc_project.DcProjectApplication:654 - No active profile set, falling back to 1 default profile: "default" -2025-11-13 16:48:06.553 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:295 - Multiple Spring Data modules found, entering strict repository configuration mode -2025-11-13 16:48:06.554 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:143 - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-11-13 16:48:06.583 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:211 - Finished Spring Data repository scanning in 19 ms. Found 0 Redis repository interfaces. -2025-11-13 16:48:06.976 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:111 - Tomcat initialized with port 8800 (http) -2025-11-13 16:48:06.983 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Initializing ProtocolHandler ["http-nio-8800"] -2025-11-13 16:48:06.985 [main] INFO org.apache.catalina.core.StandardService:173 - Starting service [Tomcat] -2025-11-13 16:48:06.985 [main] INFO org.apache.catalina.core.StandardEngine:173 - Starting Servlet engine: [Apache Tomcat/10.1.28] -2025-11-13 16:48:07.030 [main] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring embedded WebApplicationContext -2025-11-13 16:48:07.030 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext:296 - Root WebApplicationContext: initialization completed in 989 ms -2025-11-13 16:48:07.116 [main] INFO c.a.d.s.b.a.DruidDataSourceAutoConfigure:68 - Init DruidDataSource -2025-11-13 16:48:07.186 [main] INFO com.alibaba.druid.pool.DruidDataSource:1002 - {dataSource-1} inited -2025-11-13 16:48:08.407 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Starting ProtocolHandler ["http-nio-8800"] -2025-11-13 16:48:08.421 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:243 - Tomcat started on port 8800 (http) with context path '/dc' -2025-11-13 16:48:08.428 [main] INFO com.dc.dc_project.DcProjectApplication:56 - Started DcProjectApplication in 2.795 seconds (process running for 3.262) -2025-11-13 17:05:53.319 [http-nio-8800-exec-1] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring DispatcherServlet 'dispatcherServlet' -2025-11-13 17:05:53.320 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:532 - Initializing Servlet 'dispatcherServlet' -2025-11-13 17:05:53.321 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:554 - Completed initialization in 1 ms -2025-11-13 17:05:53.755 [http-nio-8800-exec-8] INFO org.springdoc.api.AbstractOpenApiResource:390 - Init duration for springdoc-openapi is: 253 ms -2025-11-13 17:46:19.843 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2204 - {dataSource-1} closing ... -2025-11-13 17:46:19.845 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2277 - {dataSource-1} closed -2025-11-13 17:46:23.341 [main] INFO com.dc.dc_project.DcProjectApplication:50 - Starting DcProjectApplication using Java 17.0.14 with PID 6456 (D:\p1\dc_project\target\classes started by ADMIN in D:\p1\dc_project) -2025-11-13 17:46:23.343 [main] INFO com.dc.dc_project.DcProjectApplication:654 - No active profile set, falling back to 1 default profile: "default" -2025-11-13 17:46:23.911 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:295 - Multiple Spring Data modules found, entering strict repository configuration mode -2025-11-13 17:46:23.913 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:143 - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-11-13 17:46:23.939 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:211 - Finished Spring Data repository scanning in 15 ms. Found 0 Redis repository interfaces. -2025-11-13 17:46:24.399 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:111 - Tomcat initialized with port 8800 (http) -2025-11-13 17:46:24.407 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Initializing ProtocolHandler ["http-nio-8800"] -2025-11-13 17:46:24.410 [main] INFO org.apache.catalina.core.StandardService:173 - Starting service [Tomcat] -2025-11-13 17:46:24.410 [main] INFO org.apache.catalina.core.StandardEngine:173 - Starting Servlet engine: [Apache Tomcat/10.1.28] -2025-11-13 17:46:24.460 [main] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring embedded WebApplicationContext -2025-11-13 17:46:24.460 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext:296 - Root WebApplicationContext: initialization completed in 1085 ms -2025-11-13 17:46:24.564 [main] INFO c.a.d.s.b.a.DruidDataSourceAutoConfigure:68 - Init DruidDataSource -2025-11-13 17:46:24.625 [main] INFO com.alibaba.druid.pool.DruidDataSource:1002 - {dataSource-1} inited -2025-11-13 17:46:25.917 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Starting ProtocolHandler ["http-nio-8800"] -2025-11-13 17:46:25.932 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:243 - Tomcat started on port 8800 (http) with context path '/dc' -2025-11-13 17:46:25.939 [main] INFO com.dc.dc_project.DcProjectApplication:56 - Started DcProjectApplication in 3.018 seconds (process running for 3.571) -2025-11-13 17:46:39.561 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2204 - {dataSource-1} closing ... -2025-11-13 17:46:39.562 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2277 - {dataSource-1} closed -2025-11-13 17:46:42.542 [main] INFO com.dc.dc_project.DcProjectApplication:50 - Starting DcProjectApplication using Java 17.0.14 with PID 19564 (D:\p1\dc_project\target\classes started by ADMIN in D:\p1\dc_project) -2025-11-13 17:46:42.544 [main] INFO com.dc.dc_project.DcProjectApplication:654 - No active profile set, falling back to 1 default profile: "default" -2025-11-13 17:46:43.091 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:295 - Multiple Spring Data modules found, entering strict repository configuration mode -2025-11-13 17:46:43.093 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:143 - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-11-13 17:46:43.126 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:211 - Finished Spring Data repository scanning in 16 ms. Found 0 Redis repository interfaces. -2025-11-13 17:46:43.536 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:111 - Tomcat initialized with port 8800 (http) -2025-11-13 17:46:43.543 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Initializing ProtocolHandler ["http-nio-8800"] -2025-11-13 17:46:43.546 [main] INFO org.apache.catalina.core.StandardService:173 - Starting service [Tomcat] -2025-11-13 17:46:43.547 [main] INFO org.apache.catalina.core.StandardEngine:173 - Starting Servlet engine: [Apache Tomcat/10.1.28] -2025-11-13 17:46:43.592 [main] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring embedded WebApplicationContext -2025-11-13 17:46:43.592 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext:296 - Root WebApplicationContext: initialization completed in 1016 ms -2025-11-13 17:46:43.679 [main] INFO c.a.d.s.b.a.DruidDataSourceAutoConfigure:68 - Init DruidDataSource -2025-11-13 17:46:43.743 [main] INFO com.alibaba.druid.pool.DruidDataSource:1002 - {dataSource-1} inited -2025-11-13 17:46:44.989 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Starting ProtocolHandler ["http-nio-8800"] -2025-11-13 17:46:45.004 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:243 - Tomcat started on port 8800 (http) with context path '/dc' -2025-11-13 17:46:45.013 [main] INFO com.dc.dc_project.DcProjectApplication:56 - Started DcProjectApplication in 2.845 seconds (process running for 3.337) -2025-11-13 17:46:52.197 [http-nio-8800-exec-1] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring DispatcherServlet 'dispatcherServlet' -2025-11-13 17:46:52.197 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:532 - Initializing Servlet 'dispatcherServlet' -2025-11-13 17:46:52.198 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:554 - Completed initialization in 1 ms -2025-11-13 17:53:23.896 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2204 - {dataSource-1} closing ... -2025-11-13 17:53:23.899 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2277 - {dataSource-1} closed -2025-11-13 17:53:26.041 [main] INFO com.dc.dc_project.DcProjectApplication:50 - Starting DcProjectApplication using Java 17.0.14 with PID 13216 (D:\p1\dc_project\target\classes started by ADMIN in D:\p1\dc_project) -2025-11-13 17:53:26.043 [main] INFO com.dc.dc_project.DcProjectApplication:654 - No active profile set, falling back to 1 default profile: "default" -2025-11-13 17:53:26.593 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:295 - Multiple Spring Data modules found, entering strict repository configuration mode -2025-11-13 17:53:26.595 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:143 - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-11-13 17:53:26.622 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:211 - Finished Spring Data repository scanning in 17 ms. Found 0 Redis repository interfaces. -2025-11-13 17:53:27.012 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:111 - Tomcat initialized with port 8800 (http) -2025-11-13 17:53:27.019 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Initializing ProtocolHandler ["http-nio-8800"] -2025-11-13 17:53:27.022 [main] INFO org.apache.catalina.core.StandardService:173 - Starting service [Tomcat] -2025-11-13 17:53:27.022 [main] INFO org.apache.catalina.core.StandardEngine:173 - Starting Servlet engine: [Apache Tomcat/10.1.28] -2025-11-13 17:53:27.065 [main] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring embedded WebApplicationContext -2025-11-13 17:53:27.066 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext:296 - Root WebApplicationContext: initialization completed in 990 ms -2025-11-13 17:53:27.160 [main] INFO c.a.d.s.b.a.DruidDataSourceAutoConfigure:68 - Init DruidDataSource -2025-11-13 17:53:27.219 [main] INFO com.alibaba.druid.pool.DruidDataSource:1002 - {dataSource-1} inited -2025-11-13 17:53:28.383 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Starting ProtocolHandler ["http-nio-8800"] -2025-11-13 17:53:28.397 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:243 - Tomcat started on port 8800 (http) with context path '/dc' -2025-11-13 17:53:28.405 [main] INFO com.dc.dc_project.DcProjectApplication:56 - Started DcProjectApplication in 2.801 seconds (process running for 3.3) -2025-11-13 17:53:44.048 [http-nio-8800-exec-1] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring DispatcherServlet 'dispatcherServlet' -2025-11-13 17:53:44.048 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:532 - Initializing Servlet 'dispatcherServlet' -2025-11-13 17:53:44.050 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:554 - Completed initialization in 0 ms -2025-11-13 17:57:40.483 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2204 - {dataSource-1} closing ... -2025-11-13 17:57:40.486 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2277 - {dataSource-1} closed -2025-11-13 17:57:43.379 [main] INFO com.dc.dc_project.DcProjectApplication:50 - Starting DcProjectApplication using Java 17.0.14 with PID 4072 (D:\p1\dc_project\target\classes started by ADMIN in D:\p1\dc_project) -2025-11-13 17:57:43.381 [main] INFO com.dc.dc_project.DcProjectApplication:654 - No active profile set, falling back to 1 default profile: "default" -2025-11-13 17:57:43.933 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:295 - Multiple Spring Data modules found, entering strict repository configuration mode -2025-11-13 17:57:43.935 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:143 - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-11-13 17:57:43.964 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:211 - Finished Spring Data repository scanning in 17 ms. Found 0 Redis repository interfaces. -2025-11-13 17:57:44.387 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:111 - Tomcat initialized with port 8800 (http) -2025-11-13 17:57:44.394 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Initializing ProtocolHandler ["http-nio-8800"] -2025-11-13 17:57:44.397 [main] INFO org.apache.catalina.core.StandardService:173 - Starting service [Tomcat] -2025-11-13 17:57:44.398 [main] INFO org.apache.catalina.core.StandardEngine:173 - Starting Servlet engine: [Apache Tomcat/10.1.28] -2025-11-13 17:57:44.445 [main] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring embedded WebApplicationContext -2025-11-13 17:57:44.445 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext:296 - Root WebApplicationContext: initialization completed in 1032 ms -2025-11-13 17:57:44.543 [main] INFO c.a.d.s.b.a.DruidDataSourceAutoConfigure:68 - Init DruidDataSource -2025-11-13 17:57:44.602 [main] INFO com.alibaba.druid.pool.DruidDataSource:1002 - {dataSource-1} inited -2025-11-13 17:57:45.781 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Starting ProtocolHandler ["http-nio-8800"] -2025-11-13 17:57:45.795 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:243 - Tomcat started on port 8800 (http) with context path '/dc' -2025-11-13 17:57:45.803 [main] INFO com.dc.dc_project.DcProjectApplication:56 - Started DcProjectApplication in 2.816 seconds (process running for 3.283) -2025-11-13 17:58:01.638 [http-nio-8800-exec-1] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring DispatcherServlet 'dispatcherServlet' -2025-11-13 17:58:01.638 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:532 - Initializing Servlet 'dispatcherServlet' -2025-11-13 17:58:01.639 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:554 - Completed initialization in 1 ms -2025-11-13 18:01:43.270 [http-nio-8800-exec-3] ERROR o.a.c.c.C.[.[localhost].[/dc].[dispatcherServlet]:175 - Servlet.service() for servlet [dispatcherServlet] in context with path [/dc] threw exception [Request processing failed: org.mybatis.spring.MyBatisSystemException: -### Error querying database. Cause: org.apache.ibatis.binding.BindingException: Parameter 'startTime' not found. Available parameters are [startTimeStr, endTime, param1, param2] -### Cause: org.apache.ibatis.binding.BindingException: Parameter 'startTime' not found. Available parameters are [startTimeStr, endTime, param1, param2]] with root cause -org.apache.ibatis.binding.BindingException: Parameter 'startTime' not found. Available parameters are [startTimeStr, endTime, param1, param2] - at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210) - at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:46) - at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:115) - at org.apache.ibatis.executor.BaseExecutor.createCacheKey(BaseExecutor.java:225) - at org.apache.ibatis.executor.CachingExecutor.createCacheKey(CachingExecutor.java:149) - at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:80) - at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59) - at jdk.proxy2/jdk.proxy2.$Proxy124.query(Unknown Source) - at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154) - at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) - at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142) - at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:75) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:569) - at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:333) - at jdk.proxy2/jdk.proxy2.$Proxy84.selectOne(Unknown Source) - at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:154) - at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:87) - at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:155) - at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:92) - at jdk.proxy2/jdk.proxy2.$Proxy91.getCountByTime(Unknown Source) - at com.dc.dc_project.service.impl.RecordEntrustServiceImpl.getCountByTime(RecordEntrustServiceImpl.java:22) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:569) - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) - at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:716) - at com.dc.dc_project.service.impl.RecordEntrustServiceImpl$$SpringCGLIB$$0.getCountByTime() - at com.dc.dc_project.service.impl.BigScreenServiceImpl.getRecordEntrustStatistics(BigScreenServiceImpl.java:66) - at com.dc.dc_project.controller.bigScreen.LaboratoryBigScreenController.recordEntrust(LaboratoryBigScreenController.java:40) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:569) - at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255) - at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188) - at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) - at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) - at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) - at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaFirewallCheckFilterForJakartaServlet.doFilter(SaFirewallCheckFilterForJakartaServlet.java:69) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaTokenCorsFilterForJakartaServlet.doFilter(SaTokenCorsFilterForJakartaServlet.java:52) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaTokenContextFilterForJakartaServlet.doFilter(SaTokenContextFilterForJakartaServlet.java:40) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) - at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:904) - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) - at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) - at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) - at java.base/java.lang.Thread.run(Thread.java:840) -2025-11-13 18:02:43.110 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2204 - {dataSource-1} closing ... -2025-11-13 18:02:43.112 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2277 - {dataSource-1} closed -2025-11-13 18:02:45.122 [main] INFO com.dc.dc_project.DcProjectApplication:50 - Starting DcProjectApplication using Java 17.0.14 with PID 1184 (D:\p1\dc_project\target\classes started by ADMIN in D:\p1\dc_project) -2025-11-13 18:02:45.124 [main] INFO com.dc.dc_project.DcProjectApplication:654 - No active profile set, falling back to 1 default profile: "default" -2025-11-13 18:02:45.676 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:295 - Multiple Spring Data modules found, entering strict repository configuration mode -2025-11-13 18:02:45.678 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:143 - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-11-13 18:02:45.702 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:211 - Finished Spring Data repository scanning in 14 ms. Found 0 Redis repository interfaces. -2025-11-13 18:02:46.107 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:111 - Tomcat initialized with port 8800 (http) -2025-11-13 18:02:46.116 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Initializing ProtocolHandler ["http-nio-8800"] -2025-11-13 18:02:46.120 [main] INFO org.apache.catalina.core.StandardService:173 - Starting service [Tomcat] -2025-11-13 18:02:46.120 [main] INFO org.apache.catalina.core.StandardEngine:173 - Starting Servlet engine: [Apache Tomcat/10.1.28] -2025-11-13 18:02:46.162 [main] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring embedded WebApplicationContext -2025-11-13 18:02:46.162 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext:296 - Root WebApplicationContext: initialization completed in 1006 ms -2025-11-13 18:02:46.268 [main] INFO c.a.d.s.b.a.DruidDataSourceAutoConfigure:68 - Init DruidDataSource -2025-11-13 18:02:46.330 [main] INFO com.alibaba.druid.pool.DruidDataSource:1002 - {dataSource-1} inited -2025-11-13 18:02:47.536 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Starting ProtocolHandler ["http-nio-8800"] -2025-11-13 18:02:47.551 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:243 - Tomcat started on port 8800 (http) with context path '/dc' -2025-11-13 18:02:47.559 [main] INFO com.dc.dc_project.DcProjectApplication:56 - Started DcProjectApplication in 2.847 seconds (process running for 3.382) -2025-11-13 18:02:55.374 [http-nio-8800-exec-1] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring DispatcherServlet 'dispatcherServlet' -2025-11-13 18:02:55.374 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:532 - Initializing Servlet 'dispatcherServlet' -2025-11-13 18:02:55.375 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:554 - Completed initialization in 1 ms -2025-11-13 18:03:05.683 [http-nio-8800-exec-1] ERROR o.a.c.c.C.[.[localhost].[/dc].[dispatcherServlet]:175 - Servlet.service() for servlet [dispatcherServlet] in context with path [/dc] threw exception [Request processing failed: java.lang.NullPointerException: Cannot invoke "java.util.List.add(Object)" because the return value of "com.dc.dc_project.model.vo.bigScreen.RecordEntrustStatisticsVo.getRecordEntrustStatisticsVos()" is null] with root cause -java.lang.NullPointerException: Cannot invoke "java.util.List.add(Object)" because the return value of "com.dc.dc_project.model.vo.bigScreen.RecordEntrustStatisticsVo.getRecordEntrustStatisticsVos()" is null - at com.dc.dc_project.service.impl.BigScreenServiceImpl.getRecordEntrustStatistics(BigScreenServiceImpl.java:71) - at com.dc.dc_project.controller.bigScreen.LaboratoryBigScreenController.recordEntrust(LaboratoryBigScreenController.java:40) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:569) - at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255) - at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188) - at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) - at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) - at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) - at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaFirewallCheckFilterForJakartaServlet.doFilter(SaFirewallCheckFilterForJakartaServlet.java:69) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaTokenCorsFilterForJakartaServlet.doFilter(SaTokenCorsFilterForJakartaServlet.java:52) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaTokenContextFilterForJakartaServlet.doFilter(SaTokenContextFilterForJakartaServlet.java:40) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) - at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:904) - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) - at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) - at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) - at java.base/java.lang.Thread.run(Thread.java:840) -2025-11-13 18:05:04.439 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2204 - {dataSource-1} closing ... -2025-11-13 18:05:04.442 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2277 - {dataSource-1} closed -2025-11-13 18:05:07.920 [main] INFO com.dc.dc_project.DcProjectApplication:50 - Starting DcProjectApplication using Java 17.0.14 with PID 16868 (D:\p1\dc_project\target\classes started by ADMIN in D:\p1\dc_project) -2025-11-13 18:05:07.922 [main] INFO com.dc.dc_project.DcProjectApplication:654 - No active profile set, falling back to 1 default profile: "default" -2025-11-13 18:05:08.484 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:295 - Multiple Spring Data modules found, entering strict repository configuration mode -2025-11-13 18:05:08.487 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:143 - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-11-13 18:05:08.517 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:211 - Finished Spring Data repository scanning in 14 ms. Found 0 Redis repository interfaces. -2025-11-13 18:05:08.917 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:111 - Tomcat initialized with port 8800 (http) -2025-11-13 18:05:08.924 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Initializing ProtocolHandler ["http-nio-8800"] -2025-11-13 18:05:08.926 [main] INFO org.apache.catalina.core.StandardService:173 - Starting service [Tomcat] -2025-11-13 18:05:08.926 [main] INFO org.apache.catalina.core.StandardEngine:173 - Starting Servlet engine: [Apache Tomcat/10.1.28] -2025-11-13 18:05:08.974 [main] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring embedded WebApplicationContext -2025-11-13 18:05:08.974 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext:296 - Root WebApplicationContext: initialization completed in 1018 ms -2025-11-13 18:05:09.070 [main] INFO c.a.d.s.b.a.DruidDataSourceAutoConfigure:68 - Init DruidDataSource -2025-11-13 18:05:09.131 [main] INFO com.alibaba.druid.pool.DruidDataSource:1002 - {dataSource-1} inited -2025-11-13 18:05:10.324 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Starting ProtocolHandler ["http-nio-8800"] -2025-11-13 18:05:10.337 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:243 - Tomcat started on port 8800 (http) with context path '/dc' -2025-11-13 18:05:10.345 [main] INFO com.dc.dc_project.DcProjectApplication:56 - Started DcProjectApplication in 2.811 seconds (process running for 3.314) -2025-11-13 18:05:18.272 [http-nio-8800-exec-1] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring DispatcherServlet 'dispatcherServlet' -2025-11-13 18:05:18.272 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:532 - Initializing Servlet 'dispatcherServlet' -2025-11-13 18:05:18.273 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:554 - Completed initialization in 1 ms -2025-11-13 18:05:28.606 [http-nio-8800-exec-1] ERROR o.a.c.c.C.[.[localhost].[/dc].[dispatcherServlet]:175 - Servlet.service() for servlet [dispatcherServlet] in context with path [/dc] threw exception [Request processing failed: java.time.DateTimeException: Invalid date 'FEBRUARY 31'] with root cause -java.time.DateTimeException: Invalid date 'FEBRUARY 31' - at java.base/java.time.LocalDate.create(LocalDate.java:461) - at java.base/java.time.LocalDate.of(LocalDate.java:273) - at java.base/java.time.LocalDateTime.of(LocalDateTime.java:338) - at com.dc.dc_project.service.impl.BigScreenServiceImpl.getRecordEntrustStatistics(BigScreenServiceImpl.java:61) - at com.dc.dc_project.controller.bigScreen.LaboratoryBigScreenController.recordEntrust(LaboratoryBigScreenController.java:40) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:569) - at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255) - at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188) - at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) - at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) - at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) - at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaFirewallCheckFilterForJakartaServlet.doFilter(SaFirewallCheckFilterForJakartaServlet.java:69) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaTokenCorsFilterForJakartaServlet.doFilter(SaTokenCorsFilterForJakartaServlet.java:52) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaTokenContextFilterForJakartaServlet.doFilter(SaTokenContextFilterForJakartaServlet.java:40) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) - at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:904) - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) - at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) - at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) - at java.base/java.lang.Thread.run(Thread.java:840) -2025-11-13 18:07:42.735 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2204 - {dataSource-1} closing ... -2025-11-13 18:07:42.737 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2277 - {dataSource-1} closed -2025-11-13 18:07:45.924 [main] INFO com.dc.dc_project.DcProjectApplication:50 - Starting DcProjectApplication using Java 17.0.14 with PID 24924 (D:\p1\dc_project\target\classes started by ADMIN in D:\p1\dc_project) -2025-11-13 18:07:45.926 [main] INFO com.dc.dc_project.DcProjectApplication:654 - No active profile set, falling back to 1 default profile: "default" -2025-11-13 18:07:46.477 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:295 - Multiple Spring Data modules found, entering strict repository configuration mode -2025-11-13 18:07:46.479 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:143 - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-11-13 18:07:46.505 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:211 - Finished Spring Data repository scanning in 15 ms. Found 0 Redis repository interfaces. -2025-11-13 18:07:46.914 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:111 - Tomcat initialized with port 8800 (http) -2025-11-13 18:07:46.922 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Initializing ProtocolHandler ["http-nio-8800"] -2025-11-13 18:07:46.925 [main] INFO org.apache.catalina.core.StandardService:173 - Starting service [Tomcat] -2025-11-13 18:07:46.925 [main] INFO org.apache.catalina.core.StandardEngine:173 - Starting Servlet engine: [Apache Tomcat/10.1.28] -2025-11-13 18:07:46.969 [main] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring embedded WebApplicationContext -2025-11-13 18:07:46.969 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext:296 - Root WebApplicationContext: initialization completed in 1010 ms -2025-11-13 18:07:47.054 [main] INFO c.a.d.s.b.a.DruidDataSourceAutoConfigure:68 - Init DruidDataSource -2025-11-13 18:07:47.119 [main] INFO com.alibaba.druid.pool.DruidDataSource:1002 - {dataSource-1} inited -2025-11-13 18:07:48.336 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Starting ProtocolHandler ["http-nio-8800"] -2025-11-13 18:07:48.348 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:243 - Tomcat started on port 8800 (http) with context path '/dc' -2025-11-13 18:07:48.355 [main] INFO com.dc.dc_project.DcProjectApplication:56 - Started DcProjectApplication in 2.831 seconds (process running for 3.33) -2025-11-13 18:09:08.020 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2204 - {dataSource-1} closing ... -2025-11-13 18:09:08.021 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2277 - {dataSource-1} closed -2025-11-13 18:09:11.022 [main] INFO com.dc.dc_project.DcProjectApplication:50 - Starting DcProjectApplication using Java 17.0.14 with PID 24712 (D:\p1\dc_project\target\classes started by ADMIN in D:\p1\dc_project) -2025-11-13 18:09:11.024 [main] INFO com.dc.dc_project.DcProjectApplication:654 - No active profile set, falling back to 1 default profile: "default" -2025-11-13 18:09:11.600 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:295 - Multiple Spring Data modules found, entering strict repository configuration mode -2025-11-13 18:09:11.602 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:143 - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-11-13 18:09:11.632 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:211 - Finished Spring Data repository scanning in 18 ms. Found 0 Redis repository interfaces. -2025-11-13 18:09:12.038 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:111 - Tomcat initialized with port 8800 (http) -2025-11-13 18:09:12.045 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Initializing ProtocolHandler ["http-nio-8800"] -2025-11-13 18:09:12.048 [main] INFO org.apache.catalina.core.StandardService:173 - Starting service [Tomcat] -2025-11-13 18:09:12.049 [main] INFO org.apache.catalina.core.StandardEngine:173 - Starting Servlet engine: [Apache Tomcat/10.1.28] -2025-11-13 18:09:12.093 [main] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring embedded WebApplicationContext -2025-11-13 18:09:12.093 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext:296 - Root WebApplicationContext: initialization completed in 1038 ms -2025-11-13 18:09:12.185 [main] INFO c.a.d.s.b.a.DruidDataSourceAutoConfigure:68 - Init DruidDataSource -2025-11-13 18:09:12.242 [main] INFO com.alibaba.druid.pool.DruidDataSource:1002 - {dataSource-1} inited -2025-11-13 18:09:13.413 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Starting ProtocolHandler ["http-nio-8800"] -2025-11-13 18:09:13.427 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:243 - Tomcat started on port 8800 (http) with context path '/dc' -2025-11-13 18:09:13.435 [main] INFO com.dc.dc_project.DcProjectApplication:56 - Started DcProjectApplication in 2.801 seconds (process running for 3.287) -2025-11-13 18:10:51.828 [http-nio-8800-exec-1] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring DispatcherServlet 'dispatcherServlet' -2025-11-13 18:10:51.828 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:532 - Initializing Servlet 'dispatcherServlet' -2025-11-13 18:10:51.829 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:554 - Completed initialization in 1 ms -2025-11-13 18:15:21.676 [http-nio-8800-exec-3] ERROR o.a.c.c.C.[.[localhost].[/dc].[dispatcherServlet]:175 - Servlet.service() for servlet [dispatcherServlet] in context with path [/dc] threw exception [Request processing failed: java.lang.NumberFormatException: Cannot parse null string] with root cause -java.lang.NumberFormatException: Cannot parse null string - at java.base/java.lang.Integer.parseInt(Integer.java:630) - at java.base/java.lang.Integer.parseInt(Integer.java:786) - at com.dc.dc_project.service.impl.BigScreenServiceImpl.getRecordEntrustStatistics2(BigScreenServiceImpl.java:82) - at com.dc.dc_project.controller.bigScreen.LaboratoryBigScreenController.recordReport(LaboratoryBigScreenController.java:46) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:569) - at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255) - at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188) - at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) - at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) - at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) - at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaFirewallCheckFilterForJakartaServlet.doFilter(SaFirewallCheckFilterForJakartaServlet.java:69) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaTokenCorsFilterForJakartaServlet.doFilter(SaTokenCorsFilterForJakartaServlet.java:52) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaTokenContextFilterForJakartaServlet.doFilter(SaTokenContextFilterForJakartaServlet.java:40) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) - at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:904) - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) - at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) - at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) - at java.base/java.lang.Thread.run(Thread.java:840) -2025-11-13 18:15:28.783 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2204 - {dataSource-1} closing ... -2025-11-13 18:15:28.786 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2277 - {dataSource-1} closed -2025-11-13 18:15:31.983 [main] INFO com.dc.dc_project.DcProjectApplication:50 - Starting DcProjectApplication using Java 17.0.14 with PID 18892 (D:\p1\dc_project\target\classes started by ADMIN in D:\p1\dc_project) -2025-11-13 18:15:31.985 [main] INFO com.dc.dc_project.DcProjectApplication:654 - No active profile set, falling back to 1 default profile: "default" -2025-11-13 18:15:32.534 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:295 - Multiple Spring Data modules found, entering strict repository configuration mode -2025-11-13 18:15:32.536 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:143 - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-11-13 18:15:32.564 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:211 - Finished Spring Data repository scanning in 17 ms. Found 0 Redis repository interfaces. -2025-11-13 18:15:32.964 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:111 - Tomcat initialized with port 8800 (http) -2025-11-13 18:15:32.971 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Initializing ProtocolHandler ["http-nio-8800"] -2025-11-13 18:15:32.974 [main] INFO org.apache.catalina.core.StandardService:173 - Starting service [Tomcat] -2025-11-13 18:15:32.974 [main] INFO org.apache.catalina.core.StandardEngine:173 - Starting Servlet engine: [Apache Tomcat/10.1.28] -2025-11-13 18:15:33.015 [main] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring embedded WebApplicationContext -2025-11-13 18:15:33.015 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext:296 - Root WebApplicationContext: initialization completed in 999 ms -2025-11-13 18:15:33.099 [main] INFO c.a.d.s.b.a.DruidDataSourceAutoConfigure:68 - Init DruidDataSource -2025-11-13 18:15:33.163 [main] INFO com.alibaba.druid.pool.DruidDataSource:1002 - {dataSource-1} inited -2025-11-13 18:15:34.348 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Starting ProtocolHandler ["http-nio-8800"] -2025-11-13 18:15:34.361 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:243 - Tomcat started on port 8800 (http) with context path '/dc' -2025-11-13 18:15:34.368 [main] INFO com.dc.dc_project.DcProjectApplication:56 - Started DcProjectApplication in 2.781 seconds (process running for 3.275) -2025-11-13 18:15:38.080 [http-nio-8800-exec-1] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring DispatcherServlet 'dispatcherServlet' -2025-11-13 18:15:38.080 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:532 - Initializing Servlet 'dispatcherServlet' -2025-11-13 18:15:38.081 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:554 - Completed initialization in 1 ms -2025-11-13 18:15:48.592 [http-nio-8800-exec-1] ERROR o.a.c.c.C.[.[localhost].[/dc].[dispatcherServlet]:175 - Servlet.service() for servlet [dispatcherServlet] in context with path [/dc] threw exception [Request processing failed: org.springframework.jdbc.BadSqlGrammarException: -### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column 'e.create_time' in 'where clause' -### The error may exist in file [D:\p1\dc_project\target\classes\mapper\RecordEntrustMapper.xml] -### The error may involve defaultParameterMap -### The error occurred while setting parameters -### SQL: SELECT COUNT(*) FROM (SELECT p.id AS engineering_id, p.engineering_name AS engineering_name, COUNT(DISTINCT e.id) AS entrust_count, COUNT(r.id) AS report_count, SUM(CASE WHEN r.conclusion = '不合格' OR r.conclusion LIKE '%不合格%' THEN 1 ELSE 0 END) AS unqualified_count FROM sys_record_engineering p LEFT JOIN sys_record_entrust e ON p.id = e.engineering_id LEFT JOIN sys_record_report r ON e.id = r.entrust_id WHERE e.create_time >= ? AND e.create_time <= ? GROUP BY p.id, p.engineering_name) TOTAL -### Cause: java.sql.SQLSyntaxErrorException: Unknown column 'e.create_time' in 'where clause' -; bad SQL grammar []] with root cause -java.sql.SQLSyntaxErrorException: Unknown column 'e.create_time' in 'where clause' - 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:912) - at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354) - at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:569) - at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58) - at jdk.proxy3/jdk.proxy3.$Proxy126.execute(Unknown Source) - at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65) - at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:569) - at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61) - at jdk.proxy2/jdk.proxy2.$Proxy124.query(Unknown Source) - at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65) - at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336) - at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158) - at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110) - 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:59) - at jdk.proxy2/jdk.proxy2.$Proxy123.query(Unknown Source) - at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154) - at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) - at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:569) - at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:333) - at jdk.proxy2/jdk.proxy2.$Proxy84.selectList(Unknown Source) - at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:194) - at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForIPage(MybatisMapperMethod.java:119) - at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:84) - at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:155) - at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:92) - at jdk.proxy2/jdk.proxy2.$Proxy91.getCountByTimeGroupE(Unknown Source) - at com.dc.dc_project.service.impl.BigScreenServiceImpl.getRecordEntrustStatistics2(BigScreenServiceImpl.java:94) - at com.dc.dc_project.controller.bigScreen.LaboratoryBigScreenController.recordReport(LaboratoryBigScreenController.java:46) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:569) - at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255) - at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188) - at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) - at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) - at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) - at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaFirewallCheckFilterForJakartaServlet.doFilter(SaFirewallCheckFilterForJakartaServlet.java:69) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaTokenCorsFilterForJakartaServlet.doFilter(SaTokenCorsFilterForJakartaServlet.java:52) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaTokenContextFilterForJakartaServlet.doFilter(SaTokenContextFilterForJakartaServlet.java:40) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) - at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:904) - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) - at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) - at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) - at java.base/java.lang.Thread.run(Thread.java:840) -2025-11-13 18:16:51.294 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2204 - {dataSource-1} closing ... -2025-11-13 18:16:51.296 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2277 - {dataSource-1} closed -2025-11-13 18:16:53.251 [main] INFO com.dc.dc_project.DcProjectApplication:50 - Starting DcProjectApplication using Java 17.0.14 with PID 2676 (D:\p1\dc_project\target\classes started by ADMIN in D:\p1\dc_project) -2025-11-13 18:16:53.252 [main] INFO com.dc.dc_project.DcProjectApplication:654 - No active profile set, falling back to 1 default profile: "default" -2025-11-13 18:16:53.795 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:295 - Multiple Spring Data modules found, entering strict repository configuration mode -2025-11-13 18:16:53.797 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:143 - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-11-13 18:16:53.823 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:211 - Finished Spring Data repository scanning in 15 ms. Found 0 Redis repository interfaces. -2025-11-13 18:16:54.219 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:111 - Tomcat initialized with port 8800 (http) -2025-11-13 18:16:54.225 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Initializing ProtocolHandler ["http-nio-8800"] -2025-11-13 18:16:54.228 [main] INFO org.apache.catalina.core.StandardService:173 - Starting service [Tomcat] -2025-11-13 18:16:54.228 [main] INFO org.apache.catalina.core.StandardEngine:173 - Starting Servlet engine: [Apache Tomcat/10.1.28] -2025-11-13 18:16:54.270 [main] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring embedded WebApplicationContext -2025-11-13 18:16:54.270 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext:296 - Root WebApplicationContext: initialization completed in 987 ms -2025-11-13 18:16:54.358 [main] INFO c.a.d.s.b.a.DruidDataSourceAutoConfigure:68 - Init DruidDataSource -2025-11-13 18:16:54.414 [main] INFO com.alibaba.druid.pool.DruidDataSource:1002 - {dataSource-1} inited -2025-11-13 18:16:55.577 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Starting ProtocolHandler ["http-nio-8800"] -2025-11-13 18:16:55.590 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:243 - Tomcat started on port 8800 (http) with context path '/dc' -2025-11-13 18:16:55.598 [main] INFO com.dc.dc_project.DcProjectApplication:56 - Started DcProjectApplication in 2.737 seconds (process running for 3.217) -2025-11-13 18:17:05.257 [http-nio-8800-exec-1] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring DispatcherServlet 'dispatcherServlet' -2025-11-13 18:17:05.257 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:532 - Initializing Servlet 'dispatcherServlet' -2025-11-13 18:17:05.258 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:554 - Completed initialization in 1 ms -2025-11-13 18:20:04.472 [http-nio-8800-exec-3] ERROR o.a.c.c.C.[.[localhost].[/dc].[dispatcherServlet]:175 - Servlet.service() for servlet [dispatcherServlet] in context with path [/dc] threw exception [Request processing failed: java.lang.ClassCastException: class com.baomidou.mybatisplus.extension.plugins.pagination.Page cannot be cast to class com.dc.dc_project.model.vo.BasePageVo (com.baomidou.mybatisplus.extension.plugins.pagination.Page and com.dc.dc_project.model.vo.BasePageVo are in unnamed module of loader 'app')] with root cause -java.lang.ClassCastException: class com.baomidou.mybatisplus.extension.plugins.pagination.Page cannot be cast to class com.dc.dc_project.model.vo.BasePageVo (com.baomidou.mybatisplus.extension.plugins.pagination.Page and com.dc.dc_project.model.vo.BasePageVo are in unnamed module of loader 'app') - at jdk.proxy2/jdk.proxy2.$Proxy87.getCheckOverdueCount(Unknown Source) - at com.dc.dc_project.service.impl.BigScreenServiceImpl.getSystemWarning(BigScreenServiceImpl.java:117) - at com.dc.dc_project.controller.bigScreen.LaboratoryBigScreenController.systemWarning(LaboratoryBigScreenController.java:52) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:569) - at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255) - at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188) - at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) - at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) - at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) - at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaFirewallCheckFilterForJakartaServlet.doFilter(SaFirewallCheckFilterForJakartaServlet.java:69) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaTokenCorsFilterForJakartaServlet.doFilter(SaTokenCorsFilterForJakartaServlet.java:52) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaTokenContextFilterForJakartaServlet.doFilter(SaTokenContextFilterForJakartaServlet.java:40) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) - at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:904) - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) - at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) - at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) - at java.base/java.lang.Thread.run(Thread.java:840) -2025-11-13 18:21:21.398 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2204 - {dataSource-1} closing ... -2025-11-13 18:21:21.401 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2277 - {dataSource-1} closed -2025-11-13 18:21:23.323 [main] INFO com.dc.dc_project.DcProjectApplication:50 - Starting DcProjectApplication using Java 17.0.14 with PID 25464 (D:\p1\dc_project\target\classes started by ADMIN in D:\p1\dc_project) -2025-11-13 18:21:23.324 [main] INFO com.dc.dc_project.DcProjectApplication:654 - No active profile set, falling back to 1 default profile: "default" -2025-11-13 18:21:23.865 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:295 - Multiple Spring Data modules found, entering strict repository configuration mode -2025-11-13 18:21:23.867 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:143 - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-11-13 18:21:23.893 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:211 - Finished Spring Data repository scanning in 16 ms. Found 0 Redis repository interfaces. -2025-11-13 18:21:24.287 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:111 - Tomcat initialized with port 8800 (http) -2025-11-13 18:21:24.294 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Initializing ProtocolHandler ["http-nio-8800"] -2025-11-13 18:21:24.296 [main] INFO org.apache.catalina.core.StandardService:173 - Starting service [Tomcat] -2025-11-13 18:21:24.296 [main] INFO org.apache.catalina.core.StandardEngine:173 - Starting Servlet engine: [Apache Tomcat/10.1.28] -2025-11-13 18:21:24.343 [main] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring embedded WebApplicationContext -2025-11-13 18:21:24.343 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext:296 - Root WebApplicationContext: initialization completed in 988 ms -2025-11-13 18:21:24.435 [main] INFO c.a.d.s.b.a.DruidDataSourceAutoConfigure:68 - Init DruidDataSource -2025-11-13 18:21:24.492 [main] INFO com.alibaba.druid.pool.DruidDataSource:1002 - {dataSource-1} inited -2025-11-13 18:21:25.636 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Starting ProtocolHandler ["http-nio-8800"] -2025-11-13 18:21:25.655 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:243 - Tomcat started on port 8800 (http) with context path '/dc' -2025-11-13 18:21:25.663 [main] INFO com.dc.dc_project.DcProjectApplication:56 - Started DcProjectApplication in 2.715 seconds (process running for 3.211) -2025-11-13 18:21:54.093 [http-nio-8800-exec-1] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring DispatcherServlet 'dispatcherServlet' -2025-11-13 18:21:54.093 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:532 - Initializing Servlet 'dispatcherServlet' -2025-11-13 18:21:54.094 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:554 - Completed initialization in 1 ms -2025-11-13 18:22:04.534 [http-nio-8800-exec-1] ERROR o.a.c.c.C.[.[localhost].[/dc].[dispatcherServlet]:175 - Servlet.service() for servlet [dispatcherServlet] in context with path [/dc] threw exception [Request processing failed: java.lang.ClassCastException: class com.baomidou.mybatisplus.extension.plugins.pagination.Page cannot be cast to class com.dc.dc_project.model.vo.BasePageVo (com.baomidou.mybatisplus.extension.plugins.pagination.Page and com.dc.dc_project.model.vo.BasePageVo are in unnamed module of loader 'app')] with root cause -java.lang.ClassCastException: class com.baomidou.mybatisplus.extension.plugins.pagination.Page cannot be cast to class com.dc.dc_project.model.vo.BasePageVo (com.baomidou.mybatisplus.extension.plugins.pagination.Page and com.dc.dc_project.model.vo.BasePageVo are in unnamed module of loader 'app') - at jdk.proxy2/jdk.proxy2.$Proxy87.getCheckOverdueCount(Unknown Source) - at com.dc.dc_project.service.impl.BigScreenServiceImpl.getSystemWarning(BigScreenServiceImpl.java:117) - at com.dc.dc_project.controller.bigScreen.LaboratoryBigScreenController.systemWarning(LaboratoryBigScreenController.java:52) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:569) - at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255) - at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188) - at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) - at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) - at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) - at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaFirewallCheckFilterForJakartaServlet.doFilter(SaFirewallCheckFilterForJakartaServlet.java:69) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaTokenCorsFilterForJakartaServlet.doFilter(SaTokenCorsFilterForJakartaServlet.java:52) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaTokenContextFilterForJakartaServlet.doFilter(SaTokenContextFilterForJakartaServlet.java:40) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) - at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:904) - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) - at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) - at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) - at java.base/java.lang.Thread.run(Thread.java:840) -2025-11-13 18:23:21.080 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2204 - {dataSource-1} closing ... -2025-11-13 18:23:21.082 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2277 - {dataSource-1} closed -2025-11-13 18:23:23.984 [main] INFO com.dc.dc_project.DcProjectApplication:50 - Starting DcProjectApplication using Java 17.0.14 with PID 8604 (D:\p1\dc_project\target\classes started by ADMIN in D:\p1\dc_project) -2025-11-13 18:23:23.985 [main] INFO com.dc.dc_project.DcProjectApplication:654 - No active profile set, falling back to 1 default profile: "default" -2025-11-13 18:23:24.513 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:295 - Multiple Spring Data modules found, entering strict repository configuration mode -2025-11-13 18:23:24.515 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:143 - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-11-13 18:23:24.543 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:211 - Finished Spring Data repository scanning in 18 ms. Found 0 Redis repository interfaces. -2025-11-13 18:23:24.942 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:111 - Tomcat initialized with port 8800 (http) -2025-11-13 18:23:24.949 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Initializing ProtocolHandler ["http-nio-8800"] -2025-11-13 18:23:24.952 [main] INFO org.apache.catalina.core.StandardService:173 - Starting service [Tomcat] -2025-11-13 18:23:24.952 [main] INFO org.apache.catalina.core.StandardEngine:173 - Starting Servlet engine: [Apache Tomcat/10.1.28] -2025-11-13 18:23:24.995 [main] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring embedded WebApplicationContext -2025-11-13 18:23:24.995 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext:296 - Root WebApplicationContext: initialization completed in 980 ms -2025-11-13 18:23:25.086 [main] INFO c.a.d.s.b.a.DruidDataSourceAutoConfigure:68 - Init DruidDataSource -2025-11-13 18:23:25.141 [main] INFO com.alibaba.druid.pool.DruidDataSource:1002 - {dataSource-1} inited -2025-11-13 18:23:26.303 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Starting ProtocolHandler ["http-nio-8800"] -2025-11-13 18:23:26.326 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:243 - Tomcat started on port 8800 (http) with context path '/dc' -2025-11-13 18:23:26.334 [main] INFO com.dc.dc_project.DcProjectApplication:56 - Started DcProjectApplication in 2.734 seconds (process running for 3.2) -2025-11-13 18:23:37.785 [http-nio-8800-exec-1] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring DispatcherServlet 'dispatcherServlet' -2025-11-13 18:23:37.785 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:532 - Initializing Servlet 'dispatcherServlet' -2025-11-13 18:23:37.786 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:554 - Completed initialization in 1 ms -2025-11-13 18:23:37.929 [http-nio-8800-exec-1] ERROR o.a.c.c.C.[.[localhost].[/dc].[dispatcherServlet]:175 - Servlet.service() for servlet [dispatcherServlet] in context with path [/dc] threw exception [Request processing failed: org.mybatis.spring.MyBatisSystemException: -### Error querying database. Cause: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'offset' in 'class com.baomidou.mybatisplus.extension.plugins.pagination.Page' -### Cause: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'offset' in 'class com.baomidou.mybatisplus.extension.plugins.pagination.Page'] with root cause -org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'offset' in 'class com.baomidou.mybatisplus.extension.plugins.pagination.Page' - at org.apache.ibatis.reflection.Reflector.getGetInvoker(Reflector.java:385) - at org.apache.ibatis.reflection.MetaClass.getGetInvoker(MetaClass.java:160) - at org.apache.ibatis.reflection.wrapper.BeanWrapper.getBeanProperty(BeanWrapper.java:156) - at org.apache.ibatis.reflection.wrapper.BeanWrapper.get(BeanWrapper.java:50) - at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:115) - at org.apache.ibatis.reflection.wrapper.BaseWrapper.getChildValue(BaseWrapper.java:121) - at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:42) - at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:115) - at org.apache.ibatis.executor.BaseExecutor.createCacheKey(BaseExecutor.java:225) - at org.apache.ibatis.executor.CachingExecutor.createCacheKey(CachingExecutor.java:149) - at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:134) - at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75) - at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59) - at jdk.proxy2/jdk.proxy2.$Proxy123.query(Unknown Source) - at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154) - at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) - at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:569) - at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:333) - at jdk.proxy2/jdk.proxy2.$Proxy84.selectList(Unknown Source) - at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:194) - at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForIPage(MybatisMapperMethod.java:119) - at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:84) - at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:155) - at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:92) - at jdk.proxy2/jdk.proxy2.$Proxy87.getCheckOverdueCount(Unknown Source) - at com.dc.dc_project.service.impl.BigScreenServiceImpl.getSystemWarning(BigScreenServiceImpl.java:117) - at com.dc.dc_project.controller.bigScreen.LaboratoryBigScreenController.systemWarning(LaboratoryBigScreenController.java:52) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) - at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.base/java.lang.reflect.Method.invoke(Method.java:569) - at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255) - at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188) - at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) - at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) - at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) - at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaFirewallCheckFilterForJakartaServlet.doFilter(SaFirewallCheckFilterForJakartaServlet.java:69) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaTokenCorsFilterForJakartaServlet.doFilter(SaTokenCorsFilterForJakartaServlet.java:52) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at cn.dev33.satoken.filter.SaTokenContextFilterForJakartaServlet.doFilter(SaTokenContextFilterForJakartaServlet.java:40) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) - at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:904) - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) - at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) - at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) - at java.base/java.lang.Thread.run(Thread.java:840) +2025-11-14 09:01:57.013 [main] INFO com.dc.dc_project.DcProjectApplication:50 - Starting DcProjectApplication using Java 17.0.14 with PID 23756 (D:\p1\dc_project\target\classes started by ADMIN in D:\p1\dc_project) +2025-11-14 09:01:57.022 [main] INFO com.dc.dc_project.DcProjectApplication:654 - No active profile set, falling back to 1 default profile: "default" +2025-11-14 09:01:57.740 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:295 - Multiple Spring Data modules found, entering strict repository configuration mode +2025-11-14 09:01:57.743 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:143 - Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2025-11-14 09:01:57.772 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:211 - Finished Spring Data repository scanning in 15 ms. Found 0 Redis repository interfaces. +2025-11-14 09:01:58.283 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:111 - Tomcat initialized with port 8800 (http) +2025-11-14 09:01:58.291 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Initializing ProtocolHandler ["http-nio-8800"] +2025-11-14 09:01:58.294 [main] INFO org.apache.catalina.core.StandardService:173 - Starting service [Tomcat] +2025-11-14 09:01:58.294 [main] INFO org.apache.catalina.core.StandardEngine:173 - Starting Servlet engine: [Apache Tomcat/10.1.28] +2025-11-14 09:01:58.345 [main] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring embedded WebApplicationContext +2025-11-14 09:01:58.345 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext:296 - Root WebApplicationContext: initialization completed in 1274 ms +2025-11-14 09:01:58.455 [main] INFO c.a.d.s.b.a.DruidDataSourceAutoConfigure:68 - Init DruidDataSource +2025-11-14 09:01:58.534 [main] INFO com.alibaba.druid.pool.DruidDataSource:1002 - {dataSource-1} inited +2025-11-14 09:01:59.901 [main] INFO org.apache.coyote.http11.Http11NioProtocol:173 - Starting ProtocolHandler ["http-nio-8800"] +2025-11-14 09:01:59.917 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer:243 - Tomcat started on port 8800 (http) with context path '/dc' +2025-11-14 09:01:59.926 [main] INFO com.dc.dc_project.DcProjectApplication:56 - Started DcProjectApplication in 3.41 seconds (process running for 4.408) +2025-11-14 09:09:56.822 [http-nio-8800-exec-1] INFO o.a.c.c.ContainerBase.[Tomcat].[localhost].[/dc]:173 - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-11-14 09:09:56.822 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:532 - Initializing Servlet 'dispatcherServlet' +2025-11-14 09:09:56.825 [http-nio-8800-exec-1] INFO org.springframework.web.servlet.DispatcherServlet:554 - Completed initialization in 3 ms +2025-11-14 09:09:57.318 [http-nio-8800-exec-2] INFO org.springdoc.api.AbstractOpenApiResource:390 - Init duration for springdoc-openapi is: 315 ms +2025-11-14 10:16:53.897 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2204 - {dataSource-1} closing ... +2025-11-14 10:16:53.900 [SpringApplicationShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource:2277 - {dataSource-1} closed diff --git a/src/main/java/com/dc/dc_project/common/ResponseResult.java b/src/main/java/com/dc/dc_project/common/ResponseResult.java index a5f4708..dce8f7a 100644 --- a/src/main/java/com/dc/dc_project/common/ResponseResult.java +++ b/src/main/java/com/dc/dc_project/common/ResponseResult.java @@ -57,6 +57,10 @@ public class ResponseResult { return new ResponseResult(code, message, null); } + public static ResponseResult error(ResultCode resultCode) { + return new ResponseResult(resultCode.getCode(), resultCode.getDesc(), null); + } + public static ResponseResult success() { return new ResponseResult(SUCCESS.getCode(), SUCCESS.getDesc(), null); } diff --git a/src/main/java/com/dc/dc_project/config/SaTokenConfigure.java b/src/main/java/com/dc/dc_project/config/SaTokenConfigure.java index 13073f6..c0f25cc 100644 --- a/src/main/java/com/dc/dc_project/config/SaTokenConfigure.java +++ b/src/main/java/com/dc/dc_project/config/SaTokenConfigure.java @@ -11,17 +11,17 @@ import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; -//@Configuration -//@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET) -//public class SaTokenConfigure implements WebMvcConfigurer { -// -// @Override -// public void addInterceptors(InterceptorRegistry registry) { -// registry.addInterceptor(new SaInterceptor(h -> { -// -// SaManager.getLog().debug("----- 请求path={} 提交token={}", SaHolder.getRequest().getRequestPath(), StpUtil.getTokenValue()); -// SaRouter.match("/project/**").check(StpUtil::checkLogin); -// })).addPathPatterns("/**"); -// } -// -//} +@Configuration +@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET) +public class SaTokenConfigure implements WebMvcConfigurer { + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(new SaInterceptor(h -> { + + SaManager.getLog().debug("----- 请求path={} 提交token={}", SaHolder.getRequest().getRequestPath(), StpUtil.getTokenValue()); + SaRouter.match("/project/**").check(StpUtil::checkLogin); + })).addPathPatterns("/**"); + } + +} diff --git a/src/main/java/com/dc/dc_project/config/StpInterfaceImpl.java b/src/main/java/com/dc/dc_project/config/StpInterfaceImpl.java index 8c16deb..eb2e00a 100644 --- a/src/main/java/com/dc/dc_project/config/StpInterfaceImpl.java +++ b/src/main/java/com/dc/dc_project/config/StpInterfaceImpl.java @@ -1,46 +1,46 @@ -//package com.dc.dc_project.config; -// -//import cn.dev33.satoken.stp.StpInterface; -//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -//import com.dc.dc_project.model.pojo.Role; -//import com.dc.dc_project.model.pojo.UserRole; -//import com.dc.dc_project.service.RoleService; -//import com.dc.dc_project.service.UserRoleService; -//import lombok.RequiredArgsConstructor; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.stereotype.Component; -//import java.util.List; -// -///** -// * 权限加载接口实现类 -// */ -//@Component -//@RequiredArgsConstructor(onConstructor_ = {@Autowired}) -//public class StpInterfaceImpl implements StpInterface { -// -// @Autowired -// private UserRoleService userRoleService; -// -// @Autowired -// private RoleService roleService; -// /** -// * 返回一个账号所拥有的权限码集合 -// */ -// @Override -// public List getPermissionList(Object loginId, String loginType) { -// LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper().eq(UserRole::getUserId, Long.valueOf(loginId.toString())); -// List roleIds = userRoleService.list(lambdaQueryWrapper).stream().map(UserRole::getRoleId).toList(); -// return roleService.list(new LambdaQueryWrapper().in(Role::getId, roleIds)).stream().map(Role::getCode).toList(); -// } -// -// /** -// * 返回一个账号所拥有的角色标识集合 (权限与角色可分开校验) -// */ -// @Override -// public List getRoleList(Object loginId, String loginType) { -// LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper().eq(UserRole::getUserId, Long.valueOf(loginId.toString())); -// List roleIds = userRoleService.list(lambdaQueryWrapper).stream().map(UserRole::getRoleId).toList(); -// return roleService.list(new LambdaQueryWrapper().in(Role::getId, roleIds)).stream().map(Role::getCode).toList(); -// } -// -//} +package com.dc.dc_project.config; + +import cn.dev33.satoken.stp.StpInterface; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.dc.dc_project.model.pojo.Role; +import com.dc.dc_project.model.pojo.UserRole; +import com.dc.dc_project.service.RoleService; +import com.dc.dc_project.service.UserRoleService; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import java.util.List; + +/** + * 权限加载接口实现类 + */ +@Component +@RequiredArgsConstructor(onConstructor_ = {@Autowired}) +public class StpInterfaceImpl implements StpInterface { + + @Autowired + private UserRoleService userRoleService; + + @Autowired + private RoleService roleService; + /** + * 返回一个账号所拥有的权限码集合 + */ + @Override + public List getPermissionList(Object loginId, String loginType) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper().eq(UserRole::getUserId, Long.valueOf(loginId.toString())); + List roleIds = userRoleService.list(lambdaQueryWrapper).stream().map(UserRole::getRoleId).toList(); + return roleService.list(new LambdaQueryWrapper().in(Role::getId, roleIds)).stream().map(Role::getCode).toList(); + } + + /** + * 返回一个账号所拥有的角色标识集合 (权限与角色可分开校验) + */ + @Override + public List getRoleList(Object loginId, String loginType) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper().eq(UserRole::getUserId, Long.valueOf(loginId.toString())); + List roleIds = userRoleService.list(lambdaQueryWrapper).stream().map(UserRole::getRoleId).toList(); + return roleService.list(new LambdaQueryWrapper().in(Role::getId, roleIds)).stream().map(Role::getCode).toList(); + } + +} diff --git a/src/main/java/com/dc/dc_project/config/exception/BusinessException.java b/src/main/java/com/dc/dc_project/config/exception/BusinessException.java new file mode 100644 index 0000000..13434d5 --- /dev/null +++ b/src/main/java/com/dc/dc_project/config/exception/BusinessException.java @@ -0,0 +1,64 @@ +package com.dc.dc_project.config.exception; + +import com.dc.dc_project.common.ResultCode; +import com.dc.dc_project.common.ResultCode.*; +import lombok.Data; + +import static com.dc.dc_project.common.ResultCode.ERROR_DEFAULT; +import static com.dc.dc_project.common.ResultCode.ERROR; + +/** + * @author blue + * @description: 异常返回类 + * @date 2021/7/19 10:40 + */ +@Data +public class BusinessException extends RuntimeException{ + + private static final long serialVersionUID = 6401507641198338287L; + + /** 异常代码 */ + protected Integer code; + + /** 异常消息 */ + protected String message; + + public BusinessException() { + super(); + } + + public BusinessException(ResultCode resultCode) { + super(resultCode.getDesc()); + this.code = resultCode.getCode(); + this.message = resultCode.getDesc(); + } + + public BusinessException(String msg) { + super(msg); + this.code = ERROR_DEFAULT.getCode(); + this.message = msg; + } + + public BusinessException(Integer code, String msg) { + super(msg); + this.code = code; + this.message = msg; + } + + public BusinessException(Integer code, String msg, Throwable cause) { + super(msg, cause); + this.code = code; + this.message = msg; + } + + public BusinessException(Throwable cause) { + super(cause); + this.code = ERROR.getCode(); + this.message = cause.getMessage(); + } + + @Override + public String toString() { + return "errorCode: " + code + ", message: " + message; + } +} diff --git a/src/main/java/com/dc/dc_project/config/exception/GlobalException.java b/src/main/java/com/dc/dc_project/config/exception/GlobalException.java new file mode 100644 index 0000000..d066155 --- /dev/null +++ b/src/main/java/com/dc/dc_project/config/exception/GlobalException.java @@ -0,0 +1,75 @@ +package com.dc.dc_project.config.exception; + +import cn.dev33.satoken.exception.NotLoginException; +import cn.dev33.satoken.exception.NotPermissionException; +import com.dc.dc_project.common.ResponseResult; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; + +import static com.dc.dc_project.common.ResultCode.*; + +/** + * @author blue + * @date 2022/3/11 + * @apiNote + */ +@ControllerAdvice(basePackages = "com.liy") +public class GlobalException { + + private static final Logger logger = LoggerFactory.getLogger(GlobalException.class); + + // 业务异常 + @ExceptionHandler(BusinessException.class) + @ResponseBody + public ResponseResult BusinessExceptionHandler(BusinessException ex) { + if (ex.getCode() != -1) { + logger.error("code : " + ex.getCode() + " msg : " + ex.getMessage(), ex); + } + if(StringUtils.isBlank(ex.getLocalizedMessage())||StringUtils.isBlank(ex.getMessage())){ + return ResponseResult.error(ERROR.getCode(), ERROR.getDesc()); + } + return ResponseResult.error(ex.getCode(), ex.getMessage()); + } + + // Assert业务异常 + @ExceptionHandler(IllegalArgumentException.class) + @ResponseBody + public ResponseResult AssertExceptionHandler(IllegalArgumentException ex) { + logger.error( " msg : " + ex.getMessage(), ex); + if(StringUtils.isBlank(ex.getLocalizedMessage())){ + return ResponseResult.error(ERROR.getCode(),ERROR.getDesc()); + } + return ResponseResult.error(ex.getMessage()); + } + + // 登录异常 + @ExceptionHandler(NotLoginException.class) + @ResponseBody + public ResponseResult NotLoginExceptionHandler(NotLoginException ex) { + logger.error( " msg : " + ex.getMessage(), ex); + return ResponseResult.error(NOT_LOGIN.getCode(),NOT_LOGIN.getDesc()); + } + + // 权限异常 + @ExceptionHandler(NotPermissionException.class) + @ResponseBody + public ResponseResult NotPermissionExceptionHandler(NotPermissionException ex) { + logger.error( " msg : " + ex.getMessage(), ex); + return ResponseResult.error(NO_PERMISSION.getCode(),"无此权限:" + ex.getCode()); + } + + // java异常异常 + @ExceptionHandler(Exception.class) + @ResponseBody + public ResponseResult ExceptionHandler(Exception ex) { + logger.error( " msg : " + ex.getMessage(), ex); + if(StringUtils.isBlank(ex.getLocalizedMessage())){ + return ResponseResult.error(ERROR.getCode(),ERROR.getDesc()); + } + return ResponseResult.error(ERROR_DEFAULT.getDesc()); + } +} diff --git a/src/main/java/com/dc/dc_project/controller/AuthController.java b/src/main/java/com/dc/dc_project/controller/AuthController.java new file mode 100644 index 0000000..00db376 --- /dev/null +++ b/src/main/java/com/dc/dc_project/controller/AuthController.java @@ -0,0 +1,35 @@ +package com.dc.dc_project.controller; + + +import cn.dev33.satoken.stp.StpUtil; +import com.dc.dc_project.common.ResponseResult; +import com.dc.dc_project.model.dto.user.LoginDto; +import com.dc.dc_project.model.pojo.User; +import com.dc.dc_project.service.UserService; +import jakarta.validation.Valid; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/auth") +@RequiredArgsConstructor(onConstructor_ = {@Autowired}) +public class AuthController { + + private final UserService userService; + + + @PostMapping("/login") + ResponseResult login(@RequestBody @Valid LoginDto loginDto) { + return userService.login(loginDto); + } + + @GetMapping("/logout") + ResponseResult logout() { + Long userId = StpUtil.getLoginIdAsLong(); + StpUtil.logout(); + return ResponseResult.success(true); + } + +} diff --git a/src/main/java/com/dc/dc_project/mapper/OrgMapper.java b/src/main/java/com/dc/dc_project/mapper/OrgMapper.java index 9ac7457..1272408 100644 --- a/src/main/java/com/dc/dc_project/mapper/OrgMapper.java +++ b/src/main/java/com/dc/dc_project/mapper/OrgMapper.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface OrgMapper extends BaseMapper { + Long getOrgIdByPersonnelId(Long id); } diff --git a/src/main/java/com/dc/dc_project/mapper/PersonnelMapper.java b/src/main/java/com/dc/dc_project/mapper/PersonnelMapper.java index e135b1b..d5c17db 100644 --- a/src/main/java/com/dc/dc_project/mapper/PersonnelMapper.java +++ b/src/main/java/com/dc/dc_project/mapper/PersonnelMapper.java @@ -2,6 +2,7 @@ package com.dc.dc_project.mapper; import com.dc.dc_project.model.pojo.Personnel; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dc.dc_project.model.vo.PersonnelVo; /** * @author ADMIN @@ -11,6 +12,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface PersonnelMapper extends BaseMapper { + PersonnelVo getVoByUserId(Long id); } diff --git a/src/main/java/com/dc/dc_project/mapper/RoleOrgMapper.java b/src/main/java/com/dc/dc_project/mapper/PersonnelOrgMapper.java similarity index 69% rename from src/main/java/com/dc/dc_project/mapper/RoleOrgMapper.java rename to src/main/java/com/dc/dc_project/mapper/PersonnelOrgMapper.java index 88c0587..f719b5c 100644 --- a/src/main/java/com/dc/dc_project/mapper/RoleOrgMapper.java +++ b/src/main/java/com/dc/dc_project/mapper/PersonnelOrgMapper.java @@ -1,7 +1,7 @@ package com.dc.dc_project.mapper; -import com.dc.dc_project.model.pojo.RoleOrg; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dc.dc_project.model.pojo.PersonnelOrg; /** * @author ADMIN @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; * @createDate 2025-11-12 09:41:21 * @Entity generator.pojo.RoleOrg */ -public interface RoleOrgMapper extends BaseMapper { +public interface PersonnelOrgMapper extends BaseMapper { } diff --git a/src/main/java/com/dc/dc_project/mapper/RoleMapper.java b/src/main/java/com/dc/dc_project/mapper/RoleMapper.java index b220ef5..418929a 100644 --- a/src/main/java/com/dc/dc_project/mapper/RoleMapper.java +++ b/src/main/java/com/dc/dc_project/mapper/RoleMapper.java @@ -3,6 +3,8 @@ package com.dc.dc_project.mapper; import com.dc.dc_project.model.pojo.Role; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.List; + /** * @author ADMIN * @description 针对表【sys_role(系统角色表)】的数据库操作Mapper @@ -11,6 +13,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface RoleMapper extends BaseMapper { + List getRolesByUserId(Long userId); } diff --git a/src/main/java/com/dc/dc_project/mapper/UserMapper.java b/src/main/java/com/dc/dc_project/mapper/UserMapper.java index 4a687a8..894ea26 100644 --- a/src/main/java/com/dc/dc_project/mapper/UserMapper.java +++ b/src/main/java/com/dc/dc_project/mapper/UserMapper.java @@ -1,5 +1,6 @@ package com.dc.dc_project.mapper; +import com.dc.dc_project.model.dto.user.LoginDto; import com.dc.dc_project.model.pojo.User; import com.baomidou.mybatisplus.core.mapper.BaseMapper; diff --git a/src/main/java/com/dc/dc_project/model/dto/user/LoginDto.java b/src/main/java/com/dc/dc_project/model/dto/user/LoginDto.java new file mode 100644 index 0000000..8996de8 --- /dev/null +++ b/src/main/java/com/dc/dc_project/model/dto/user/LoginDto.java @@ -0,0 +1,15 @@ +package com.dc.dc_project.model.dto.user; + +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import lombok.NonNull; + +import java.io.Serializable; + +@Data +public class LoginDto implements Serializable{ + @NotBlank(message = "手机号不能为空") + private Long phone; + @NotBlank(message = "密码不能为空") + private String password; +} diff --git a/src/main/java/com/dc/dc_project/model/pojo/Personnel.java b/src/main/java/com/dc/dc_project/model/pojo/Personnel.java index 40d3c72..d292d94 100644 --- a/src/main/java/com/dc/dc_project/model/pojo/Personnel.java +++ b/src/main/java/com/dc/dc_project/model/pojo/Personnel.java @@ -21,12 +21,6 @@ public class Personnel { @TableId(value = "id", type = IdType.AUTO) private Long id; - /** - * 所属组织(公司/项目/试验室)ID - */ - @TableField(value = "org_id") - private Long orgId; - /** * 关联系统用户ID(可为空) */ @@ -99,76 +93,5 @@ public class Personnel { @TableField(value = "is_deleted") private Integer isDeleted; - @Override - public boolean equals(Object that) { - if (this == that) { - return true; - } - if (that == null) { - return false; - } - if (getClass() != that.getClass()) { - return false; - } - Personnel other = (Personnel) that; - return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) - && (this.getOrgId() == null ? other.getOrgId() == null : this.getOrgId().equals(other.getOrgId())) - && (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId())) - && (this.getName() == null ? other.getName() == null : this.getName().equals(other.getName())) - && (this.getPosition() == null ? other.getPosition() == null : this.getPosition().equals(other.getPosition())) - && (this.getContactPhone() == null ? other.getContactPhone() == null : this.getContactPhone().equals(other.getContactPhone())) - && (this.getEmail() == null ? other.getEmail() == null : this.getEmail().equals(other.getEmail())) - && (this.getMainResponsibility() == null ? other.getMainResponsibility() == null : this.getMainResponsibility().equals(other.getMainResponsibility())) - && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark())) - && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus())) - && (this.getCreatedBy() == null ? other.getCreatedBy() == null : this.getCreatedBy().equals(other.getCreatedBy())) - && (this.getCreatedAt() == null ? other.getCreatedAt() == null : this.getCreatedAt().equals(other.getCreatedAt())) - && (this.getUpdatedAt() == null ? other.getUpdatedAt() == null : this.getUpdatedAt().equals(other.getUpdatedAt())) - && (this.getIsDeleted() == null ? other.getIsDeleted() == null : this.getIsDeleted().equals(other.getIsDeleted())); - } - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); - result = prime * result + ((getOrgId() == null) ? 0 : getOrgId().hashCode()); - result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode()); - result = prime * result + ((getName() == null) ? 0 : getName().hashCode()); - result = prime * result + ((getPosition() == null) ? 0 : getPosition().hashCode()); - result = prime * result + ((getContactPhone() == null) ? 0 : getContactPhone().hashCode()); - result = prime * result + ((getEmail() == null) ? 0 : getEmail().hashCode()); - result = prime * result + ((getMainResponsibility() == null) ? 0 : getMainResponsibility().hashCode()); - result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode()); - result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode()); - result = prime * result + ((getCreatedBy() == null) ? 0 : getCreatedBy().hashCode()); - result = prime * result + ((getCreatedAt() == null) ? 0 : getCreatedAt().hashCode()); - result = prime * result + ((getUpdatedAt() == null) ? 0 : getUpdatedAt().hashCode()); - result = prime * result + ((getIsDeleted() == null) ? 0 : getIsDeleted().hashCode()); - return result; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", orgId=").append(orgId); - sb.append(", userId=").append(userId); - sb.append(", name=").append(name); - sb.append(", position=").append(position); - sb.append(", contactPhone=").append(contactPhone); - sb.append(", email=").append(email); - sb.append(", mainResponsibility=").append(mainResponsibility); - sb.append(", remark=").append(remark); - sb.append(", status=").append(status); - sb.append(", createdBy=").append(createdBy); - sb.append(", createdAt=").append(createdAt); - sb.append(", updatedAt=").append(updatedAt); - sb.append(", isDeleted=").append(isDeleted); - sb.append("]"); - return sb.toString(); - } } \ No newline at end of file diff --git a/src/main/java/com/dc/dc_project/model/pojo/PersonnelOrg.java b/src/main/java/com/dc/dc_project/model/pojo/PersonnelOrg.java new file mode 100644 index 0000000..d35892b --- /dev/null +++ b/src/main/java/com/dc/dc_project/model/pojo/PersonnelOrg.java @@ -0,0 +1,48 @@ +package com.dc.dc_project.model.pojo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 角色-组织关系表 + */ +@TableName(value ="sys_personnel_org") +@Data +public class PersonnelOrg { + /** + * 主键ID + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 角色ID + */ + @TableField(value = "personnel_id") + private Long personnelId; + + /** + * 组织ID(作用范围) + */ + @TableField(value = "org_id") + private Long orgId; + + /** + * 创建时间 + */ + @TableField(value = "created_at") + private LocalDateTime createdAt; + + /** + * 创建人 + */ + @TableField(value = "created_by") + private String createdBy; + + +} \ No newline at end of file diff --git a/src/main/java/com/dc/dc_project/model/pojo/Role.java b/src/main/java/com/dc/dc_project/model/pojo/Role.java index 3997a83..a992e85 100644 --- a/src/main/java/com/dc/dc_project/model/pojo/Role.java +++ b/src/main/java/com/dc/dc_project/model/pojo/Role.java @@ -69,61 +69,4 @@ public class Role { @TableField(value = "is_deleted") private Integer isDeleted; - @Override - public boolean equals(Object that) { - if (this == that) { - return true; - } - if (that == null) { - return false; - } - if (getClass() != that.getClass()) { - return false; - } - Role other = (Role) that; - return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) - && (this.getName() == null ? other.getName() == null : this.getName().equals(other.getName())) - && (this.getCode() == null ? other.getCode() == null : this.getCode().equals(other.getCode())) - && (this.getLevel() == null ? other.getLevel() == null : this.getLevel().equals(other.getLevel())) - && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus())) - && (this.getDescription() == null ? other.getDescription() == null : this.getDescription().equals(other.getDescription())) - && (this.getCreatedAt() == null ? other.getCreatedAt() == null : this.getCreatedAt().equals(other.getCreatedAt())) - && (this.getUpdatedAt() == null ? other.getUpdatedAt() == null : this.getUpdatedAt().equals(other.getUpdatedAt())) - && (this.getIsDeleted() == null ? other.getIsDeleted() == null : this.getIsDeleted().equals(other.getIsDeleted())); - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); - result = prime * result + ((getName() == null) ? 0 : getName().hashCode()); - result = prime * result + ((getCode() == null) ? 0 : getCode().hashCode()); - result = prime * result + ((getLevel() == null) ? 0 : getLevel().hashCode()); - result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode()); - result = prime * result + ((getDescription() == null) ? 0 : getDescription().hashCode()); - result = prime * result + ((getCreatedAt() == null) ? 0 : getCreatedAt().hashCode()); - result = prime * result + ((getUpdatedAt() == null) ? 0 : getUpdatedAt().hashCode()); - result = prime * result + ((getIsDeleted() == null) ? 0 : getIsDeleted().hashCode()); - return result; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", code=").append(code); - sb.append(", level=").append(level); - sb.append(", status=").append(status); - sb.append(", description=").append(description); - sb.append(", createdAt=").append(createdAt); - sb.append(", updatedAt=").append(updatedAt); - sb.append(", isDeleted=").append(isDeleted); - sb.append("]"); - return sb.toString(); - } } \ No newline at end of file diff --git a/src/main/java/com/dc/dc_project/model/pojo/RoleOrg.java b/src/main/java/com/dc/dc_project/model/pojo/RoleOrg.java deleted file mode 100644 index 7a9fc22..0000000 --- a/src/main/java/com/dc/dc_project/model/pojo/RoleOrg.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.dc.dc_project.model.pojo; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; - -import java.time.LocalDateTime; - -/** - * 角色-组织关系表 - * @TableName sys_role_org - */ -@TableName(value ="sys_role_org") -@Data -public class RoleOrg { - /** - * 主键ID - */ - @TableId(value = "id", type = IdType.AUTO) - private Long id; - - /** - * 角色ID - */ - @TableField(value = "role_id") - private Long roleId; - - /** - * 组织ID(作用范围) - */ - @TableField(value = "org_id") - private Long orgId; - - /** - * 创建时间 - */ - @TableField(value = "created_at") - private LocalDateTime createdAt; - - /** - * 创建人 - */ - @TableField(value = "created_by") - private String createdBy; - - @Override - public boolean equals(Object that) { - if (this == that) { - return true; - } - if (that == null) { - return false; - } - if (getClass() != that.getClass()) { - return false; - } - RoleOrg other = (RoleOrg) that; - return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) - && (this.getRoleId() == null ? other.getRoleId() == null : this.getRoleId().equals(other.getRoleId())) - && (this.getOrgId() == null ? other.getOrgId() == null : this.getOrgId().equals(other.getOrgId())) - && (this.getCreatedAt() == null ? other.getCreatedAt() == null : this.getCreatedAt().equals(other.getCreatedAt())) - && (this.getCreatedBy() == null ? other.getCreatedBy() == null : this.getCreatedBy().equals(other.getCreatedBy())); - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); - result = prime * result + ((getRoleId() == null) ? 0 : getRoleId().hashCode()); - result = prime * result + ((getOrgId() == null) ? 0 : getOrgId().hashCode()); - result = prime * result + ((getCreatedAt() == null) ? 0 : getCreatedAt().hashCode()); - result = prime * result + ((getCreatedBy() == null) ? 0 : getCreatedBy().hashCode()); - return result; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", roleId=").append(roleId); - sb.append(", orgId=").append(orgId); - sb.append(", createdAt=").append(createdAt); - sb.append(", createdBy=").append(createdBy); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/src/main/java/com/dc/dc_project/model/vo/PermissionVo.java b/src/main/java/com/dc/dc_project/model/vo/PermissionVo.java new file mode 100644 index 0000000..ddc4ec0 --- /dev/null +++ b/src/main/java/com/dc/dc_project/model/vo/PermissionVo.java @@ -0,0 +1,174 @@ +package com.dc.dc_project.model.vo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 系统权限表(菜单/接口控制) + * @TableName sys_permission + */ +@TableName(value ="sys_permission") +@Data +public class PermissionVo { + /** + * 主键ID + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 上级权限ID(形成权限树) + */ + @TableField(value = "parent_id") + private Long parentId; + + /** + * 权限名称 + */ + @TableField(value = "name") + private String name; + + /** + * 权限编码(如 system:user:view) + */ + @TableField(value = "code") + private String code; + + /** + * 权限类型(1=目录,2=菜单,3=按钮/接口) + */ + @TableField(value = "type") + private Integer type; + + /** + * 前端路径或接口地址 + */ + @TableField(value = "path") + private String path; + + /** + * HTTP方法(GET/POST/PUT/DELETE) + */ + @TableField(value = "method") + private String method; + + /** + * 图标(菜单类) + */ + @TableField(value = "icon") + private String icon; + + /** + * 排序号 + */ + @TableField(value = "sort_order") + private Integer sortOrder; + + /** + * 状态(0=停用,1=启用) + */ + @TableField(value = "status") + private Integer status; + + /** + * 备注 + */ + @TableField(value = "remark") + private String remark; + + /** + * 创建时间 + */ + @TableField(value = "created_at") + private LocalDateTime createdAt; + + /** + * 更新时间 + */ + @TableField(value = "updated_at") + private LocalDateTime updatedAt; + + /** + * 逻辑删除标志 + */ + @TableField(value = "is_deleted") + private Integer isDeleted; + + @Override + public boolean equals(Object that) { + if (this == that) { + return true; + } + if (that == null) { + return false; + } + if (getClass() != that.getClass()) { + return false; + } + PermissionVo other = (PermissionVo) that; + return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) + && (this.getParentId() == null ? other.getParentId() == null : this.getParentId().equals(other.getParentId())) + && (this.getName() == null ? other.getName() == null : this.getName().equals(other.getName())) + && (this.getCode() == null ? other.getCode() == null : this.getCode().equals(other.getCode())) + && (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType())) + && (this.getPath() == null ? other.getPath() == null : this.getPath().equals(other.getPath())) + && (this.getMethod() == null ? other.getMethod() == null : this.getMethod().equals(other.getMethod())) + && (this.getIcon() == null ? other.getIcon() == null : this.getIcon().equals(other.getIcon())) + && (this.getSortOrder() == null ? other.getSortOrder() == null : this.getSortOrder().equals(other.getSortOrder())) + && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus())) + && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark())) + && (this.getCreatedAt() == null ? other.getCreatedAt() == null : this.getCreatedAt().equals(other.getCreatedAt())) + && (this.getUpdatedAt() == null ? other.getUpdatedAt() == null : this.getUpdatedAt().equals(other.getUpdatedAt())) + && (this.getIsDeleted() == null ? other.getIsDeleted() == null : this.getIsDeleted().equals(other.getIsDeleted())); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); + result = prime * result + ((getParentId() == null) ? 0 : getParentId().hashCode()); + result = prime * result + ((getName() == null) ? 0 : getName().hashCode()); + result = prime * result + ((getCode() == null) ? 0 : getCode().hashCode()); + result = prime * result + ((getType() == null) ? 0 : getType().hashCode()); + result = prime * result + ((getPath() == null) ? 0 : getPath().hashCode()); + result = prime * result + ((getMethod() == null) ? 0 : getMethod().hashCode()); + result = prime * result + ((getIcon() == null) ? 0 : getIcon().hashCode()); + result = prime * result + ((getSortOrder() == null) ? 0 : getSortOrder().hashCode()); + result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode()); + result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode()); + result = prime * result + ((getCreatedAt() == null) ? 0 : getCreatedAt().hashCode()); + result = prime * result + ((getUpdatedAt() == null) ? 0 : getUpdatedAt().hashCode()); + result = prime * result + ((getIsDeleted() == null) ? 0 : getIsDeleted().hashCode()); + return result; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", parentId=").append(parentId); + sb.append(", name=").append(name); + sb.append(", code=").append(code); + sb.append(", type=").append(type); + sb.append(", path=").append(path); + sb.append(", method=").append(method); + sb.append(", icon=").append(icon); + sb.append(", sortOrder=").append(sortOrder); + sb.append(", status=").append(status); + sb.append(", remark=").append(remark); + sb.append(", createdAt=").append(createdAt); + sb.append(", updatedAt=").append(updatedAt); + sb.append(", isDeleted=").append(isDeleted); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/src/main/java/com/dc/dc_project/model/vo/PersonnelVo.java b/src/main/java/com/dc/dc_project/model/vo/PersonnelVo.java new file mode 100644 index 0000000..2f5497b --- /dev/null +++ b/src/main/java/com/dc/dc_project/model/vo/PersonnelVo.java @@ -0,0 +1,113 @@ +package com.dc.dc_project.model.vo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.dc.dc_project.model.pojo.Org; +import com.dc.dc_project.model.pojo.Personnel; +import com.dc.dc_project.model.pojo.Role; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.NonNull; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * 人员台账表 + * @TableName sys_personnel + */ +@TableName(value ="sys_personnel") +@Data +@AllArgsConstructor +@NoArgsConstructor +public class PersonnelVo { + /** + * 主键ID + */ + private Long id; + + + /** + * 关联系统用户ID(可为空) + */ + private Long userId; + + /** + * 姓名 + */ + private String name; + + /** + * 职务/岗位(如 检测员、试验室主任) + */ + private String position; + + /** + * 联系电话 + */ + private String contactPhone; + + /** + * 邮箱 + */ + private String email; + + /** + * 主要负责(自由文本,如 混凝土试验、材料检测) + */ + private String mainResponsibility; + + /** + * 备注 + */ + private String remark; + + /** + * 状态(1=在岗,0=离岗) + */ + private Integer status; + + + /** + * 创建时间 + */ + private LocalDateTime createdAt; + + /** + * 更新时间 + */ + private LocalDateTime updatedAt; + + /** + * 逻辑删除 + */ + private Integer isDeleted; + + private List roles; + + private Long orgId; + + private String token; + + + + public static PersonnelVo toVo(Personnel personnel){ + PersonnelVo personnelVo = new PersonnelVo(); + personnelVo.setId(personnel.getId()); + personnelVo.setUserId(personnel.getUserId()); + personnelVo.setName(personnel.getName()); + personnelVo.setPosition(personnel.getPosition()); + personnelVo.setContactPhone(personnel.getContactPhone()); + personnelVo.setEmail(personnel.getEmail()); + personnelVo.setMainResponsibility(personnel.getMainResponsibility()); + personnelVo.setRemark(personnel.getRemark()); + personnelVo.setStatus(personnel.getStatus()); + personnelVo.setCreatedAt(personnel.getCreatedAt()); + personnelVo.setUpdatedAt(personnel.getUpdatedAt()); + personnelVo.setIsDeleted(personnel.getIsDeleted()); + return personnelVo; + } +} \ No newline at end of file diff --git a/src/main/java/com/dc/dc_project/model/vo/UserVo.java b/src/main/java/com/dc/dc_project/model/vo/UserVo.java new file mode 100644 index 0000000..f336c10 --- /dev/null +++ b/src/main/java/com/dc/dc_project/model/vo/UserVo.java @@ -0,0 +1,84 @@ +package com.dc.dc_project.model.vo; + +import com.dc.dc_project.model.pojo.User; +import lombok.Data; + +import java.time.LocalDateTime; + + +@Data +public class UserVo { + + /** + * 主键ID + */ + private Long id; + + /** + * 登录用户名 + */ + private String username; + + /** + * 真实姓名 + */ + private String realName; + + /** + * 性别(0=未知,1=男,2=女) + */ + private Integer gender; + + /** + * 联系电话 + */ + private String phone; + + /** + * 邮箱地址 + */ + private String email; + + /** + * 所属组织ID + */ + private Long orgId; + /** + * 所属组织名称 + */ + private String orgName; + + /** + * 账户状态(0=停用,1=启用) + */ + private Integer status; + + /** + * 最后登录时间 + */ + private LocalDateTime lastLoginTime; + + /** + * 备注 + */ + private String remark; + + /** + * 角色列表 + */ + + public static UserVo fromUser(User user) { + UserVo userVo = new UserVo(); + userVo.setId(user.getId()); + userVo.setUsername(user.getUsername()); + userVo.setRealName(user.getRealName()); + userVo.setGender(user.getGender()); + userVo.setPhone(user.getPhone()); + userVo.setEmail(user.getEmail()); + userVo.setOrgId(user.getOrgId()); + userVo.setStatus(user.getStatus()); + userVo.setLastLoginTime(user.getLastLoginTime()); + userVo.setRemark(user.getRemark()); + return userVo; + } +} diff --git a/src/main/java/com/dc/dc_project/service/RoleOrgService.java b/src/main/java/com/dc/dc_project/service/PersonnelOrgService.java similarity index 67% rename from src/main/java/com/dc/dc_project/service/RoleOrgService.java rename to src/main/java/com/dc/dc_project/service/PersonnelOrgService.java index 8a724af..96f690d 100644 --- a/src/main/java/com/dc/dc_project/service/RoleOrgService.java +++ b/src/main/java/com/dc/dc_project/service/PersonnelOrgService.java @@ -1,6 +1,7 @@ package com.dc.dc_project.service; -import com.dc.dc_project.model.pojo.RoleOrg; +import com.dc.dc_project.model.pojo.PersonnelOrg; + import com.baomidou.mybatisplus.extension.service.IService; /** @@ -8,6 +9,6 @@ import com.baomidou.mybatisplus.extension.service.IService; * @description 针对表【sys_role_org(角色-组织关系表)】的数据库操作Service * @createDate 2025-11-12 09:41:21 */ -public interface RoleOrgService extends IService { +public interface PersonnelOrgService extends IService { } diff --git a/src/main/java/com/dc/dc_project/service/UserService.java b/src/main/java/com/dc/dc_project/service/UserService.java index 6e8452a..d270c60 100644 --- a/src/main/java/com/dc/dc_project/service/UserService.java +++ b/src/main/java/com/dc/dc_project/service/UserService.java @@ -1,5 +1,7 @@ package com.dc.dc_project.service; +import com.dc.dc_project.common.ResponseResult; +import com.dc.dc_project.model.dto.user.LoginDto; import com.dc.dc_project.model.pojo.User; import com.baomidou.mybatisplus.extension.service.IService; import org.springframework.stereotype.Service; @@ -13,4 +15,10 @@ import org.springframework.stereotype.Service; @Service public interface UserService extends IService { + /** + * 登录 + * @param loginDto + * @return + */ + ResponseResult login(LoginDto loginDto); } diff --git a/src/main/java/com/dc/dc_project/service/impl/RoleOrgServiceImpl.java b/src/main/java/com/dc/dc_project/service/impl/RoleOrgServiceImpl.java index 4f9a07a..811fb55 100644 --- a/src/main/java/com/dc/dc_project/service/impl/RoleOrgServiceImpl.java +++ b/src/main/java/com/dc/dc_project/service/impl/RoleOrgServiceImpl.java @@ -1,9 +1,9 @@ package com.dc.dc_project.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.dc.dc_project.model.pojo.RoleOrg; -import com.dc.dc_project.service.RoleOrgService; -import com.dc.dc_project.mapper.RoleOrgMapper; +import com.dc.dc_project.model.pojo.PersonnelOrg; +import com.dc.dc_project.service.PersonnelOrgService; +import com.dc.dc_project.mapper.PersonnelOrgMapper; import org.springframework.stereotype.Service; import lombok.extern.slf4j.Slf4j; @@ -14,8 +14,8 @@ import lombok.extern.slf4j.Slf4j; */ @Service @Slf4j -public class RoleOrgServiceImpl extends ServiceImpl - implements RoleOrgService{ +public class RoleOrgServiceImpl extends ServiceImpl + implements PersonnelOrgService { } diff --git a/src/main/java/com/dc/dc_project/service/impl/UserServiceImpl.java b/src/main/java/com/dc/dc_project/service/impl/UserServiceImpl.java index b6d67f0..0cb77b5 100644 --- a/src/main/java/com/dc/dc_project/service/impl/UserServiceImpl.java +++ b/src/main/java/com/dc/dc_project/service/impl/UserServiceImpl.java @@ -1,12 +1,27 @@ package com.dc.dc_project.service.impl; +import cn.dev33.satoken.stp.StpUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dc.dc_project.common.ResponseResult; +import com.dc.dc_project.common.ResultCode; +import com.dc.dc_project.mapper.OrgMapper; +import com.dc.dc_project.mapper.PersonnelMapper; +import com.dc.dc_project.mapper.RoleMapper; +import com.dc.dc_project.model.dto.user.LoginDto; +import com.dc.dc_project.model.pojo.Personnel; import com.dc.dc_project.model.pojo.User; +import com.dc.dc_project.model.vo.PersonnelVo; +import com.dc.dc_project.service.PersonnelService; import com.dc.dc_project.service.UserService; import com.dc.dc_project.mapper.UserMapper; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import lombok.extern.slf4j.Slf4j; +import static com.dc.dc_project.model.vo.PersonnelVo.toVo; + /** * @author ADMIN * @description 针对表【sys_user(系统用户表)】的数据库操作Service实现 @@ -14,9 +29,49 @@ import lombok.extern.slf4j.Slf4j; */ @Service @Slf4j +@RequiredArgsConstructor(onConstructor_ = @Autowired) public class UserServiceImpl extends ServiceImpl implements UserService{ + private final PersonnelMapper personnelMapper; + private final PersonnelService personnelService; + private final OrgMapper orgMapper; + private final RoleMapper roleMapper; + + @Override + public ResponseResult login(LoginDto loginDto) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .eq(User::getPhone, loginDto.getPhone()) + .eq(User::getIsDeleted, 0); + User user = baseMapper.selectOne(queryWrapper); + if (user == null) { + return ResponseResult.error(ResultCode.ERROR_USER_NOT_EXIST); + } + if(user.getStatus() == 0){ + return ResponseResult.error(ResultCode.DISABLE_ACCOUNT); + } + if (user.getPassword().equals(loginDto.getPassword())) { + LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper() + .eq(Personnel::getUserId, user.getId()) + .eq(Personnel::getIsDeleted, 0); + Personnel personnel = personnelService.getOne(queryWrapper1); + if(personnel == null){ + return ResponseResult.error(ResultCode.ERROR_USER_NOT_EXIST); + } + PersonnelVo personnelVo = toVo(personnel); + personnelVo.setOrgId(orgMapper.getOrgIdByPersonnelId(personnel.getId())); + personnelVo.setRoles(roleMapper.getRolesByUserId(personnel.getUserId())); + try{ + StpUtil.login(user.getId()); + }catch (Exception e){ + log.error(e.getMessage()); + } + personnelVo.setToken(StpUtil.getTokenValue()); + return ResponseResult.success(personnelVo); + } + return ResponseResult.error(ResultCode.ERROR_PASSWORD); + } + } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index baa78ed..4f0ac28 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -20,7 +20,7 @@ spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://www.yuxindazhineng.com:3306/dc_lab_system?serverTimeZone=CST&allowPublicKeyRetrieval=true&allowMultiQueries=true + url: jdbc:mysql://8.134.75.237:3309/dc_lab_system?serverTimeZone=CST&allowPublicKeyRetrieval=true&allowMultiQueries=true username: dc_admin password: DC_yxd_admin@01 mybatis-plus: diff --git a/src/main/resources/mapper/OrgMapper.xml b/src/main/resources/mapper/OrgMapper.xml index 3ef05c8..53813f4 100644 --- a/src/main/resources/mapper/OrgMapper.xml +++ b/src/main/resources/mapper/OrgMapper.xml @@ -4,21 +4,12 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - - id,parent_id,name,type,code,sort_order, remark,created_at,updated_at,is_deleted + diff --git a/src/main/resources/mapper/PersonnelMapper.xml b/src/main/resources/mapper/PersonnelMapper.xml index 3a9764d..8f8b2f7 100644 --- a/src/main/resources/mapper/PersonnelMapper.xml +++ b/src/main/resources/mapper/PersonnelMapper.xml @@ -4,26 +4,14 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - - - - - - + id,org_id,user_id,name,position,contact_phone, email,main_responsibility,remark,status,created_by, created_at,updated_at,is_deleted + diff --git a/src/main/resources/mapper/PersonnelOrgMapper.xml b/src/main/resources/mapper/PersonnelOrgMapper.xml new file mode 100644 index 0000000..fa269bb --- /dev/null +++ b/src/main/resources/mapper/PersonnelOrgMapper.xml @@ -0,0 +1,11 @@ + + + + + + + id,role_id,org_id,created_at,created_by + + diff --git a/src/main/resources/mapper/RoleMapper.xml b/src/main/resources/mapper/RoleMapper.xml index 94c26c4..0b014f2 100644 --- a/src/main/resources/mapper/RoleMapper.xml +++ b/src/main/resources/mapper/RoleMapper.xml @@ -4,20 +4,15 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - id,name,code,level,status,description, created_at,updated_at,is_deleted + + diff --git a/src/main/resources/mapper/RoleOrgMapper.xml b/src/main/resources/mapper/RoleOrgMapper.xml deleted file mode 100644 index 9f233de..0000000 --- a/src/main/resources/mapper/RoleOrgMapper.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - id,role_id,org_id,created_at,created_by - -