Compare commits

...

2 Commits

Author SHA1 Message Date
JIAL b799dee5eb JN 2024-02-26 08:33:38 +08:00
JIAL aa9564591b JN 2024-02-26 08:31:53 +08:00
19 changed files with 2351 additions and 72 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,694 @@
2024-02-24 09:07:24.370 INFO 2544 --- [main] com.JN.JNApplication : Starting JNApplication using Java 1.8.0_171 on DESKTOP-OG1MRMC with PID 2544 (D:\JavaProject\JNDemo\target\classes started by Administrator in D:\JavaProject\JNDemo)
2024-02-24 09:07:24.370 INFO 2544 --- [main] com.JN.JNApplication : The following profiles are active: ZM
2024-02-24 09:07:27.010 WARN 2544 --- [Druid-ConnectionPool-Create-970900790] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-02-24 09:07:28.400 INFO 2544 --- [main] com.JN.config.WebMvcConfig : 扩展消息转换器...
2024-02-24 09:07:28.400 INFO 2544 --- [main] com.JN.config.WebMvcConfig : 开始进行静态资源映射...
2024-02-24 09:07:28.556 WARN 2544 --- [main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2024-02-24 09:07:28.791 INFO 2544 --- [main] com.JN.JNApplication : Started JNApplication in 4.875 seconds (JVM running for 5.855)
2024-02-24 09:07:28.806 INFO 2544 --- [main] com.JN.JNApplication : 项目启动成功...
2024-02-24 09:21:05.533 WARN 2544 --- [RMI TCP Accept-0] sun.rmi.transport.tcp : RMI TCP Accept-0: accept loop for ServerSocket[addr=0.0.0.0/0.0.0.0,localport=50752] throws
java.io.IOException: The server sockets created using the LocalRMIServerSocketFactory only accept connections from clients running on the host where the RMI remote objects have been exported.
at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:114)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:405)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:377)
at java.lang.Thread.run(Thread.java:748)
2024-02-24 09:26:47.900 INFO 4576 --- [main] com.JN.JNApplication : Starting JNApplication using Java 1.8.0_171 on DESKTOP-OG1MRMC with PID 4576 (D:\JavaProject\JNDemo\target\classes started by Administrator in D:\JavaProject\JNDemo)
2024-02-24 09:26:47.900 INFO 4576 --- [main] com.JN.JNApplication : The following profiles are active: ZM
2024-02-24 09:26:49.852 WARN 4576 --- [Druid-ConnectionPool-Create-1021082377] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-02-24 09:26:51.024 INFO 4576 --- [main] com.JN.config.WebMvcConfig : 扩展消息转换器...
2024-02-24 09:26:51.024 INFO 4576 --- [main] com.JN.config.WebMvcConfig : 开始进行静态资源映射...
2024-02-24 09:26:51.149 WARN 4576 --- [main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2024-02-24 09:26:51.383 INFO 4576 --- [main] com.JN.JNApplication : Started JNApplication in 3.917 seconds (JVM running for 5.001)
2024-02-24 09:26:51.415 INFO 4576 --- [main] com.JN.JNApplication : 项目启动成功...
2024-02-24 11:05:56.105 INFO 12856 --- [main] com.JN.JNApplication : Starting JNApplication using Java 1.8.0_171 on DESKTOP-OG1MRMC with PID 12856 (D:\JavaProject\JNDemo\target\classes started by Administrator in D:\JavaProject\JNDemo)
2024-02-24 11:05:56.108 INFO 12856 --- [main] com.JN.JNApplication : The following profiles are active: ZM
2024-02-24 11:05:56.351 WARN 12856 --- [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.JN.JNApplication]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'ZMController' for bean class [com.JN.demo.zmquotation.controller.ZMController] conflicts with existing, non-compatible bean definition of same name and class [com.JN.demo.jnzmquatation.controller.ZMController]
2024-02-24 11:05:56.383 ERROR 12856 --- [main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.JN.JNApplication]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'ZMController' for bean class [com.JN.demo.zmquotation.controller.ZMController] conflicts with existing, non-compatible bean definition of same name and class [com.JN.demo.jnzmquatation.controller.ZMController]
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:189)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:331)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:247)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:311)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:112)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:746)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:782)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:774)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:339)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1340)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329)
at com.JN.JNApplication.main(JNApplication.java:15)
Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'ZMController' for bean class [com.JN.demo.zmquotation.controller.ZMController] conflicts with existing, non-compatible bean definition of same name and class [com.JN.demo.jnzmquatation.controller.ZMController]
at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.checkCandidate(ClassPathBeanDefinitionScanner.java:349)
at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:287)
at org.springframework.context.annotation.ComponentScanAnnotationParser.parse(ComponentScanAnnotationParser.java:132)
at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:296)
at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:250)
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:207)
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:175)
... 14 common frames omitted
2024-02-24 11:07:31.546 INFO 11700 --- [main] com.JN.JNApplication : Starting JNApplication using Java 1.8.0_171 on DESKTOP-OG1MRMC with PID 11700 (D:\JavaProject\JNDemo\target\classes started by Administrator in D:\JavaProject\JNDemo)
2024-02-24 11:07:31.549 INFO 11700 --- [main] com.JN.JNApplication : The following profiles are active: ZM
2024-02-24 11:07:31.781 WARN 11700 --- [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.JN.JNApplication]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'ZMController' for bean class [com.JN.demo.zmquotation.controller.ZMController] conflicts with existing, non-compatible bean definition of same name and class [com.JN.demo.jnzmquatation.controller.ZMController]
2024-02-24 11:07:31.813 ERROR 11700 --- [main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.JN.JNApplication]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'ZMController' for bean class [com.JN.demo.zmquotation.controller.ZMController] conflicts with existing, non-compatible bean definition of same name and class [com.JN.demo.jnzmquatation.controller.ZMController]
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:189)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:331)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:247)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:311)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:112)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:746)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:782)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:774)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:339)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1340)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329)
at com.JN.JNApplication.main(JNApplication.java:15)
Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'ZMController' for bean class [com.JN.demo.zmquotation.controller.ZMController] conflicts with existing, non-compatible bean definition of same name and class [com.JN.demo.jnzmquatation.controller.ZMController]
at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.checkCandidate(ClassPathBeanDefinitionScanner.java:349)
at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:287)
at org.springframework.context.annotation.ComponentScanAnnotationParser.parse(ComponentScanAnnotationParser.java:132)
at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:296)
at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:250)
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:207)
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:175)
... 14 common frames omitted
2024-02-24 11:08:51.104 INFO 10484 --- [main] com.JN.JNApplication : Starting JNApplication using Java 1.8.0_171 on DESKTOP-OG1MRMC with PID 10484 (D:\JavaProject\JNDemo\target\classes started by Administrator in D:\JavaProject\JNDemo)
2024-02-24 11:08:51.107 INFO 10484 --- [main] com.JN.JNApplication : The following profiles are active: ZM
2024-02-24 11:08:51.368 WARN 10484 --- [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.JN.JNApplication]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'inventoryServiceImpl' for bean class [com.JN.demo.zmquotation.service.impl.InventoryServiceImpl] conflicts with existing, non-compatible bean definition of same name and class [com.JN.demo.jnzmquatation.service.impl.InventoryServiceImpl]
2024-02-24 11:08:51.397 ERROR 10484 --- [main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.JN.JNApplication]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'inventoryServiceImpl' for bean class [com.JN.demo.zmquotation.service.impl.InventoryServiceImpl] conflicts with existing, non-compatible bean definition of same name and class [com.JN.demo.jnzmquatation.service.impl.InventoryServiceImpl]
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:189)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:331)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:247)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:311)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:112)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:746)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:782)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:774)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:339)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1340)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329)
at com.JN.JNApplication.main(JNApplication.java:15)
Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'inventoryServiceImpl' for bean class [com.JN.demo.zmquotation.service.impl.InventoryServiceImpl] conflicts with existing, non-compatible bean definition of same name and class [com.JN.demo.jnzmquatation.service.impl.InventoryServiceImpl]
at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.checkCandidate(ClassPathBeanDefinitionScanner.java:349)
at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:287)
at org.springframework.context.annotation.ComponentScanAnnotationParser.parse(ComponentScanAnnotationParser.java:132)
at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:296)
at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:250)
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:207)
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:175)
... 14 common frames omitted
2024-02-24 11:13:02.137 INFO 4608 --- [main] com.JN.JNApplication : Starting JNApplication using Java 1.8.0_171 on DESKTOP-OG1MRMC with PID 4608 (D:\JavaProject\JNDemo\target\classes started by Administrator in D:\JavaProject\JNDemo)
2024-02-24 11:13:02.139 INFO 4608 --- [main] com.JN.JNApplication : The following profiles are active: ZM
2024-02-24 11:13:04.284 WARN 4608 --- [Druid-ConnectionPool-Create-388005723] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-02-24 11:13:05.566 INFO 4608 --- [main] com.JN.config.WebMvcConfig : 扩展消息转换器...
2024-02-24 11:13:05.573 INFO 4608 --- [main] com.JN.config.WebMvcConfig : 开始进行静态资源映射...
2024-02-24 11:13:05.711 WARN 4608 --- [main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2024-02-24 11:13:05.961 INFO 4608 --- [main] com.JN.JNApplication : Started JNApplication in 4.27 seconds (JVM running for 5.18)
2024-02-24 11:13:05.968 INFO 4608 --- [main] com.JN.JNApplication : 项目启动成功...
2024-02-24 11:13:12.258 INFO 4608 --- [http-nio-3333-exec-2] com.JN.filter.LoginCheckFilter : 拦截到请求:/ZM
2024-02-24 11:13:12.259 INFO 4608 --- [http-nio-3333-exec-2] com.JN.filter.LoginCheckFilter : 本次请求/ZM不需要处理
2024-02-24 11:13:12.541 INFO 4608 --- [http-nio-3333-exec-1] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/zmquotation/css/index.css
2024-02-24 11:13:12.541 INFO 4608 --- [http-nio-3333-exec-1] com.JN.filter.LoginCheckFilter : 本次请求/static/zmquotation/css/index.css不需要处理
2024-02-24 11:13:12.573 INFO 4608 --- [http-nio-3333-exec-3] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/zmquotation/js/index.js
2024-02-24 11:13:12.574 INFO 4608 --- [http-nio-3333-exec-3] com.JN.filter.LoginCheckFilter : 本次请求/static/zmquotation/js/index.js不需要处理
2024-02-24 11:13:12.821 INFO 4608 --- [http-nio-3333-exec-4] com.JN.filter.LoginCheckFilter : 拦截到请求:/zmquotation/inventoryList
2024-02-24 11:13:12.821 INFO 4608 --- [http-nio-3333-exec-4] com.JN.filter.LoginCheckFilter : 本次请求/zmquotation/inventoryList不需要处理
2024-02-24 11:13:20.355 INFO 4608 --- [http-nio-3333-exec-5] com.JN.filter.LoginCheckFilter : 拦截到请求:/zmquotation/materialList
2024-02-24 11:13:20.355 INFO 4608 --- [http-nio-3333-exec-5] com.JN.filter.LoginCheckFilter : 本次请求/zmquotation/materialList不需要处理
2024-02-24 11:14:25.099 INFO 3312 --- [main] com.JN.JNApplication : Starting JNApplication using Java 1.8.0_171 on DESKTOP-OG1MRMC with PID 3312 (D:\JavaProject\JNDemo\target\classes started by Administrator in D:\JavaProject\JNDemo)
2024-02-24 11:14:25.101 INFO 3312 --- [main] com.JN.JNApplication : The following profiles are active: ZM
2024-02-24 11:14:27.274 WARN 3312 --- [Druid-ConnectionPool-Create-1021082377] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-02-24 11:14:28.772 INFO 3312 --- [main] com.JN.config.WebMvcConfig : 扩展消息转换器...
2024-02-24 11:14:28.779 INFO 3312 --- [main] com.JN.config.WebMvcConfig : 开始进行静态资源映射...
2024-02-24 11:14:28.919 WARN 3312 --- [main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2024-02-24 11:14:29.172 INFO 3312 --- [main] com.JN.JNApplication : Started JNApplication in 4.493 seconds (JVM running for 5.398)
2024-02-24 11:14:29.180 INFO 3312 --- [main] com.JN.JNApplication : 项目启动成功...
2024-02-24 12:33:40.710 INFO 14952 --- [main] com.JN.JNApplication : Starting JNApplication using Java 1.8.0_171 on DESKTOP-OG1MRMC with PID 14952 (D:\JavaProject\JNDemo\target\classes started by Administrator in D:\JavaProject\JNDemo)
2024-02-24 12:33:40.713 INFO 14952 --- [main] com.JN.JNApplication : The following profiles are active: ZM
2024-02-24 12:33:42.819 WARN 14952 --- [Druid-ConnectionPool-Create-925913781] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-02-24 12:33:44.092 INFO 14952 --- [main] com.JN.config.WebMvcConfig : 扩展消息转换器...
2024-02-24 12:33:44.099 INFO 14952 --- [main] com.JN.config.WebMvcConfig : 开始进行静态资源映射...
2024-02-24 12:33:44.235 WARN 14952 --- [main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2024-02-24 12:33:44.490 INFO 14952 --- [main] com.JN.JNApplication : Started JNApplication in 4.191 seconds (JVM running for 5.082)
2024-02-24 12:33:44.496 INFO 14952 --- [main] com.JN.JNApplication : 项目启动成功...
2024-02-24 12:35:26.978 INFO 14952 --- [http-nio-3333-exec-1] com.JN.filter.LoginCheckFilter : 拦截到请求:/zmquotation/materialList
2024-02-24 12:35:26.979 INFO 14952 --- [http-nio-3333-exec-1] com.JN.filter.LoginCheckFilter : 本次请求/zmquotation/materialList不需要处理
2024-02-24 12:35:27.038 WARN 14952 --- [Druid-ConnectionPool-Create-925913781] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-02-24 12:35:27.132 ERROR 14952 --- [http-nio-3333-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 'LIMIT' 附近有语法错误。
### The error may exist in com/JN/demo/zmquotation/mapper/MaterialMapper.java (best guess)
### The error may involve com.JN.demo.zmquotation.mapper.MaterialMapper.queryMaterialListByParam-Inline
### The error occurred while setting parameters
### SQL: SELECT [cb_name] as material_name ,[cb_cj] as factory_price ,[cb_cbj] as cost_price ,[cb_zl] as net_volume ,[cb_gspj] as inventory ,[cbpj_zl] as weigh_inv ,[CB_bz] as standard ,[cb_xx] as model ,[cb_gg] as specification ,[cb_dy] as voltage ,[cb_cljg] as mat_price ,[tdtjg] as total_copper_consume ,[ldtjg] as total_aluminum_consume ,[rgsdf] as total_l_h_cost ,[cb_zqf]as steam_fee FROM [zm_erp2].[dbo].[view_cb_material] WHERE [cb_name] like '%' and [cb_name] like '%kvv%' and [cb_gg] like '%%' LIMIT ?, ?
### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 'LIMIT' 附近有语法错误。] with root cause
com.microsoft.sqlserver.jdbc.SQLServerException: 'LIMIT' 附近有语法错误。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:265)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1662)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:615)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:537)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7417)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:3488)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:262)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:237)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.execute(SQLServerPreparedStatement.java:515)
at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3461)
at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)
at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)
at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)
at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)
at com.sun.proxy.$Proxy106.execute(Unknown Source)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)
at com.sun.proxy.$Proxy104.query(Unknown Source)
at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:69)
at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.query(MybatisCachingExecutor.java:165)
at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
at com.sun.proxy.$Proxy103.query(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)
at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:98)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
at com.sun.proxy.$Proxy103.query(Unknown Source)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
at com.sun.proxy.$Proxy78.selectList(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173)
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
at com.sun.proxy.$Proxy91.queryMaterialListByParam(Unknown Source)
at com.JN.demo.zmquotation.service.impl.MaterialServiceImpl.queryMaterialListByParam(MaterialServiceImpl.java:36)
at com.JN.demo.zmquotation.controller.ZMController.queryMaterialList(ZMController.java:75)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1060)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:962)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.JN.filter.LoginCheckFilter.doFilter(LoginCheckFilter.java:48)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
2024-02-24 12:39:41.638 INFO 4764 --- [main] com.JN.JNApplication : Starting JNApplication using Java 1.8.0_171 on DESKTOP-OG1MRMC with PID 4764 (D:\JavaProject\JNDemo\target\classes started by Administrator in D:\JavaProject\JNDemo)
2024-02-24 12:39:41.640 INFO 4764 --- [main] com.JN.JNApplication : The following profiles are active: ZM
2024-02-24 12:39:43.682 WARN 4764 --- [Druid-ConnectionPool-Create-1999639763] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-02-24 12:39:44.874 INFO 4764 --- [main] com.JN.config.WebMvcConfig : 扩展消息转换器...
2024-02-24 12:39:44.881 INFO 4764 --- [main] com.JN.config.WebMvcConfig : 开始进行静态资源映射...
2024-02-24 12:39:45.008 WARN 4764 --- [main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2024-02-24 12:39:45.248 INFO 4764 --- [main] com.JN.JNApplication : Started JNApplication in 4.044 seconds (JVM running for 5.119)
2024-02-24 12:39:45.254 INFO 4764 --- [main] com.JN.JNApplication : 项目启动成功...
2024-02-24 12:39:49.467 INFO 4764 --- [http-nio-3333-exec-1] com.JN.filter.LoginCheckFilter : 拦截到请求:/zmquotation/materialList
2024-02-24 12:39:49.468 INFO 4764 --- [http-nio-3333-exec-1] com.JN.filter.LoginCheckFilter : 本次请求/zmquotation/materialList不需要处理
2024-02-24 12:39:49.610 ERROR 4764 --- [http-nio-3333-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 'OFFSET' 附近有语法错误。
### The error may exist in com/JN/demo/zmquotation/mapper/MaterialMapper.java (best guess)
### The error may involve com.JN.demo.zmquotation.mapper.MaterialMapper.queryMaterialListByParam-Inline
### The error occurred while setting parameters
### SQL: SELECT [cb_name] as material_name ,[cb_cj] as factory_price ,[cb_cbj] as cost_price ,[cb_zl] as net_volume ,[cb_gspj] as inventory ,[cbpj_zl] as weigh_inv ,[CB_bz] as standard ,[cb_xx] as model ,[cb_gg] as specification ,[cb_dy] as voltage ,[cb_cljg] as mat_price ,[tdtjg] as total_copper_consume ,[ldtjg] as total_aluminum_consume ,[rgsdf] as total_l_h_cost ,[cb_zqf]as steam_fee FROM [zm_erp2].[dbo].[view_cb_material] WHERE [cb_name] like '%' and [cb_name] like '%kvv%' and [cb_gg] like '%%' OFFSET ? ROWS FETCH NEXT ? ROWS ONLY
### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 'OFFSET' 附近有语法错误。] with root cause
com.microsoft.sqlserver.jdbc.SQLServerException: 'OFFSET' 附近有语法错误。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:265)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1662)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:615)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:537)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7417)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:3488)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:262)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:237)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.execute(SQLServerPreparedStatement.java:515)
at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3461)
at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)
at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)
at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)
at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)
at com.sun.proxy.$Proxy106.execute(Unknown Source)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)
at com.sun.proxy.$Proxy104.query(Unknown Source)
at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:69)
at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.query(MybatisCachingExecutor.java:165)
at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
at com.sun.proxy.$Proxy103.query(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)
at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:98)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
at com.sun.proxy.$Proxy103.query(Unknown Source)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
at com.sun.proxy.$Proxy78.selectList(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173)
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
at com.sun.proxy.$Proxy91.queryMaterialListByParam(Unknown Source)
at com.JN.demo.zmquotation.service.impl.MaterialServiceImpl.queryMaterialListByParam(MaterialServiceImpl.java:36)
at com.JN.demo.zmquotation.controller.ZMController.queryMaterialList(ZMController.java:75)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1060)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:962)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.JN.filter.LoginCheckFilter.doFilter(LoginCheckFilter.java:48)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
2024-02-24 12:41:06.567 INFO 3524 --- [main] com.JN.JNApplication : Starting JNApplication using Java 1.8.0_171 on DESKTOP-OG1MRMC with PID 3524 (D:\JavaProject\JNDemo\target\classes started by Administrator in D:\JavaProject\JNDemo)
2024-02-24 12:41:06.585 INFO 3524 --- [main] com.JN.JNApplication : The following profiles are active: ZM
2024-02-24 12:41:08.804 WARN 3524 --- [Druid-ConnectionPool-Create-646337666] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-02-24 12:41:10.108 INFO 3524 --- [main] com.JN.config.WebMvcConfig : 扩展消息转换器...
2024-02-24 12:41:10.115 INFO 3524 --- [main] com.JN.config.WebMvcConfig : 开始进行静态资源映射...
2024-02-24 12:41:10.254 WARN 3524 --- [main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2024-02-24 12:41:10.515 INFO 3524 --- [main] com.JN.JNApplication : Started JNApplication in 4.377 seconds (JVM running for 5.42)
2024-02-24 12:41:10.520 INFO 3524 --- [main] com.JN.JNApplication : 项目启动成功...
2024-02-24 12:41:41.176 INFO 3524 --- [http-nio-3333-exec-1] com.JN.filter.LoginCheckFilter : 拦截到请求:/zmquotation/materialList
2024-02-24 12:41:41.177 INFO 3524 --- [http-nio-3333-exec-1] com.JN.filter.LoginCheckFilter : 本次请求/zmquotation/materialList不需要处理
2024-02-24 12:41:41.311 ERROR 3524 --- [http-nio-3333-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 'CONCAT' 不是可以识别的 内置函数名称。
### The error may exist in com/JN/demo/zmquotation/mapper/MaterialMapper.java (best guess)
### The error may involve com.JN.demo.zmquotation.mapper.MaterialMapper.queryMaterialListByParam-Inline
### The error occurred while setting parameters
### SQL: SELECT [cb_name] as material_name ,[cb_cj] as factory_price ,[cb_cbj] as cost_price ,[cb_zl] as net_volume ,[cb_gspj] as inventory ,[cbpj_zl] as weigh_inv ,[CB_bz] as standard ,[cb_xx] as model ,[cb_gg] as specification ,[cb_dy] as voltage ,[cb_cljg] as mat_price ,[tdtjg] as total_copper_consume ,[ldtjg] as total_aluminum_consume ,[rgsdf] as total_l_h_cost ,[cb_zqf]as steam_fee FROM [zm_erp2].[dbo].[view_cb_material] WHERE [cb_name] like CONCAT(?, '%') and [cb_name] like CONCAT('%', ?, '%') and [cb_gg] like CONCAT('%', ?, '%') OFFSET ? ROWS FETCH NEXT ? ROWS ONLY
### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 'CONCAT' 不是可以识别的 内置函数名称。] with root cause
com.microsoft.sqlserver.jdbc.SQLServerException: 'CONCAT' 不是可以识别的 内置函数名称。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:265)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1662)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:615)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:537)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7417)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:3488)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:262)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:237)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.execute(SQLServerPreparedStatement.java:515)
at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3461)
at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)
at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)
at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)
at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)
at com.sun.proxy.$Proxy106.execute(Unknown Source)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)
at com.sun.proxy.$Proxy104.query(Unknown Source)
at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:69)
at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.query(MybatisCachingExecutor.java:165)
at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
at com.sun.proxy.$Proxy103.query(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)
at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:98)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
at com.sun.proxy.$Proxy103.query(Unknown Source)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
at com.sun.proxy.$Proxy78.selectList(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173)
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
at com.sun.proxy.$Proxy91.queryMaterialListByParam(Unknown Source)
at com.JN.demo.zmquotation.service.impl.MaterialServiceImpl.queryMaterialListByParam(MaterialServiceImpl.java:36)
at com.JN.demo.zmquotation.controller.ZMController.queryMaterialList(ZMController.java:75)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1060)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:962)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.JN.filter.LoginCheckFilter.doFilter(LoginCheckFilter.java:48)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
2024-02-24 12:43:05.075 INFO 14628 --- [main] com.JN.JNApplication : Starting JNApplication using Java 1.8.0_171 on DESKTOP-OG1MRMC with PID 14628 (D:\JavaProject\JNDemo\target\classes started by Administrator in D:\JavaProject\JNDemo)
2024-02-24 12:43:05.077 INFO 14628 --- [main] com.JN.JNApplication : The following profiles are active: ZM
2024-02-24 12:43:07.151 WARN 14628 --- [Druid-ConnectionPool-Create-1243227501] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-02-24 12:43:08.542 INFO 14628 --- [main] com.JN.config.WebMvcConfig : 扩展消息转换器...
2024-02-24 12:43:08.549 INFO 14628 --- [main] com.JN.config.WebMvcConfig : 开始进行静态资源映射...
2024-02-24 12:43:08.689 WARN 14628 --- [main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2024-02-24 12:43:08.938 INFO 14628 --- [main] com.JN.JNApplication : Started JNApplication in 4.266 seconds (JVM running for 5.101)
2024-02-24 12:43:08.945 INFO 14628 --- [main] com.JN.JNApplication : 项目启动成功...
2024-02-24 12:43:14.920 INFO 14628 --- [http-nio-3333-exec-2] com.JN.filter.LoginCheckFilter : 拦截到请求:/zmquotation/materialList
2024-02-24 12:43:14.921 INFO 14628 --- [http-nio-3333-exec-2] com.JN.filter.LoginCheckFilter : 本次请求/zmquotation/materialList不需要处理
2024-02-24 12:43:15.052 ERROR 14628 --- [http-nio-3333-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 'OFFSET' 附近有语法错误。
### The error may exist in com/JN/demo/zmquotation/mapper/MaterialMapper.java (best guess)
### The error may involve com.JN.demo.zmquotation.mapper.MaterialMapper.queryMaterialListByParam-Inline
### The error occurred while setting parameters
### SQL: SELECT [cb_name] as material_name ,[cb_cj] as factory_price ,[cb_cbj] as cost_price ,[cb_zl] as net_volume ,[cb_gspj] as inventory ,[cbpj_zl] as weigh_inv ,[CB_bz] as standard ,[cb_xx] as model ,[cb_gg] as specification ,[cb_dy] as voltage ,[cb_cljg] as mat_price ,[tdtjg] as total_copper_consume ,[ldtjg] as total_aluminum_consume ,[rgsdf] as total_l_h_cost ,[cb_zqf]as steam_fee FROM [zm_erp2].[dbo].[view_cb_material] WHERE [cb_name] like ? + '%' and [cb_name] like '%' + ? + '%' and [cb_gg] like '%' + ? + '%' OFFSET ? ROWS FETCH NEXT ? ROWS ONLY
### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 'OFFSET' 附近有语法错误。] with root cause
com.microsoft.sqlserver.jdbc.SQLServerException: 'OFFSET' 附近有语法错误。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:265)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1662)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:615)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:537)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7417)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:3488)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:262)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:237)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.execute(SQLServerPreparedStatement.java:515)
at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3461)
at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)
at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)
at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)
at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)
at com.sun.proxy.$Proxy106.execute(Unknown Source)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)
at com.sun.proxy.$Proxy104.query(Unknown Source)
at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:69)
at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.query(MybatisCachingExecutor.java:165)
at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
at com.sun.proxy.$Proxy103.query(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)
at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:98)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
at com.sun.proxy.$Proxy103.query(Unknown Source)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
at com.sun.proxy.$Proxy78.selectList(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173)
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
at com.sun.proxy.$Proxy91.queryMaterialListByParam(Unknown Source)
at com.JN.demo.zmquotation.service.impl.MaterialServiceImpl.queryMaterialListByParam(MaterialServiceImpl.java:36)
at com.JN.demo.zmquotation.controller.ZMController.queryMaterialList(ZMController.java:75)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1060)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:962)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.JN.filter.LoginCheckFilter.doFilter(LoginCheckFilter.java:48)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
2024-02-24 13:03:30.319 INFO 15576 --- [main] com.JN.JNApplication : Starting JNApplication using Java 1.8.0_171 on DESKTOP-OG1MRMC with PID 15576 (D:\JavaProject\JNDemo\target\classes started by Administrator in D:\JavaProject\JNDemo)
2024-02-24 13:03:30.319 INFO 15576 --- [main] com.JN.JNApplication : The following profiles are active: ZM
2024-02-24 13:03:32.265 WARN 15576 --- [Druid-ConnectionPool-Create-1690221909] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-02-24 13:03:33.579 INFO 15576 --- [main] com.JN.config.WebMvcConfig : 扩展消息转换器...
2024-02-24 13:03:33.586 INFO 15576 --- [main] com.JN.config.WebMvcConfig : 开始进行静态资源映射...
2024-02-24 13:03:33.756 WARN 15576 --- [main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2024-02-24 13:03:34.031 INFO 15576 --- [main] com.JN.JNApplication : Started JNApplication in 4.114 seconds (JVM running for 4.924)
2024-02-24 13:03:34.039 INFO 15576 --- [main] com.JN.JNApplication : 项目启动成功...
2024-02-24 13:03:43.949 INFO 15576 --- [http-nio-3333-exec-1] com.JN.filter.LoginCheckFilter : 拦截到请求:/zmquotation/materialList
2024-02-24 13:03:43.950 INFO 15576 --- [http-nio-3333-exec-1] com.JN.filter.LoginCheckFilter : 本次请求/zmquotation/materialList不需要处理
2024-02-24 14:38:42.224 INFO 3060 --- [main] com.JN.JNApplication : Starting JNApplication using Java 1.8.0_171 on DESKTOP-OG1MRMC with PID 3060 (D:\JavaProject\JNDemo\target\classes started by Administrator in D:\JavaProject\JNDemo)
2024-02-24 14:38:42.224 INFO 3060 --- [main] com.JN.JNApplication : The following profiles are active: ZM
2024-02-24 14:38:44.304 WARN 3060 --- [Druid-ConnectionPool-Create-1918121287] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-02-24 14:38:45.460 INFO 3060 --- [main] com.JN.config.WebMvcConfig : 扩展消息转换器...
2024-02-24 14:38:45.460 INFO 3060 --- [main] com.JN.config.WebMvcConfig : 开始进行静态资源映射...
2024-02-24 14:38:45.601 WARN 3060 --- [main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2024-02-24 14:38:45.820 INFO 3060 --- [main] com.JN.JNApplication : Started JNApplication in 4.007 seconds (JVM running for 4.885)
2024-02-24 14:38:45.820 INFO 3060 --- [main] com.JN.JNApplication : 项目启动成功...
2024-02-24 14:39:00.615 INFO 3060 --- [http-nio-3333-exec-1] com.JN.filter.LoginCheckFilter : 拦截到请求:/zmquotation/materialList
2024-02-24 14:39:00.616 INFO 3060 --- [http-nio-3333-exec-1] com.JN.filter.LoginCheckFilter : 本次请求/zmquotation/materialList不需要处理
2024-02-24 14:51:00.968 INFO 15648 --- [main] com.JN.JNApplication : Starting JNApplication using Java 1.8.0_171 on DESKTOP-OG1MRMC with PID 15648 (D:\JavaProject\JNDemo\target\classes started by Administrator in D:\JavaProject\JNDemo)
2024-02-24 14:51:00.968 INFO 15648 --- [main] com.JN.JNApplication : The following profiles are active: ZM
2024-02-24 14:51:02.999 WARN 15648 --- [Druid-ConnectionPool-Create-1719519917] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-02-24 14:51:04.367 INFO 15648 --- [main] com.JN.config.WebMvcConfig : 扩展消息转换器...
2024-02-24 14:51:04.367 INFO 15648 --- [main] com.JN.config.WebMvcConfig : 开始进行静态资源映射...
2024-02-24 14:51:04.503 WARN 15648 --- [main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2024-02-24 14:51:04.729 INFO 15648 --- [main] com.JN.JNApplication : Started JNApplication in 4.154 seconds (JVM running for 5.024)
2024-02-24 14:51:04.744 INFO 15648 --- [main] com.JN.JNApplication : 项目启动成功...
2024-02-24 14:51:11.547 INFO 15648 --- [http-nio-3333-exec-1] com.JN.filter.LoginCheckFilter : 拦截到请求:/ZM
2024-02-24 14:51:11.547 INFO 15648 --- [http-nio-3333-exec-1] com.JN.filter.LoginCheckFilter : 本次请求/ZM不需要处理
2024-02-24 14:51:11.800 INFO 15648 --- [http-nio-3333-exec-2] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/index.css
2024-02-24 14:51:11.801 INFO 15648 --- [http-nio-3333-exec-2] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/index.css不需要处理
2024-02-24 14:51:11.802 INFO 15648 --- [http-nio-3333-exec-3] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/zmquotation/css/index.css
2024-02-24 14:51:11.803 INFO 15648 --- [http-nio-3333-exec-3] com.JN.filter.LoginCheckFilter : 本次请求/static/zmquotation/css/index.css不需要处理
2024-02-24 14:51:11.804 INFO 15648 --- [http-nio-3333-exec-4] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/index.js
2024-02-24 14:51:11.804 INFO 15648 --- [http-nio-3333-exec-4] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/index.js不需要处理
2024-02-24 14:51:11.803 INFO 15648 --- [http-nio-3333-exec-5] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/vue/vue.js
2024-02-24 14:51:11.805 INFO 15648 --- [http-nio-3333-exec-5] com.JN.filter.LoginCheckFilter : 本次请求/plugins/vue/vue.js不需要处理
2024-02-24 14:51:11.807 INFO 15648 --- [http-nio-3333-exec-6] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/calendar/calendar.js
2024-02-24 14:51:11.808 INFO 15648 --- [http-nio-3333-exec-8] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/axios/axios.min.js
2024-02-24 14:51:11.812 INFO 15648 --- [http-nio-3333-exec-8] com.JN.filter.LoginCheckFilter : 本次请求/plugins/axios/axios.min.js不需要处理
2024-02-24 14:51:11.812 INFO 15648 --- [http-nio-3333-exec-6] com.JN.filter.LoginCheckFilter : 本次请求/plugins/calendar/calendar.js不需要处理
2024-02-24 14:51:11.846 INFO 15648 --- [http-nio-3333-exec-7] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/axios/request.js
2024-02-24 14:51:11.846 INFO 15648 --- [http-nio-3333-exec-7] com.JN.filter.LoginCheckFilter : 本次请求/plugins/axios/request.js不需要处理
2024-02-24 14:51:11.871 INFO 15648 --- [http-nio-3333-exec-9] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/zmquotation/js/index.js
2024-02-24 14:51:11.871 INFO 15648 --- [http-nio-3333-exec-9] com.JN.filter.LoginCheckFilter : 本次请求/static/zmquotation/js/index.js不需要处理
2024-02-24 14:51:12.164 INFO 15648 --- [http-nio-3333-exec-10] com.JN.filter.LoginCheckFilter : 拦截到请求:/zmquotation/inventoryList
2024-02-24 14:51:12.164 INFO 15648 --- [http-nio-3333-exec-10] com.JN.filter.LoginCheckFilter : 本次请求/zmquotation/inventoryList不需要处理
2024-02-24 14:51:12.180 INFO 15648 --- [http-nio-3333-exec-1] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/image/JNlogo.png
2024-02-24 14:51:12.180 INFO 15648 --- [http-nio-3333-exec-1] com.JN.filter.LoginCheckFilter : 本次请求/static/image/JNlogo.png不需要处理
2024-02-24 14:51:13.207 INFO 15648 --- [http-nio-3333-exec-3] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/fonts/element-icons.woff
2024-02-24 14:51:13.207 INFO 15648 --- [http-nio-3333-exec-3] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/fonts/element-icons.woff不需要处理
2024-02-24 14:51:16.572 INFO 15648 --- [http-nio-3333-exec-2] com.JN.filter.LoginCheckFilter : 拦截到请求:/zmquotation/materialList
2024-02-24 14:51:16.573 INFO 15648 --- [http-nio-3333-exec-2] com.JN.filter.LoginCheckFilter : 本次请求/zmquotation/materialList不需要处理

View File

@ -0,0 +1,28 @@
package com.JN.demo.jnzmquatation.controller;
import com.JN.common.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @ClassName ZMController
* @Description TODO
* @Author JIAL
* @Date 2024/2/19 8:47
* @Version 1.0
*/
@RestController
@Slf4j
@RequestMapping("/jnquotation")
public class JNController {
}

View File

@ -16,7 +16,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @ClassName ZMController * @ClassName ZMController
@ -47,7 +49,7 @@ public class ZMController {
* @return: com.JN.common.R<java.util.List<com.JN.demo.zmquotation.dto.RegionDto>> * @return: com.JN.common.R<java.util.List<com.JN.demo.zmquotation.dto.RegionDto>>
*/ */
@PostMapping("/regionList") @PostMapping("/regionList")
public R<List<RegionDto>> queryRegionList(@RequestParam("regionName") String regionName){ public R queryRegionList(@RequestParam("regionName") String regionName){
List<RegionDto> regionList = regionService.queryRegionListByName(regionName); List<RegionDto> regionList = regionService.queryRegionListByName(regionName);
@ -67,11 +69,15 @@ public class ZMController {
* @return: com.JN.common.R<java.util.List<com.JN.demo.zmquotation.dto.MaterialDto>> * @return: com.JN.common.R<java.util.List<com.JN.demo.zmquotation.dto.MaterialDto>>
*/ */
@PostMapping("/materialList") @PostMapping("/materialList")
public R<List<MaterialDto>> queryMaterialList(@RequestParam("precMaterialName") String precMaterialName, public R queryMaterialList(@RequestParam("precMaterialName") String precMaterialName,
@RequestParam("vagueMaterialName") String vagueMaterialName, @RequestParam("vagueMaterialName") String vagueMaterialName,
@RequestParam("vagueModel") String vagueModel) { @RequestParam("vagueModel") String vagueModel) {
List<MaterialDto> materialList = materialService.queryMaterialListByParam(precMaterialName, vagueMaterialName, vagueModel); List<MaterialDto> materialList = materialService.queryMaterialListByParam(precMaterialName, vagueMaterialName, vagueModel);
/* Map<String, Object> result = new HashMap<>();
result.put("rows", materialList);
result.put("total", materialNum);*/
return R.success(materialList); return R.success(materialList);
} }
@ -83,7 +89,7 @@ public class ZMController {
* @return: com.JN.common.R<java.util.List<com.JN.demo.zmquotation.dto.InventoryDto>> * @return: com.JN.common.R<java.util.List<com.JN.demo.zmquotation.dto.InventoryDto>>
*/ */
@PostMapping("/inventoryList") @PostMapping("/inventoryList")
public R<List<InventoryDto>> queryInventoryList() { public R queryInventoryList() {
List<InventoryDto> inventoryList = inventoryService.queryInventoryList(); List<InventoryDto> inventoryList = inventoryService.queryInventoryList();
return R.success(inventoryList); return R.success(inventoryList);

View File

@ -16,22 +16,30 @@ import java.util.List;
*/ */
@Mapper @Mapper
public interface MaterialMapper { public interface MaterialMapper {
@Select("SELECT [cb_name] as material_name\n" + @Select(" SELECT [cb_name] as material_name\n" +
" ,[cb_cj] as factory_price\n" + " ,[cb_cj] as factory_price\n" +
" ,[cb_cbj] as cost_price\n" + " ,[cb_cbj] as cost_price\n" +
" ,[cb_zl] as net_volume\n" + " ,[cb_zl] as net_volume\n" +
" ,[cb_gspj] as inventory\n" + " ,[cb_gspj] as inventory\n" +
" ,[cbpj_zl] as weigh_inv\n" + " ,[cbpj_zl] as weigh_inv\n" +
" ,[CB_bz] as standard\n" + " ,[CB_bz] as standard\n" +
" ,[cb_xx] as model\n" + " ,[cb_xx] as model\n" +
" ,[cb_gg] as specification\n" + " ,[cb_gg] as specification\n" +
" ,[cb_dy] as voltage\n" + " ,[cb_dy] as voltage\n" +
" ,[cb_cljg] as mat_price\n" + " ,[cb_cljg] as mat_price\n" +
" ,[tdtjg] as total_copper_consume\n" + " ,[tdtjg] as total_copper_consume\n" +
" ,[ldtjg] as total_aluminum_consume\n" + " ,[ldtjg] as total_aluminum_consume\n" +
" ,[rgsdf] as total_l_h_cost\n" + " ,[rgsdf] as total_l_h_cost\n" +
" ,[cb_zqf]as steam_fee\n" + " ,[cb_zqf]as steam_fee\n" +
" ,ROW_NUMBER() OVER(Order by [cb_name]) AS RowId\n" +
" FROM [zm_erp2].[dbo].[view_cb_material]\n" +
" WHERE [cb_name] like '${precMaterialName}%' and [cb_name] like '%${vagueMaterialName}%' and [cb_gg] like '%${vagueModel}%'")
List<MaterialDto> queryMaterialListByParam(String precMaterialName, String vagueMaterialName, String vagueModel);
@Select(" SELECT \n" +
"\tCOUNT(*) AS total\n" +
" FROM [zm_erp2].[dbo].[view_cb_material]\n" + " FROM [zm_erp2].[dbo].[view_cb_material]\n" +
" WHERE [cb_name] like '${precMaterialName}%' and [cb_name] like '%${vagueMaterialName}%' and [cb_gg] like '%${vagueModel}%'") " WHERE [cb_name] like '${precMaterialName}%' and [cb_name] like '%${vagueMaterialName}%' and [cb_gg] like '%${vagueModel}%'")
List<MaterialDto> queryMaterialListByParam(String precMaterialName, String vagueMaterialName, String vagueModel); Integer queryMaterialListCount(String precMaterialName, String vagueMaterialName, String vagueModel);
} }

View File

@ -14,4 +14,6 @@ import java.util.List;
public interface MaterialService { public interface MaterialService {
List<MaterialDto> queryMaterialListByParam(String precMaterialName, String vagueMaterialName, String vagueModel); List<MaterialDto> queryMaterialListByParam(String precMaterialName, String vagueMaterialName, String vagueModel);
Integer queryMaterialListCount(String precMaterialName, String vagueMaterialName, String vagueModel);
} }

View File

@ -34,4 +34,19 @@ public class MaterialServiceImpl implements MaterialService {
public List<MaterialDto> queryMaterialListByParam(String precMaterialName, String vagueMaterialName, String vagueModel) { public List<MaterialDto> queryMaterialListByParam(String precMaterialName, String vagueMaterialName, String vagueModel) {
return materialMapper.queryMaterialListByParam(precMaterialName, vagueMaterialName, vagueModel); return materialMapper.queryMaterialListByParam(precMaterialName, vagueMaterialName, vagueModel);
} }
/**
* @title queryMaterialListCount
* @description 计算搜索的总数
* @author JIAL
* @param: precMaterialName
* @param: vagueMaterialName
* @param: vagueModel
* @updateTime 2024/2/24 14:36
* @return: java.lang.Integer
*/
@Override
public Integer queryMaterialListCount(String precMaterialName, String vagueMaterialName, String vagueModel) {
return materialMapper.queryMaterialListCount(precMaterialName, vagueMaterialName, vagueModel);
}
} }

View File

@ -30,13 +30,3 @@
</root> </root>
</configuration> </configuration>
<!--
1、继承Spring boot logback设置可以在appliaction.yml或者application.properties设置logging.*属性)
2、重写了默认配置设置日志文件大小在100MB时按日期切分日志切分后目录
blog.2017-08-01.0 80MB
blog.2017-08-01.1 10MB
blog.2017-08-02.0 56MB
blog.2017-08-03.0 53MB
......
-->

View File

@ -0,0 +1,713 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>报价</title>
<meta name="author" content="JIAL">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<meta name="HandheldFriendly" content="true">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<link rel="icon" href="/static/image/JNlogo.png" type="image/x-icon">
<link rel="stylesheet" href="/plugins/element-ui/index.css">
<!-- import CSS -->
<link rel="stylesheet" href="/static/jnquotation/css/index.css">
</head>
<body>
<div class="container" id="index-app">
<div class="center-container">
<div class="form-box">
<el-form label-width="45%" :model="formLabelAlign">
<el-row>
<el-col :span="6">
<el-form-item label="加工费" title="蒸汽费/钢丝铠装材料及加工费">
<el-input v-model="formLabelAlign.processingFee" placeholder="蒸汽费/钢丝铠装材料及加工费">
<template slot="append">%</template>
</el-input>
</el-form-item>
</el-col >
<el-col :span="6">
<el-form-item label="生产财务成本" title="生产财务成本">
<el-input v-model="formLabelAlign.prodFinancialCost" placeholder="生产财务成本">
<template slot="append">%</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="额外账期" title="额外账期">
<el-input v-model="formLabelAlign.accountPeriod" placeholder="账期">
<template slot="append">%</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="承兑" title="承兑">
<el-input v-model="formLabelAlign.acceptance" placeholder="承兑">
<template slot="append">%</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="公司管理成本" title="公司管理成本">
<el-input v-model="formLabelAlign.companyMgmtCost" placeholder="公司管理成本">
<template slot="append">%</template>
</el-input>
</el-form-item>
</el-col >
<el-col :span="6">
<el-form-item label="中标服务费" title="中标服务费">
<el-input v-model="formLabelAlign.bidServiceFee" placeholder="中标服务费">
<template slot="append">%</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="公司净利润" title="公司净利润">
<el-input v-model="formLabelAlign.netProfit" placeholder="公司净利润">
<template slot="append">%</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="业务费" title="业务费">
<el-input v-model="formLabelAlign.businessFee" placeholder="业务费">
<template slot="append">%</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="省">
<el-input :disabled="true" v-model="formLabelAlign.province" placeholder="省"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="市">
<el-input :disabled="true" v-model="formLabelAlign.city" placeholder="市"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="区">
<el-input :disabled="true" v-model="formLabelAlign.district" placeholder="区"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" >
<el-form-item label="公里数">
<el-input v-model="formLabelAlign.kilometers" placeholder="公里数">
<template slot="append">KM</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="可下浮点数" title="可下浮点数">
<el-input v-model="formLabelAlign.canFloat" placeholder="可下浮">
<template slot="append">%</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6" >
<el-form-item label="运费">
<el-input v-model="formLabelAlign.freight" placeholder="运费">
<template slot="append"></template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="净重合计" title="净重合计">
<el-input v-model="formLabelAlign.netWeightTotal" placeholder="净重合计">
<template slot="append">KG</template>
</el-input>
</el-form-item>
</el-col >
<el-col :span="6">
<el-form-item label="重量合计" title="重量合计">
<el-input v-model="formLabelAlign.weightTotal" placeholder="重量合计">
<template slot="append">KG</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6" >
<el-form-item label="厂价金额合计" title="厂价金额合计">
<el-input v-model="formLabelAlign.totalFactoryAmount" placeholder="厂价金额合计">
<template slot="append"></template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6" >
<el-form-item label="实际金额合计" title="实际金额合计">
<el-input v-model="formLabelAlign.totalActualAmount" placeholder="实际金额合计">
<template slot="append"></template>
</el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="button-box">
<el-button type="text" @click="selectedRegion">选择地区</el-button>
<el-button type="text" @click="addMaterial">添加物料</el-button>
<el-button type="text" @click="calculatedData">刷新界面</el-button>
<el-button type="text"></el-button>
</div>
<div class="table-box">
<el-table
:data="materialData"
border
:cell-style="cellStyle"
:header-cell-style="{ background: '#eef1f6', color: '#606266', 'text-align': 'center' }">
<el-table-column
fixed
label="编号"
type="index"
width="50">
</el-table-column>
<el-table-column
fixed
width="180"
prop="materialName"
label="物料名称">
</el-table-column>
<el-table-column
width="180"
prop="quantity"
label="数量">
<template slot-scope="scope">
<el-input v-model="scope.row.quantity" >
</el-input>
</template>
</el-table-column>
<el-table-column
width="120"
prop="voltage"
label="电压">
</el-table-column>
<el-table-column
width="80"
prop="standard"
label="标准">
</el-table-column>
<el-table-column
width="180"
prop="costPrice"
label="成本价">
</el-table-column>
<el-table-column
width="180"
prop="factoryPrice"
label="厂价">
</el-table-column>
<el-table-column
width="180"
prop="netVolume"
label="净重量">
</el-table-column>
<el-table-column
width="120"
prop="inventory"
label="盘具">
<template slot-scope="scope">
<el-link @click="handleInventoryClick(scope.row, scope.$index)" type="primary">{{ scope.row.inventory }}</el-link>
</template>
</el-table-column>
<el-table-column
width="180"
prop="invItemCount"
label="盘具数量">
<template slot-scope="scope">
<el-input v-model="scope.row.invItemCount" >
</el-input>
</template>
</el-table-column>
<el-table-column
width="100"
prop="weighInv"
label="盘重">
</el-table-column>
<el-table-column
width="180"
prop="totalWeight"
label="总重">
</el-table-column>
<el-table-column
fixed="right"
width="120"
prop="totalCost"
label="总成本">
</el-table-column>
<el-table-column
fixed="right"
width="120"
prop="totalFacPrice"
label="总厂价">
</el-table-column>
<el-table-column
fixed="right"
width="120"
prop="totalNetWt"
label="总净重">
</el-table-column>
<el-table-column
fixed="right"
width="80"
label="操作">
<template slot-scope="scope">
<el-button @click="handleDeleteClick(scope.$index)" style="color: red;" type="text">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
</div>
<el-dialog class="regionDialogTable" :visible.sync="dialogRegionVisible" width="932px" >
<div slot="title" style="margin: 0px">
<el-form>
<el-form-item >
<el-input style="width: 300px; " v-model="regionName" placeholder="请输入地区名称">
</el-input>
<el-button type="primary" size="small" @click="searchRegion">查询地区</el-button>
</el-form-item>
</el-form>
</div>
<div>
<el-table
:data="getCurrentRegionData"
:header-cell-style="{ background: '#eef1f6', color: '#606266', 'text-align': 'center', 'padding': '0px'}"
:cell-style="{'text-align': 'center', 'padding': '0px'}"
highlight-current-row
border>
<el-table-column
label="序号"
type="index"
width="50">
</el-table-column>
<el-table-column
width="180"
prop="province"
label="省">
</el-table-column>
<el-table-column
width="180"
prop="city"
label="市">
</el-table-column>
<el-table-column
width="200"
prop="district"
label="区">
</el-table-column>
<el-table-column
width="200"
prop="kilometers"
label="公里数">
</el-table-column>
<el-table-column
width="80"
label="操作">
<template slot-scope="scope">
<el-button @click="chooseRegion(scope.row)" style="color: blue;" type="text">选择</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div style="text-align: center; margin-top: 10px;">
<el-pagination
@current-change="handleRegionCurrentChange"
:current-page.sync="regionCurrentPage"
:page-size="pageSize"
:total="regionTableData.length"
></el-pagination>
</div>
</el-dialog>
<el-dialog class="materialDialogTable" :visible.sync="dialogMaterialVisible" width="1200px">
<div slot="title" style="margin: 0px">
<el-form>
<el-form-item >
<el-input style="width: 200px; " v-model="precMaterialName" placeholder="开头物料名称精确查询">
</el-input>
<el-input style="width: 200px; " v-model="vagueMaterialName" placeholder="物料名称模糊查询">
</el-input>
<el-input style="width: 200px; " v-model="vagueModel" placeholder="规格模糊查询">
</el-input>
<el-button type="primary" size="small" @click="searchMaterial">查询物料</el-button>
</el-form-item>
</el-form>
</div>
<div style="display: flex; flex-direction: row;">
<div style="width: 766px">
<el-table
:data="getCurrentMaterialData"
ref="materialTable"
@selection-change="handleSelectionChange"
:header-cell-style="{ background: '#eef1f6', color: '#606266', 'text-align': 'center', 'padding': '0px'}"
:cell-style="{'text-align': 'center', 'padding': '5px 0px'}"
highlight-selection-row
:row-key="row => row.materialName"
:reserve-selection="true"
border>
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column
label="序号"
type="index"
width="50">
</el-table-column>
<el-table-column
width="200"
prop="materialName"
label="物料名称">
</el-table-column>
<el-table-column
width="120"
prop="model"
label="型号">
</el-table-column>
<el-table-column
width="120"
prop="specification"
label="规格">
</el-table-column>
<el-table-column
width="120"
prop="voltage"
label="电压">
</el-table-column>
<el-table-column
width="100"
prop="standard"
label="标准">
</el-table-column>
</el-table>
<div style="text-align: center; margin-top: 10px;">
<el-pagination
@current-change="handleMaterialCurrentChange"
:current-page.sync="materialCurrentPage"
:page-size="pageSize"
:total="materialTableData.length"
></el-pagination>
</div>
</div>
<div style="flex-grow: 1; padding-left: 20px;">
<div
v-for="(selectedItem, index) in selectedMaterialItems"
:key="index"
class="selected-item"
>
{{ selectedItem.materialName }} - {{ selectedItem.voltage }}
<el-button @click="removeSelectedItem(selectedItem)" type="text" class="remove-btn">&#10006;</el-button>
</div>
</div>
</div>
<div style="text-align: center; padding-top: 20px">
<el-button-group>
<el-button type="primary" size="small" style="margin-right: 80px" @click="addMaterialToTable">确认</el-button>
<el-button type="warning" size="small" @click="closeMaterialDialog">取消</el-button>
</el-button-group>
</div>
</el-dialog>
<el-dialog class="inventoryDialogTable" :visible.sync="dialogInventoryVisible" width="792px" >
<div>
<el-table
:data="getCurrentInventoryData"
:header-cell-style="{ background: '#eef1f6', color: '#606266', 'text-align': 'center', 'padding': '0px'}"
:cell-style="{'text-align': 'center', 'padding': '0px'}"
highlight-current-row
border>
<el-table-column
label="序号"
type="index"
width="50">
</el-table-column>
<el-table-column
width="200"
prop="inventory"
label="盘具名称">
</el-table-column>
<el-table-column
width="200"
prop="invDesc"
label="盘具描述">
</el-table-column>
<el-table-column
width="200"
prop="weighInv"
label="盘重">
</el-table-column>
<el-table-column
width="100"
label="操作">
<template slot-scope="scope">
<el-button @click="chooseInventory(scope.row)" style="color: blue;" type="text">选择</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div style="text-align: center; margin-top: 10px;">
<el-pagination
@current-change="handleInventoryCurrentChange"
:current-page.sync="inventoryCurrentPage"
:page-size="pageSize"
:total="inventoryTableData.length"
></el-pagination>
</div>
</el-dialog>
</div>
<script src="/plugins/vue/vue.js"></script>
<script src="/plugins/element-ui/index.js"></script>
<script src="/plugins/calendar/calendar.js"></script>
<script src="/plugins/axios/axios.min.js"></script>
<script src="/plugins/axios/request.js"></script>
<!-- import Script -->
<script src="/static/jnquotation/js/index.js"></script>
<script>
new Vue({
el: '#index-app',
data() {
return {
formLabelAlign: {
processingFee: '0.60', /*蒸汽费/钢丝铠装材料及加工费*/
prodFinancialCost: '0.40', /*生产财务成本*/
accountPeriod: '1.20', /*账期*/
acceptance: '0.90', /*承兑*/
companyMgmtCost: '1.50', /*公司管理成本*/
bidServiceFee: '0.44', /*中标服务费*/
netProfit: '3.00', /*公司净利润*/
businessFee: '2.00', /*业务费*/
province: '', /*省*/
city: '', /*市*/
district: '', /*区*/
freight: '', /*运费*/
canFloat: '', /*可下浮点数*/
kilometers: '', /*公里数*/
netWeightTotal: '', /*净重合计*/
weightTotal: '', /*重量合计*/
totalFactoryAmount: '', /*厂价金额合计*/
totalActualAmount: '', /*实际金额合计*/
},
materialData: [
],
regionTableData: [],
price_0t_5t: '',
price_5t_10t: '',
price_10t_25t: '',
price_25t_100t: '',
price_100t: '',
dialogRegionVisible: false,
regionName: '',
regionCurrentPage: 1,
inventoryCurrentPage : 1,
materialCurrentPage: 1,
pageSize: 10,
dialogMaterialVisible: false,
materialTableData: [],
selectedMaterialItems: [], // 选中的数据
savedSelectedMaterials: [], // 保存选中的数据
precMaterialName: '',
vagueMaterialName: '',
vagueModel: '',
dialogInventoryVisible: false,
inventoryTableData: [],
clickedRowIndex: null, // 用于记录点击的行的索引
}
},
computed: {
getCurrentRegionData() {
const start = (this.regionCurrentPage - 1) * this.pageSize;
const end = start + this.pageSize;
return this.regionTableData.slice(start, end);
},
getCurrentMaterialData() {
const start = (this.materialCurrentPage - 1) * this.pageSize;
const end = start + this.pageSize;
return this.materialTableData.slice(start, end);
},
getCurrentInventoryData() {
const start = (this.inventoryCurrentPage - 1) * this.pageSize;
const end = start + this.pageSize;
return this.inventoryTableData.slice(start, end);
},
},
created() {
this.getInventoryData();
},
mounted() {
},
methods: {
async init () {
},
cellStyle({row, column, rowIndex, columnIndex}) {
if(columnIndex === 0) {
return 'color : black; text-align : center; background : #E0E0E0; padding: 0px';
} else if (columnIndex === 8) {
return 'text-align : center; background : #F5F5F5; padding: 0px';
} else {
return ' text-align : center; padding: 0px';
}
},
handleDeleteClick(index){
this.materialData.splice(index, 1)
},
selectedRegion(){
this.dialogRegionVisible = true;
},
chooseRegion(row) {
this.dialogRegionVisible = false;
this.formLabelAlign.province = row.province
this.formLabelAlign.city = row.city
this.formLabelAlign.district = row.district
this.formLabelAlign.kilometers = row.kilometers
this.price_0t_5t = row.price01
this.price_5t_10t = row.price02
this.price_10t_25t = row.price03
this.price_25t_100t = row.price04
this.price_100t = row.price05
},
searchRegion(){
if(this.regionName === ''){
this.$message({
message: '请输入你要查询的地区名称',
type: 'warning'
});
}else{
const params = {
regionName : this.regionName
}
console.log(params)
queryRegionListByName(params).then(res => {
this.regionTableData = res.data || []
this.regionCurrentPage = 1;
}).catch(err => {
this.$message.error('请求出错了:' + err)
})
}
},
handleRegionCurrentChange(val) {
this.currentPage = val;
},
handleMaterialCurrentChange(val) {
this.currentPage = val;
},
handleInventoryCurrentChange(val) {
this.currentPage = val;
},
addMaterial(){
this.dialogMaterialVisible = true;
},
handleSelectionChange(selection) {
selection.forEach(item => {
// 判断是否已经存在于已选列表中,避免重复添加
if (!this.selectedMaterialItems.some(selectedItem => selectedItem.materialName === item.materialName)) {
this.selectedMaterialItems.push(item);
}
});
},
removeSelectedItem(selectedItem) {
// 判断当前数据是否被选择
const isSelected = this.$refs.materialTable.selection.includes(selectedItem);
// 从已选列表中移除该项
const index = this.selectedMaterialItems.findIndex(item => item.materialName === selectedItem.materialName);
if (index !== -1) {
this.selectedMaterialItems.splice(index, 1);
}
// 如果当前数据被选择,则取消 el-table 中该项的选择状态
if (isSelected) {
this.$refs.materialTable.toggleRowSelection(selectedItem, false);
}
},
addMaterialToTable() {
// 将选中的物料信息添加到表格中
this.materialData = this.materialData.concat(this.selectedMaterialItems);
// 清空选中的物料信息
this.selectedMaterialItems = [];
this.$refs.materialTable.clearSelection();
this.dialogMaterialVisible = false;
},
closeMaterialDialog() {
this.dialogMaterialVisible = false;
},
searchMaterial() {
if(this.precMaterialName === '' && this.vagueMaterialName === '' && this.vagueModel === '') {
this.$message({
message: '请输入你要查询的物料条件',
type: 'warning'
});
}else {
const params = {
precMaterialName : this.precMaterialName,
vagueMaterialName : this.vagueMaterialName,
vagueModel : this.vagueModel
}
queryMaterialListByParam(params).then(res => {
this.materialTableData = res.data || []
this.materialCurrentPage = 1;
}).catch(err => {
this.$message.error('请求出错了:' + err)
})
}
},
handleInventoryClick(row, index) {
this.clickedRowIndex = index; // 记录点击的行的索引
this.dialogInventoryVisible = true; // 打开选择盘具的 dialog
},
getInventoryData() {
queryInventoryList().then(res => {
this.inventoryTableData = res.data || []
}).catch(err => {
this.$message.error('请求出错了:' + err)
})
},
chooseInventory(row) {
// 在选择盘具的逻辑中,将选择的盘具信息赋值给之前点击的行的数据
if (this.clickedRowIndex !== null) {
// 假设选择盘具后的数据存储在 this.selectedInventory 中
const updatedRow = {
inventory: row.inventory, // 盘具名称
weighInv: row.weighInv, // 盘重信息
};
this.$set(this.materialData, this.clickedRowIndex, updatedRow);
}
this.dialogInventoryVisible = false; // 打开选择盘具的 dialog
// 其他逻辑
},
},
})
</script>
</body>
</html>

View File

@ -389,7 +389,7 @@
@current-change="handleMaterialCurrentChange" @current-change="handleMaterialCurrentChange"
:current-page.sync="materialCurrentPage" :current-page.sync="materialCurrentPage"
:page-size="pageSize" :page-size="pageSize"
:total="materialTableData.length" :total="materialTableData.length "
></el-pagination> ></el-pagination>
</div> </div>
</div> </div>
@ -519,6 +519,7 @@
dialogInventoryVisible: false, dialogInventoryVisible: false,
inventoryTableData: [], inventoryTableData: [],
clickedRowIndex: null, // 用于记录点击的行的索引 clickedRowIndex: null, // 用于记录点击的行的索引
materialTotalRows: 0,
} }
}, },
computed: { computed: {
@ -666,12 +667,11 @@
const params = { const params = {
precMaterialName : this.precMaterialName, precMaterialName : this.precMaterialName,
vagueMaterialName : this.vagueMaterialName, vagueMaterialName : this.vagueMaterialName,
vagueModel : this.vagueModel vagueModel : this.vagueModel,
} }
queryMaterialListByParam(params).then(res => { queryMaterialListByParam(params).then(res => {
this.materialTableData = res.data || [] this.materialTableData = res.data || [];
this.materialCurrentPage = 1;
}).catch(err => { }).catch(err => {
this.$message.error('请求出错了:' + err) this.$message.error('请求出错了:' + err)
}) })
@ -697,7 +697,6 @@
if (this.clickedRowIndex !== null) { if (this.clickedRowIndex !== null) {
// 假设选择盘具后的数据存储在 this.selectedInventory 中 // 假设选择盘具后的数据存储在 this.selectedInventory 中
const updatedRow = { const updatedRow = {
...this.materialData[this.clickedRowIndex],
inventory: row.inventory, // 盘具名称 inventory: row.inventory, // 盘具名称
weighInv: row.weighInv, // 盘重信息 weighInv: row.weighInv, // 盘重信息
}; };

View File

@ -30,13 +30,3 @@
</root> </root>
</configuration> </configuration>
<!--
1、继承Spring boot logback设置可以在appliaction.yml或者application.properties设置logging.*属性)
2、重写了默认配置设置日志文件大小在100MB时按日期切分日志切分后目录
blog.2017-08-01.0 80MB
blog.2017-08-01.1 10MB
blog.2017-08-02.0 56MB
blog.2017-08-03.0 53MB
......
-->

View File

@ -0,0 +1,713 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>报价</title>
<meta name="author" content="JIAL">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<meta name="HandheldFriendly" content="true">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<link rel="icon" href="/static/image/JNlogo.png" type="image/x-icon">
<link rel="stylesheet" href="/plugins/element-ui/index.css">
<!-- import CSS -->
<link rel="stylesheet" href="/static/jnquotation/css/index.css">
</head>
<body>
<div class="container" id="index-app">
<div class="center-container">
<div class="form-box">
<el-form label-width="45%" :model="formLabelAlign">
<el-row>
<el-col :span="6">
<el-form-item label="加工费" title="蒸汽费/钢丝铠装材料及加工费">
<el-input v-model="formLabelAlign.processingFee" placeholder="蒸汽费/钢丝铠装材料及加工费">
<template slot="append">%</template>
</el-input>
</el-form-item>
</el-col >
<el-col :span="6">
<el-form-item label="生产财务成本" title="生产财务成本">
<el-input v-model="formLabelAlign.prodFinancialCost" placeholder="生产财务成本">
<template slot="append">%</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="额外账期" title="额外账期">
<el-input v-model="formLabelAlign.accountPeriod" placeholder="账期">
<template slot="append">%</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="承兑" title="承兑">
<el-input v-model="formLabelAlign.acceptance" placeholder="承兑">
<template slot="append">%</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="公司管理成本" title="公司管理成本">
<el-input v-model="formLabelAlign.companyMgmtCost" placeholder="公司管理成本">
<template slot="append">%</template>
</el-input>
</el-form-item>
</el-col >
<el-col :span="6">
<el-form-item label="中标服务费" title="中标服务费">
<el-input v-model="formLabelAlign.bidServiceFee" placeholder="中标服务费">
<template slot="append">%</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="公司净利润" title="公司净利润">
<el-input v-model="formLabelAlign.netProfit" placeholder="公司净利润">
<template slot="append">%</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="业务费" title="业务费">
<el-input v-model="formLabelAlign.businessFee" placeholder="业务费">
<template slot="append">%</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="省">
<el-input :disabled="true" v-model="formLabelAlign.province" placeholder="省"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="市">
<el-input :disabled="true" v-model="formLabelAlign.city" placeholder="市"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="区">
<el-input :disabled="true" v-model="formLabelAlign.district" placeholder="区"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" >
<el-form-item label="公里数">
<el-input v-model="formLabelAlign.kilometers" placeholder="公里数">
<template slot="append">KM</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="可下浮点数" title="可下浮点数">
<el-input v-model="formLabelAlign.canFloat" placeholder="可下浮">
<template slot="append">%</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6" >
<el-form-item label="运费">
<el-input v-model="formLabelAlign.freight" placeholder="运费">
<template slot="append"></template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="净重合计" title="净重合计">
<el-input v-model="formLabelAlign.netWeightTotal" placeholder="净重合计">
<template slot="append">KG</template>
</el-input>
</el-form-item>
</el-col >
<el-col :span="6">
<el-form-item label="重量合计" title="重量合计">
<el-input v-model="formLabelAlign.weightTotal" placeholder="重量合计">
<template slot="append">KG</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6" >
<el-form-item label="厂价金额合计" title="厂价金额合计">
<el-input v-model="formLabelAlign.totalFactoryAmount" placeholder="厂价金额合计">
<template slot="append"></template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6" >
<el-form-item label="实际金额合计" title="实际金额合计">
<el-input v-model="formLabelAlign.totalActualAmount" placeholder="实际金额合计">
<template slot="append"></template>
</el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="button-box">
<el-button type="text" @click="selectedRegion">选择地区</el-button>
<el-button type="text" @click="addMaterial">添加物料</el-button>
<el-button type="text" @click="calculatedData">刷新界面</el-button>
<el-button type="text"></el-button>
</div>
<div class="table-box">
<el-table
:data="materialData"
border
:cell-style="cellStyle"
:header-cell-style="{ background: '#eef1f6', color: '#606266', 'text-align': 'center' }">
<el-table-column
fixed
label="编号"
type="index"
width="50">
</el-table-column>
<el-table-column
fixed
width="180"
prop="materialName"
label="物料名称">
</el-table-column>
<el-table-column
width="180"
prop="quantity"
label="数量">
<template slot-scope="scope">
<el-input v-model="scope.row.quantity" >
</el-input>
</template>
</el-table-column>
<el-table-column
width="120"
prop="voltage"
label="电压">
</el-table-column>
<el-table-column
width="80"
prop="standard"
label="标准">
</el-table-column>
<el-table-column
width="180"
prop="costPrice"
label="成本价">
</el-table-column>
<el-table-column
width="180"
prop="factoryPrice"
label="厂价">
</el-table-column>
<el-table-column
width="180"
prop="netVolume"
label="净重量">
</el-table-column>
<el-table-column
width="120"
prop="inventory"
label="盘具">
<template slot-scope="scope">
<el-link @click="handleInventoryClick(scope.row, scope.$index)" type="primary">{{ scope.row.inventory }}</el-link>
</template>
</el-table-column>
<el-table-column
width="180"
prop="invItemCount"
label="盘具数量">
<template slot-scope="scope">
<el-input v-model="scope.row.invItemCount" >
</el-input>
</template>
</el-table-column>
<el-table-column
width="100"
prop="weighInv"
label="盘重">
</el-table-column>
<el-table-column
width="180"
prop="totalWeight"
label="总重">
</el-table-column>
<el-table-column
fixed="right"
width="120"
prop="totalCost"
label="总成本">
</el-table-column>
<el-table-column
fixed="right"
width="120"
prop="totalFacPrice"
label="总厂价">
</el-table-column>
<el-table-column
fixed="right"
width="120"
prop="totalNetWt"
label="总净重">
</el-table-column>
<el-table-column
fixed="right"
width="80"
label="操作">
<template slot-scope="scope">
<el-button @click="handleDeleteClick(scope.$index)" style="color: red;" type="text">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
</div>
<el-dialog class="regionDialogTable" :visible.sync="dialogRegionVisible" width="932px" >
<div slot="title" style="margin: 0px">
<el-form>
<el-form-item >
<el-input style="width: 300px; " v-model="regionName" placeholder="请输入地区名称">
</el-input>
<el-button type="primary" size="small" @click="searchRegion">查询地区</el-button>
</el-form-item>
</el-form>
</div>
<div>
<el-table
:data="getCurrentRegionData"
:header-cell-style="{ background: '#eef1f6', color: '#606266', 'text-align': 'center', 'padding': '0px'}"
:cell-style="{'text-align': 'center', 'padding': '0px'}"
highlight-current-row
border>
<el-table-column
label="序号"
type="index"
width="50">
</el-table-column>
<el-table-column
width="180"
prop="province"
label="省">
</el-table-column>
<el-table-column
width="180"
prop="city"
label="市">
</el-table-column>
<el-table-column
width="200"
prop="district"
label="区">
</el-table-column>
<el-table-column
width="200"
prop="kilometers"
label="公里数">
</el-table-column>
<el-table-column
width="80"
label="操作">
<template slot-scope="scope">
<el-button @click="chooseRegion(scope.row)" style="color: blue;" type="text">选择</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div style="text-align: center; margin-top: 10px;">
<el-pagination
@current-change="handleRegionCurrentChange"
:current-page.sync="regionCurrentPage"
:page-size="pageSize"
:total="regionTableData.length"
></el-pagination>
</div>
</el-dialog>
<el-dialog class="materialDialogTable" :visible.sync="dialogMaterialVisible" width="1200px">
<div slot="title" style="margin: 0px">
<el-form>
<el-form-item >
<el-input style="width: 200px; " v-model="precMaterialName" placeholder="开头物料名称精确查询">
</el-input>
<el-input style="width: 200px; " v-model="vagueMaterialName" placeholder="物料名称模糊查询">
</el-input>
<el-input style="width: 200px; " v-model="vagueModel" placeholder="规格模糊查询">
</el-input>
<el-button type="primary" size="small" @click="searchMaterial">查询物料</el-button>
</el-form-item>
</el-form>
</div>
<div style="display: flex; flex-direction: row;">
<div style="width: 766px">
<el-table
:data="getCurrentMaterialData"
ref="materialTable"
@selection-change="handleSelectionChange"
:header-cell-style="{ background: '#eef1f6', color: '#606266', 'text-align': 'center', 'padding': '0px'}"
:cell-style="{'text-align': 'center', 'padding': '5px 0px'}"
highlight-selection-row
:row-key="row => row.materialName"
:reserve-selection="true"
border>
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column
label="序号"
type="index"
width="50">
</el-table-column>
<el-table-column
width="200"
prop="materialName"
label="物料名称">
</el-table-column>
<el-table-column
width="120"
prop="model"
label="型号">
</el-table-column>
<el-table-column
width="120"
prop="specification"
label="规格">
</el-table-column>
<el-table-column
width="120"
prop="voltage"
label="电压">
</el-table-column>
<el-table-column
width="100"
prop="standard"
label="标准">
</el-table-column>
</el-table>
<div style="text-align: center; margin-top: 10px;">
<el-pagination
@current-change="handleMaterialCurrentChange"
:current-page.sync="materialCurrentPage"
:page-size="pageSize"
:total="materialTableData.length"
></el-pagination>
</div>
</div>
<div style="flex-grow: 1; padding-left: 20px;">
<div
v-for="(selectedItem, index) in selectedMaterialItems"
:key="index"
class="selected-item"
>
{{ selectedItem.materialName }} - {{ selectedItem.voltage }}
<el-button @click="removeSelectedItem(selectedItem)" type="text" class="remove-btn">&#10006;</el-button>
</div>
</div>
</div>
<div style="text-align: center; padding-top: 20px">
<el-button-group>
<el-button type="primary" size="small" style="margin-right: 80px" @click="addMaterialToTable">确认</el-button>
<el-button type="warning" size="small" @click="closeMaterialDialog">取消</el-button>
</el-button-group>
</div>
</el-dialog>
<el-dialog class="inventoryDialogTable" :visible.sync="dialogInventoryVisible" width="792px" >
<div>
<el-table
:data="getCurrentInventoryData"
:header-cell-style="{ background: '#eef1f6', color: '#606266', 'text-align': 'center', 'padding': '0px'}"
:cell-style="{'text-align': 'center', 'padding': '0px'}"
highlight-current-row
border>
<el-table-column
label="序号"
type="index"
width="50">
</el-table-column>
<el-table-column
width="200"
prop="inventory"
label="盘具名称">
</el-table-column>
<el-table-column
width="200"
prop="invDesc"
label="盘具描述">
</el-table-column>
<el-table-column
width="200"
prop="weighInv"
label="盘重">
</el-table-column>
<el-table-column
width="100"
label="操作">
<template slot-scope="scope">
<el-button @click="chooseInventory(scope.row)" style="color: blue;" type="text">选择</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div style="text-align: center; margin-top: 10px;">
<el-pagination
@current-change="handleInventoryCurrentChange"
:current-page.sync="inventoryCurrentPage"
:page-size="pageSize"
:total="inventoryTableData.length"
></el-pagination>
</div>
</el-dialog>
</div>
<script src="/plugins/vue/vue.js"></script>
<script src="/plugins/element-ui/index.js"></script>
<script src="/plugins/calendar/calendar.js"></script>
<script src="/plugins/axios/axios.min.js"></script>
<script src="/plugins/axios/request.js"></script>
<!-- import Script -->
<script src="/static/jnquotation/js/index.js"></script>
<script>
new Vue({
el: '#index-app',
data() {
return {
formLabelAlign: {
processingFee: '0.60', /*蒸汽费/钢丝铠装材料及加工费*/
prodFinancialCost: '0.40', /*生产财务成本*/
accountPeriod: '1.20', /*账期*/
acceptance: '0.90', /*承兑*/
companyMgmtCost: '1.50', /*公司管理成本*/
bidServiceFee: '0.44', /*中标服务费*/
netProfit: '3.00', /*公司净利润*/
businessFee: '2.00', /*业务费*/
province: '', /*省*/
city: '', /*市*/
district: '', /*区*/
freight: '', /*运费*/
canFloat: '', /*可下浮点数*/
kilometers: '', /*公里数*/
netWeightTotal: '', /*净重合计*/
weightTotal: '', /*重量合计*/
totalFactoryAmount: '', /*厂价金额合计*/
totalActualAmount: '', /*实际金额合计*/
},
materialData: [
],
regionTableData: [],
price_0t_5t: '',
price_5t_10t: '',
price_10t_25t: '',
price_25t_100t: '',
price_100t: '',
dialogRegionVisible: false,
regionName: '',
regionCurrentPage: 1,
inventoryCurrentPage : 1,
materialCurrentPage: 1,
pageSize: 10,
dialogMaterialVisible: false,
materialTableData: [],
selectedMaterialItems: [], // 选中的数据
savedSelectedMaterials: [], // 保存选中的数据
precMaterialName: '',
vagueMaterialName: '',
vagueModel: '',
dialogInventoryVisible: false,
inventoryTableData: [],
clickedRowIndex: null, // 用于记录点击的行的索引
}
},
computed: {
getCurrentRegionData() {
const start = (this.regionCurrentPage - 1) * this.pageSize;
const end = start + this.pageSize;
return this.regionTableData.slice(start, end);
},
getCurrentMaterialData() {
const start = (this.materialCurrentPage - 1) * this.pageSize;
const end = start + this.pageSize;
return this.materialTableData.slice(start, end);
},
getCurrentInventoryData() {
const start = (this.inventoryCurrentPage - 1) * this.pageSize;
const end = start + this.pageSize;
return this.inventoryTableData.slice(start, end);
},
},
created() {
this.getInventoryData();
},
mounted() {
},
methods: {
async init () {
},
cellStyle({row, column, rowIndex, columnIndex}) {
if(columnIndex === 0) {
return 'color : black; text-align : center; background : #E0E0E0; padding: 0px';
} else if (columnIndex === 8) {
return 'text-align : center; background : #F5F5F5; padding: 0px';
} else {
return ' text-align : center; padding: 0px';
}
},
handleDeleteClick(index){
this.materialData.splice(index, 1)
},
selectedRegion(){
this.dialogRegionVisible = true;
},
chooseRegion(row) {
this.dialogRegionVisible = false;
this.formLabelAlign.province = row.province
this.formLabelAlign.city = row.city
this.formLabelAlign.district = row.district
this.formLabelAlign.kilometers = row.kilometers
this.price_0t_5t = row.price01
this.price_5t_10t = row.price02
this.price_10t_25t = row.price03
this.price_25t_100t = row.price04
this.price_100t = row.price05
},
searchRegion(){
if(this.regionName === ''){
this.$message({
message: '请输入你要查询的地区名称',
type: 'warning'
});
}else{
const params = {
regionName : this.regionName
}
console.log(params)
queryRegionListByName(params).then(res => {
this.regionTableData = res.data || []
this.regionCurrentPage = 1;
}).catch(err => {
this.$message.error('请求出错了:' + err)
})
}
},
handleRegionCurrentChange(val) {
this.currentPage = val;
},
handleMaterialCurrentChange(val) {
this.currentPage = val;
},
handleInventoryCurrentChange(val) {
this.currentPage = val;
},
addMaterial(){
this.dialogMaterialVisible = true;
},
handleSelectionChange(selection) {
selection.forEach(item => {
// 判断是否已经存在于已选列表中,避免重复添加
if (!this.selectedMaterialItems.some(selectedItem => selectedItem.materialName === item.materialName)) {
this.selectedMaterialItems.push(item);
}
});
},
removeSelectedItem(selectedItem) {
// 判断当前数据是否被选择
const isSelected = this.$refs.materialTable.selection.includes(selectedItem);
// 从已选列表中移除该项
const index = this.selectedMaterialItems.findIndex(item => item.materialName === selectedItem.materialName);
if (index !== -1) {
this.selectedMaterialItems.splice(index, 1);
}
// 如果当前数据被选择,则取消 el-table 中该项的选择状态
if (isSelected) {
this.$refs.materialTable.toggleRowSelection(selectedItem, false);
}
},
addMaterialToTable() {
// 将选中的物料信息添加到表格中
this.materialData = this.materialData.concat(this.selectedMaterialItems);
// 清空选中的物料信息
this.selectedMaterialItems = [];
this.$refs.materialTable.clearSelection();
this.dialogMaterialVisible = false;
},
closeMaterialDialog() {
this.dialogMaterialVisible = false;
},
searchMaterial() {
if(this.precMaterialName === '' && this.vagueMaterialName === '' && this.vagueModel === '') {
this.$message({
message: '请输入你要查询的物料条件',
type: 'warning'
});
}else {
const params = {
precMaterialName : this.precMaterialName,
vagueMaterialName : this.vagueMaterialName,
vagueModel : this.vagueModel
}
queryMaterialListByParam(params).then(res => {
this.materialTableData = res.data || []
this.materialCurrentPage = 1;
}).catch(err => {
this.$message.error('请求出错了:' + err)
})
}
},
handleInventoryClick(row, index) {
this.clickedRowIndex = index; // 记录点击的行的索引
this.dialogInventoryVisible = true; // 打开选择盘具的 dialog
},
getInventoryData() {
queryInventoryList().then(res => {
this.inventoryTableData = res.data || []
}).catch(err => {
this.$message.error('请求出错了:' + err)
})
},
chooseInventory(row) {
// 在选择盘具的逻辑中,将选择的盘具信息赋值给之前点击的行的数据
if (this.clickedRowIndex !== null) {
// 假设选择盘具后的数据存储在 this.selectedInventory 中
const updatedRow = {
inventory: row.inventory, // 盘具名称
weighInv: row.weighInv, // 盘重信息
};
this.$set(this.materialData, this.clickedRowIndex, updatedRow);
}
this.dialogInventoryVisible = false; // 打开选择盘具的 dialog
// 其他逻辑
},
},
})
</script>
</body>
</html>

View File

@ -389,7 +389,7 @@
@current-change="handleMaterialCurrentChange" @current-change="handleMaterialCurrentChange"
:current-page.sync="materialCurrentPage" :current-page.sync="materialCurrentPage"
:page-size="pageSize" :page-size="pageSize"
:total="materialTableData.length" :total="materialTableData.length "
></el-pagination> ></el-pagination>
</div> </div>
</div> </div>
@ -519,6 +519,10 @@
dialogInventoryVisible: false, dialogInventoryVisible: false,
inventoryTableData: [], inventoryTableData: [],
clickedRowIndex: null, // 用于记录点击的行的索引 clickedRowIndex: null, // 用于记录点击的行的索引
<<<<<<< HEAD
materialTotalRows: 0,
=======
>>>>>>> df9601da10f7db0d8609eddc1505f4a6f7a1f427
} }
}, },
computed: { computed: {
@ -666,12 +670,11 @@
const params = { const params = {
precMaterialName : this.precMaterialName, precMaterialName : this.precMaterialName,
vagueMaterialName : this.vagueMaterialName, vagueMaterialName : this.vagueMaterialName,
vagueModel : this.vagueModel vagueModel : this.vagueModel,
} }
queryMaterialListByParam(params).then(res => { queryMaterialListByParam(params).then(res => {
this.materialTableData = res.data || [] this.materialTableData = res.data || [];
this.materialCurrentPage = 1;
}).catch(err => { }).catch(err => {
this.$message.error('请求出错了:' + err) this.$message.error('请求出错了:' + err)
}) })
@ -697,7 +700,6 @@
if (this.clickedRowIndex !== null) { if (this.clickedRowIndex !== null) {
// 假设选择盘具后的数据存储在 this.selectedInventory 中 // 假设选择盘具后的数据存储在 this.selectedInventory 中
const updatedRow = { const updatedRow = {
...this.materialData[this.clickedRowIndex],
inventory: row.inventory, // 盘具名称 inventory: row.inventory, // 盘具名称
weighInv: row.weighInv, // 盘重信息 weighInv: row.weighInv, // 盘重信息
}; };