业务查询系统

This commit is contained in:
JIAL 2024-01-11 08:30:14 +08:00
parent 16894fde8e
commit 1582ffb68d
194 changed files with 4465 additions and 1363 deletions

View File

@ -8,13 +8,13 @@
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="reggie_take_out" />
<module name="FWManage" />
<module name="JIALDemo" />
</profile>
</annotationProcessing>
</component>
<component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
<module name="FWManage" options="-parameters" />
<module name="JIALDemo" options="-parameters" />
<module name="reggie_take_out" options="-parameters" />
</option>
</component>

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JpaBuddyIdeaProjectConfig">
<option name="defaultUnitInitialized" value="true" />
<option name="renamerInitialized" value="true" />
</component>
</project>

View File

@ -8,7 +8,7 @@
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="jbr-11" project-jdk-type="JavaSDK" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
<component name="ProjectType">
<option name="id" value="jpab" />
</component>

1
bin

@ -1 +0,0 @@
Subproject commit a69a346804bec6f22ca7e5bd7cf006997f7bdaa4

196
logs/JIAL-ss.log Normal file
View File

@ -0,0 +1,196 @@
2024-01-11 08:16:08.949 INFO 3284 --- [main] com.JIAL.JIALApplication : Starting JIALApplication using Java 1.8.0_341 on LAPTOP-JIAL with PID 3284 (D:\JIAL\JavaProject\JIALDemo\target\classes started by JIAL in D:\JIAL\JavaProject\JIALDemo)
2024-01-11 08:16:08.958 INFO 3284 --- [main] com.JIAL.JIALApplication : The following profiles are active: ss
2024-01-11 08:16:25.172 ERROR 3284 --- [Druid-ConnectionPool-Create-1510312933] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:sqlserver://192.168.9.230:1433;databaseName=ERP;Encrypt=false;TrustServerCertificate=true;, errorCode 0, state 08S01
com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 192.168.9.230 的 TCP/IP 连接失败。错误:“connect timed out。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:237)
at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:288)
at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2466)
at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:676)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2957)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2628)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:2471)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1470)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:915)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2774)
2024-01-11 08:16:40.184 ERROR 3284 --- [Druid-ConnectionPool-Create-1510312933] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:sqlserver://192.168.9.230:1433;databaseName=ERP;Encrypt=false;TrustServerCertificate=true;, errorCode 0, state 08S01
com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 192.168.9.230 的 TCP/IP 连接失败。错误:“connect timed out。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:237)
at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:288)
at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2466)
at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:676)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2957)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2628)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:2471)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1470)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:915)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2774)
2024-01-11 08:16:55.703 ERROR 3284 --- [Druid-ConnectionPool-Create-1510312933] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:sqlserver://192.168.9.230:1433;databaseName=ERP;Encrypt=false;TrustServerCertificate=true;, errorCode 0, state 08S01
com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 192.168.9.230 的 TCP/IP 连接失败。错误:“connect timed out。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:237)
at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:288)
at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2466)
at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:676)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2957)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2628)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:2471)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1470)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:915)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2774)
2024-01-11 08:17:11.221 ERROR 3284 --- [Druid-ConnectionPool-Create-1510312933] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:sqlserver://192.168.9.230:1433;databaseName=ERP;Encrypt=false;TrustServerCertificate=true;, errorCode 0, state 08S01
com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 192.168.9.230 的 TCP/IP 连接失败。错误:“connect timed out。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:237)
at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:288)
at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2466)
at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:676)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2957)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2628)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:2471)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1470)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:915)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2774)
2024-01-11 08:17:26.737 ERROR 3284 --- [Druid-ConnectionPool-Create-1510312933] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:sqlserver://192.168.9.230:1433;databaseName=ERP;Encrypt=false;TrustServerCertificate=true;, errorCode 0, state 08S01
com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 192.168.9.230 的 TCP/IP 连接失败。错误:“connect timed out。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:237)
at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:288)
at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2466)
at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:676)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2957)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2628)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:2471)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1470)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:915)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2774)
2024-01-11 08:17:42.250 ERROR 3284 --- [Druid-ConnectionPool-Create-1510312933] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:sqlserver://192.168.9.230:1433;databaseName=ERP;Encrypt=false;TrustServerCertificate=true;, errorCode 0, state 08S01
com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 192.168.9.230 的 TCP/IP 连接失败。错误:“connect timed out。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:237)
at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:288)
at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2466)
at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:676)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2957)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2628)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:2471)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1470)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:915)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2774)
2024-01-11 08:17:57.771 ERROR 3284 --- [Druid-ConnectionPool-Create-1510312933] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:sqlserver://192.168.9.230:1433;databaseName=ERP;Encrypt=false;TrustServerCertificate=true;, errorCode 0, state 08S01
com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 192.168.9.230 的 TCP/IP 连接失败。错误:“connect timed out。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:237)
at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:288)
at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2466)
at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:676)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2957)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2628)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:2471)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1470)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:915)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2774)
2024-01-11 08:18:13.279 ERROR 3284 --- [Druid-ConnectionPool-Create-1510312933] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:sqlserver://192.168.9.230:1433;databaseName=ERP;Encrypt=false;TrustServerCertificate=true;, errorCode 0, state 08S01
com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 192.168.9.230 的 TCP/IP 连接失败。错误:“connect timed out。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:237)
at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:288)
at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2466)
at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:676)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2957)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2628)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:2471)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1470)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:915)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2774)
2024-01-11 08:18:28.799 ERROR 3284 --- [Druid-ConnectionPool-Create-1510312933] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:sqlserver://192.168.9.230:1433;databaseName=ERP;Encrypt=false;TrustServerCertificate=true;, errorCode 0, state 08S01
com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 192.168.9.230 的 TCP/IP 连接失败。错误:“connect timed out。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:237)
at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:288)
at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2466)
at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:676)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2957)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2628)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:2471)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1470)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:915)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2774)
2024-01-11 08:18:44.307 ERROR 3284 --- [Druid-ConnectionPool-Create-1510312933] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:sqlserver://192.168.9.230:1433;databaseName=ERP;Encrypt=false;TrustServerCertificate=true;, errorCode 0, state 08S01
com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 192.168.9.230 的 TCP/IP 连接失败。错误:“connect timed out。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:237)
at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:288)
at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2466)
at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:676)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2957)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2628)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:2471)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1470)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:915)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2774)
2024-01-11 08:18:59.828 ERROR 3284 --- [Druid-ConnectionPool-Create-1510312933] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:sqlserver://192.168.9.230:1433;databaseName=ERP;Encrypt=false;TrustServerCertificate=true;, errorCode 0, state 08S01
com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 192.168.9.230 的 TCP/IP 连接失败。错误:“connect timed out。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:237)
at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:288)
at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2466)
at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:676)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2957)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2628)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:2471)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1470)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:915)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2774)
2024-01-11 08:19:13.647 INFO 15636 --- [main] com.JIAL.JIALApplication : Starting JIALApplication using Java 1.8.0_341 on LAPTOP-JIAL with PID 15636 (D:\JIAL\JavaProject\JIALDemo\target\classes started by JIAL in D:\JIAL\JavaProject\JIALDemo)
2024-01-11 08:19:13.648 INFO 15636 --- [main] com.JIAL.JIALApplication : The following profiles are active: ss
2024-01-11 08:19:29.653 ERROR 15636 --- [Druid-ConnectionPool-Create-277155095] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:sqlserver://192.168.9.230:1433;databaseName=ERP;Encrypt=false;TrustServerCertificate=true;, errorCode 0, state 08S01
com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 192.168.9.230 的 TCP/IP 连接失败。错误:“connect timed out。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:237)
at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:288)
at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2466)
at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:676)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2957)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2628)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:2471)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1470)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:915)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2774)

File diff suppressed because it is too large Load Diff

33
pom.xml
View File

@ -124,6 +124,39 @@
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
<!-- Spring Data JPA -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- SQL Server JDBC 驱动 -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>9.4.0.jre8</version> <!-- 使用最新版本 -->
</dependency>
<!-- Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
</dependency>
<!-- 数据库驱动,根据您使用的数据库选择合适的依赖 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>

View File

@ -1,22 +0,0 @@
package com.JIAL.FMSystem.utils;
import lombok.extern.slf4j.Slf4j;
import org.testng.annotations.Test;
/**
* @ClassName TestUtils
* @Description TODO
* @Author JIAL
* @Date 2023/12/24 11:35
* @Version 1.0
*/
@Test
@Slf4j
public class TestUtils {
public void Test() {
}
}

View File

@ -1,6 +1,7 @@
package com.JIAL.FMSystem;
package com.JIAL;
import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
@ -10,9 +11,9 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
@SpringBootApplication
@ServletComponentScan
@EnableTransactionManagement
public class FWApplication {
public class JIALApplication {
public static void main(String[] args) {
SpringApplication.run(FWApplication.class,args);
SpringApplication.run(JIALApplication.class,args);
log.info("项目启动成功...");
}
}

View File

@ -1,13 +1,12 @@
package com.JIAL.FMSystem.controller;
package com.JIAL.backend.controller;
import com.JIAL.FMSystem.service.FileService;
import com.JIAL.FMSystem.vo.FileVO;
import com.JIAL.backend.service.FileService;
import com.JIAL.backend.vo.FileVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
/**

View File

@ -1,16 +1,9 @@
package com.JIAL.FMSystem.controller;
package com.JIAL.backend.controller;
import com.JIAL.FMSystem.common.R;
import com.JIAL.FMSystem.dto.HearCaseInMenuDto;
import com.JIAL.FMSystem.entity.*;
import com.JIAL.FMSystem.mapper.HearCaseMapper;
import com.JIAL.FMSystem.service.DefendantService;
import com.JIAL.FMSystem.service.HearCaseService;
import com.JIAL.FMSystem.service.UserService;
import com.JIAL.FMSystem.service.impl.HearCaseServiceImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.JIAL.backend.dto.HearCaseInMenuDto;
import com.JIAL.backend.entity.*;
import com.JIAL.backend.service.HearCaseService;
import com.JIAL.common.R;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.slf4j.Slf4j;
@ -19,12 +12,6 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @ClassName HeraCaseController
* @Description 审理案件控制类

View File

@ -1,4 +1,4 @@
package com.JIAL.FMSystem.controller;
package com.JIAL.backend.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

View File

@ -1,10 +1,9 @@
package com.JIAL.FMSystem.controller;
package com.JIAL.backend.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.JIAL.FMSystem.common.R;
import com.JIAL.FMSystem.entity.User;
import com.JIAL.FMSystem.service.UserService;
import com.JIAL.FMSystem.utils.ValidateCodeUtils;
import com.JIAL.common.R;
import com.JIAL.backend.entity.User;
import com.JIAL.backend.service.UserService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
@ -13,9 +12,6 @@ import org.springframework.util.DigestUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.nio.charset.StandardCharsets;
import java.util.Map;
@RestController
@RequestMapping("/user")

View File

@ -1,4 +1,4 @@
package com.JIAL.FMSystem.dto;
package com.JIAL.backend.dto;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;

View File

@ -1,4 +1,4 @@
package com.JIAL.FMSystem.entity;
package com.JIAL.backend.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;

View File

@ -1,4 +1,4 @@
package com.JIAL.FMSystem.entity;
package com.JIAL.backend.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;

View File

@ -1,4 +1,4 @@
package com.JIAL.FMSystem.entity;
package com.JIAL.backend.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;

View File

@ -1,4 +1,4 @@
package com.JIAL.FMSystem.entity;
package com.JIAL.backend.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;

View File

@ -1,4 +1,4 @@
package com.JIAL.FMSystem.entity;
package com.JIAL.backend.entity;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.JIAL.FMSystem.entity;
package com.JIAL.backend.entity;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.JIAL.FMSystem.entity;
package com.JIAL.backend.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;

View File

@ -1,4 +1,4 @@
package com.JIAL.FMSystem.entity;
package com.JIAL.backend.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;

View File

@ -1,4 +1,4 @@
package com.JIAL.FMSystem.entity;
package com.JIAL.backend.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;

View File

@ -1,6 +1,6 @@
package com.JIAL.FMSystem.mapper;
package com.JIAL.backend.mapper;
import com.JIAL.FMSystem.entity.Defendant;
import com.JIAL.backend.entity.Defendant;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

View File

@ -1,7 +1,6 @@
package com.JIAL.FMSystem.mapper;
package com.JIAL.backend.mapper;
import com.JIAL.FMSystem.entity.HearCase;
import com.JIAL.FMSystem.entity.HearCaseDefendant;
import com.JIAL.backend.entity.HearCaseDefendant;
import com.github.yulichang.base.MPJBaseMapper;
import org.apache.ibatis.annotations.Mapper;

View File

@ -1,8 +1,6 @@
package com.JIAL.FMSystem.mapper;
package com.JIAL.backend.mapper;
import com.JIAL.FMSystem.entity.HearCase;
import com.JIAL.FMSystem.entity.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.JIAL.backend.entity.HearCase;
import com.github.yulichang.base.MPJBaseMapper;
import org.apache.ibatis.annotations.Mapper;

View File

@ -1,7 +1,6 @@
package com.JIAL.FMSystem.mapper;
package com.JIAL.backend.mapper;
import com.JIAL.FMSystem.entity.HearCaseDefendant;
import com.JIAL.FMSystem.entity.HearCasePlaintiff;
import com.JIAL.backend.entity.HearCasePlaintiff;
import com.github.yulichang.base.MPJBaseMapper;
import org.apache.ibatis.annotations.Mapper;

View File

@ -1,6 +1,6 @@
package com.JIAL.FMSystem.mapper;
package com.JIAL.backend.mapper;
import com.JIAL.FMSystem.entity.Plaintiff;
import com.JIAL.backend.entity.Plaintiff;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

View File

@ -1,7 +1,7 @@
package com.JIAL.FMSystem.mapper;
package com.JIAL.backend.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.JIAL.FMSystem.entity.User;
import com.JIAL.backend.entity.User;
import org.apache.ibatis.annotations.Mapper;
/**

View File

@ -1,6 +1,6 @@
package com.JIAL.FMSystem.service;
package com.JIAL.backend.service;
import com.JIAL.FMSystem.entity.Defendant;
import com.JIAL.backend.entity.Defendant;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;

View File

@ -1,6 +1,6 @@
package com.JIAL.FMSystem.service;
package com.JIAL.backend.service;
import com.JIAL.FMSystem.vo.FileVO;
import com.JIAL.backend.vo.FileVO;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;

View File

@ -1,10 +1,8 @@
package com.JIAL.FMSystem.service;
package com.JIAL.backend.service;
import com.JIAL.FMSystem.dto.HearCaseInMenuDto;
import com.JIAL.FMSystem.entity.HearCase;
import com.JIAL.FMSystem.entity.User;
import com.JIAL.backend.dto.HearCaseInMenuDto;
import com.JIAL.backend.entity.HearCase;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.yulichang.base.MPJBaseService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;

View File

@ -1,6 +1,6 @@
package com.JIAL.FMSystem.service;
package com.JIAL.backend.service;
import com.JIAL.FMSystem.entity.Plaintiff;
import com.JIAL.backend.entity.Plaintiff;
import com.baomidou.mybatisplus.extension.service.IService;
/**

View File

@ -1,7 +1,7 @@
package com.JIAL.FMSystem.service;
package com.JIAL.backend.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.JIAL.FMSystem.entity.User;
import com.JIAL.backend.entity.User;
public interface UserService extends IService<User> {
}

View File

@ -1,11 +1,8 @@
package com.JIAL.FMSystem.service.impl;
package com.JIAL.backend.service.impl;
import com.JIAL.FMSystem.entity.Defendant;
import com.JIAL.FMSystem.entity.HearCase;
import com.JIAL.FMSystem.mapper.DefendantMapper;
import com.JIAL.FMSystem.mapper.HearCaseMapper;
import com.JIAL.FMSystem.service.DefendantService;
import com.JIAL.FMSystem.service.HearCaseService;
import com.JIAL.backend.entity.Defendant;
import com.JIAL.backend.mapper.DefendantMapper;
import com.JIAL.backend.service.DefendantService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

View File

@ -1,7 +1,7 @@
package com.JIAL.FMSystem.service.impl;
package com.JIAL.backend.service.impl;
import com.JIAL.FMSystem.service.FileService;
import com.JIAL.FMSystem.vo.FileVO;
import com.JIAL.backend.service.FileService;
import com.JIAL.backend.vo.FileVO;
import org.apache.tomcat.util.http.fileupload.IOUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;

View File

@ -1,21 +1,15 @@
package com.JIAL.FMSystem.service.impl;
package com.JIAL.backend.service.impl;
import com.JIAL.FMSystem.dto.HearCaseInMenuDto;
import com.JIAL.FMSystem.entity.HearCase;
import com.JIAL.FMSystem.entity.User;
import com.JIAL.FMSystem.mapper.HearCaseMapper;
import com.JIAL.FMSystem.mapper.UserMapper;
import com.JIAL.FMSystem.service.HearCaseService;
import com.JIAL.FMSystem.service.UserService;
import com.JIAL.backend.dto.HearCaseInMenuDto;
import com.JIAL.backend.entity.HearCase;
import com.JIAL.backend.mapper.HearCaseMapper;
import com.JIAL.backend.service.HearCaseService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.base.MPJBaseServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* @ClassName HearCaseServiceImpl
* @Description TODO

View File

@ -1,8 +1,8 @@
package com.JIAL.FMSystem.service.impl;
package com.JIAL.backend.service.impl;
import com.JIAL.FMSystem.entity.Plaintiff;
import com.JIAL.FMSystem.mapper.PlaintiffMapper;
import com.JIAL.FMSystem.service.PlaintiffService;
import com.JIAL.backend.entity.Plaintiff;
import com.JIAL.backend.mapper.PlaintiffMapper;
import com.JIAL.backend.service.PlaintiffService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

View File

@ -1,9 +1,9 @@
package com.JIAL.FMSystem.service.impl;
package com.JIAL.backend.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.JIAL.FMSystem.entity.User;
import com.JIAL.FMSystem.mapper.UserMapper;
import com.JIAL.FMSystem.service.UserService;
import com.JIAL.backend.entity.User;
import com.JIAL.backend.mapper.UserMapper;
import com.JIAL.backend.service.UserService;
import org.springframework.stereotype.Service;
@Service

View File

@ -1,4 +1,4 @@
package com.JIAL.FMSystem.vo;
package com.JIAL.backend.vo;
/**
* @ClassName FileVO

View File

@ -1,4 +1,4 @@
package com.JIAL.FMSystem.common;
package com.JIAL.common;
/**
* 基于ThreadLocal封装工具类用户保存和获取当前登录用户id

View File

@ -1,4 +1,4 @@
package com.JIAL.FMSystem.common;
package com.JIAL.common;
/**
* 自定义业务异常类

View File

@ -1,4 +1,4 @@
package com.JIAL.FMSystem.common;
package com.JIAL.common;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;

View File

@ -1,4 +1,4 @@
package com.JIAL.FMSystem.common;
package com.JIAL.common;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;

View File

@ -1,4 +1,4 @@
package com.JIAL.FMSystem.common;
package com.JIAL.common;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;

View File

@ -1,4 +1,4 @@
package com.JIAL.FMSystem.common;
package com.JIAL.common;
import lombok.Data;
import java.util.HashMap;

View File

@ -1,4 +1,4 @@
package com.JIAL.FMSystem.config;
package com.JIAL.config;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;

View File

@ -1,6 +1,6 @@
package com.JIAL.FMSystem.config;
package com.JIAL.config;
import com.JIAL.FMSystem.common.JacksonObjectMapper;
import com.JIAL.common.JacksonObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
@ -26,6 +26,8 @@ public class WebMvcConfig extends WebMvcConfigurationSupport {
registry.addResourceHandler("/templates/**").addResourceLocations("classpath:/templates/");
registry.addResourceHandler("/plugins/**").addResourceLocations("classpath:/plugins/");
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
registry.addResourceHandler("/blog/**").addResourceLocations("classpath:/blog/");
registry.addResourceHandler("/bizquery/**").addResourceLocations("classpath:/bizquery/");
}
/**

View File

@ -0,0 +1,90 @@
package com.JIAL.demo.bizquery.controller;
import com.JIAL.common.R;
import com.JIAL.demo.bizquery.dto.Biz;
import com.JIAL.demo.bizquery.service.BizService;
import com.JIAL.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @ClassName BizController
* @Description 业务查询的controller类
* @Author JIAL
* @Date 2024/1/8 8:54
* @Version 1.0
*/
@RestController
@Slf4j
@RequestMapping("/bizquery")
public class BizController {
@Autowired
BizService bizService;
@PostMapping("list")
public R<List<Biz>> queryBizList(@RequestParam("name") String name) {
log.info("开始调用sql----------------------");
log.info(name);
log.info(String.valueOf(bizService == null));
List<Biz> resultList = bizService.queryBizListByName(name);
log.info(resultList.toString());
return R.success(resultList);
}
@PostMapping("detail")
public R<Map<String, String>> queryBizDetail(@RequestParam("kunnr") String kunnr, @RequestParam("name") String name,
@RequestParam("time") String time) {
//根据传入的时间前后获取格式化后的时间
LocalDate currentDate = LocalDate.now();
LocalDate manipulatedDate;
String yearAgoFormat;
//通过传入的过去时间值来格式化对应的日期
switch (time) {
case "1":
manipulatedDate = currentDate.minusYears(1);
break;
case "2":
manipulatedDate = currentDate.minusYears(2);
break;
case "3":
manipulatedDate = currentDate.minusYears(3);
break;
default:
manipulatedDate = currentDate;
}
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
//当前日期和之前的日期格式化
yearAgoFormat = manipulatedDate.format(formatter);
//获取最近发货日期最近下单日期最近报价日期处理的业务员数量
String latestShippingDate = StringUtils.getDefaultIfNull(bizService.queryLatestShippingDate(kunnr, yearAgoFormat), "0");
String latestOrderDate = StringUtils.getDefaultIfNull(bizService.queryLatestOrderDate(kunnr, yearAgoFormat), "0");
String latestQuotationDate = StringUtils.getDefaultIfNull(bizService.queryLatestQuotationDate(name), "0");
String salespersonCount = StringUtils.getDefaultIfNull(bizService.querySalespersonCount(kunnr, yearAgoFormat), "0");
log.info("latestShippingDate:" + latestShippingDate + "latestOrderDate:" + latestOrderDate +
"latestQuotationDate:" + latestQuotationDate + "salespersonCount" + salespersonCount);
Map<String, String> resultMap = new HashMap<>();
resultMap.put("latestShippingDate", "0".equals(latestShippingDate) ? latestShippingDate : StringUtils.formatDateString(latestShippingDate, "yyyyMMdd", "yyyy-MM-dd"));
resultMap.put("latestOrderDate", "0".equals(latestOrderDate) ? latestOrderDate : StringUtils.formatDateString(latestOrderDate, "yyyyMMdd", "yyyy-MM-dd"));
resultMap.put("latestQuotationDate", "0".equals(latestQuotationDate) ? latestQuotationDate : StringUtils.formatDateString(latestQuotationDate, "yyyy-MM-dd HH:mm:ss.SS", "yyyy-MM-dd"));
resultMap.put("salespersonCount", salespersonCount );
log.info("Received request with parameter: {}", "开始写日志文件");
return R.success(resultMap);
}
}

View File

@ -0,0 +1,21 @@
package com.JIAL.demo.bizquery.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @ClassName Biz
* @Description 业务查询列表结果返回
* @Author JIAL
* @Date 2024/1/8 10:08
* @Version 1.0
*/
@Data
public class Biz implements Serializable {
private static final long serialVersionUID = 1L;
private String kunnr;
private String name1;
}

View File

@ -0,0 +1,44 @@
package com.JIAL.demo.bizquery.mapper;
import com.JIAL.demo.bizquery.dto.Biz;
import com.alibaba.druid.support.logging.LogFactory;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;
import sun.rmi.runtime.Log;
import java.util.List;
/**
* @ClassName BizMapper
* @Description TODO
* @Author JIAL
* @Date 2024/1/8 10:11
* @Version 1.0
*/
@Mapper
@Repository
public interface BizMapper {
@Select("select kunnr,name1 from openquery(hana2,'select top 10 * from SAPHANADB.kna1 where name1 like ''%${name}%'' and name1 not like ''冻结''')")
List<Biz> queryBizListByName(String name);
@Select("select * from openquery(hana2,'select max(erdat) from SAPHANADB.likp where kunnr = ''${kunnr}'' and erdat >= ''${time}''')")
String queryLatestShippingDate(String kunnr, String time);
@Select("select * from openquery(hana2,'select max(erdat) from SAPHANADB.vbak where kunnr = ''${kunnr}'' and erdat >= ''${time}''')")
String queryLatestOrderDate(String kunnr, String time);
@Select("select * from \n" +
"openquery(hana2,'select count(distinct b.kunnr) from SAPHANADB.vbak as a inner join SAPHANADB.vbpa as b \n" +
"on a.vbeln = b.vbeln where a.kunnr = ''${kunnr}'' and b.PARVW = ''Z1'' and a.erdat >= ''${time}''')")
String querySalespersonCount(String kunnr, String time);
@Select("select max(create_time_0) from [JNERP].[jn_erp].[dbo].[CRM_MESSAGE] where client_name_0 = '${name}'")
String queryLatestQuotationDate(String name);
}

View File

@ -0,0 +1,28 @@
package com.JIAL.demo.bizquery.service;
import com.JIAL.demo.bizquery.dto.Biz;
import com.github.yulichang.base.MPJBaseService;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* @ClassName BizService
* @Description TODO
* @Author JIAL
* @Date 2024/1/8 10:11
* @Version 1.0
*/
public interface BizService {
List<Biz> queryBizListByName(String name);
String queryLatestShippingDate(String kunnr, String time);
String queryLatestOrderDate(String kunnr, String time);
String querySalespersonCount(String kunnr, String time);
String queryLatestQuotationDate(String name);
}

View File

@ -0,0 +1,92 @@
package com.JIAL.demo.bizquery.service.impl;
import com.JIAL.demo.bizquery.dto.Biz;
import com.JIAL.demo.bizquery.mapper.BizMapper;
import com.JIAL.demo.bizquery.service.BizService;
import com.github.yulichang.base.MPJBaseServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @ClassName BizServiceImpl
* @Description TODO
* @Author JIAL
* @Date 2024/1/8 10:11
* @Version 1.0
*/
@Service
public class BizServiceImpl implements BizService {
@Autowired
BizMapper bizMapper;
/**
* @title queryBizListByName
* @description 根据名称模糊查询获取列表
* @author JIAL
* @param: name
* @updateTime 2024/1/9 13:20
* @return: java.util.List<com.JIAL.demo.bizquery.dto.Biz>
*/
@Override
public List<Biz> queryBizListByName(String name) {
return bizMapper.queryBizListByName(name);
}
/**
* @title queryLatestShippingDate
* @description 根据客户编号和时间获取最近发货日期
* @author JIAL
* @param: kunnr
* @param: time
* @updateTime 2024/1/9 13:21
* @return: java.lang.String
*/
@Override
public String queryLatestShippingDate(String kunnr, String time) {
return bizMapper.queryLatestShippingDate(kunnr, time);
}
/**
* @title queryLatestOrderDate
* @description 根据客户编号和时间获取最近下单日期
* @author JIAL
* @param: kunnr
* @param: time
* @updateTime 2024/1/9 13:35
* @return: java.lang.String
*/
@Override
public String queryLatestOrderDate(String kunnr, String time) {
return bizMapper.queryLatestOrderDate(kunnr, time);
}
/**
* @title querySalespersonCount
* @description 根据客户编号和时间获取最近跟进的业务员数量
* @author JIAL
* @param: kunnr
* @param: time
* @updateTime 2024/1/9 13:36
* @return: java.lang.String
*/
@Override
public String querySalespersonCount(String kunnr, String time) {
return bizMapper.querySalespersonCount(kunnr, time);
}
/**
* @title queryLatestQuotationDate
* @description 根据客户名称获取最近报价日期
* @author JIAL
* @param: name
* @updateTime 2024/1/9 13:38
* @return: java.lang.String
*/
@Override
public String queryLatestQuotationDate(String name) {
return bizMapper.queryLatestQuotationDate(name);
}
}

View File

@ -1,8 +1,6 @@
package com.JIAL.FMSystem.API.juheshuju.weather;
package com.JIAL.demo.index.API.juheshuju.weather;
import lombok.Data;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import java.io.Serializable;

View File

@ -1,14 +1,15 @@
package com.JIAL.FMSystem.controller;
package com.JIAL.demo.index.controller;
import com.JIAL.FMSystem.API.juheshuju.weather.WeatherDao;
import com.JIAL.FMSystem.common.R;
import com.JIAL.FMSystem.utils.HttpUtils;
import com.JIAL.demo.index.API.juheshuju.weather.WeatherDao;
import com.JIAL.common.R;
import com.JIAL.utils.HttpUtils;
import lombok.extern.slf4j.Slf4j;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.bind.annotation.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.HashMap;
import java.util.Map;
@ -33,15 +34,15 @@ public class APIController {
@Value("${POST_TYPE_COD}")
private String POST_TYPE_CODE;
private static final Logger logger = LoggerFactory.getLogger(APIController.class);
@PostMapping ("/weather")
@GetMapping ("/weather")
public R<WeatherDao> queryWeather(@RequestParam("cityName") String cityName) {
Map<String, Object> params = new HashMap<>();//组合参数
params.put("city", cityName);
params.put("key", weather_API_KEY);
String queryParams = HttpUtils.urlEncode(params);
logger.info("Received request with parameter: {}", cityName);
String response = HttpUtils.doPost(weather_API_URL, queryParams, POST_TYPE_CODE);
try {
JSONObject jsonObject = JSONObject.fromObject(response);

View File

@ -1,8 +1,8 @@
package com.JIAL.FMSystem.filter;
package com.JIAL.filter;
import com.alibaba.fastjson.JSON;
import com.JIAL.FMSystem.common.BaseContext;
import com.JIAL.FMSystem.common.R;
import com.JIAL.common.BaseContext;
import com.JIAL.common.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.AntPathMatcher;
@ -33,10 +33,10 @@ public class LoginCheckFilter implements Filter{
//定义需要处理的请求路径
String[] urls = new String[]{
"/user/login",
/* "/user/login",
"/user/logout",
"/backend/**",
"/user/sendMsg",
"/user/sendMsg",*/
};
//2判断本次请求是否需要处理

View File

@ -1,4 +1,4 @@
package com.JIAL.FMSystem.utils;
package com.JIAL.utils;
import java.io.*;
import java.net.HttpURLConnection;

View File

@ -1,4 +1,4 @@
package com.JIAL.FMSystem.utils;
package com.JIAL.utils;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;

View File

@ -0,0 +1,48 @@
package com.JIAL.utils;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Optional;
/**
* @ClassName StringUtils
* @Description 处理字符串的工具类
* @Author JIAL
* @Date 2024/1/9 14:02
* @Version 1.0
*/
public class StringUtils {
/**
* @title getDefaultIfNull
* @description 判断传入的字符串是否为null,如果为null则赋值为提供的默认值
* @author JIAL
* @param: value
* @param: defaultValue
* @updateTime 2024/1/9 14:03
* @return: java.lang.String
*/
public static String getDefaultIfNull(String value, String defaultValue) {
return Optional.ofNullable(value).orElse(defaultValue);
}
/**
* @title formatDateString
* @description 格式化传入的日期字符串
* @author JIAL
* @param: inputString 传入字符串
* @param: inputFormat 指定传入的格式 yyyyMMdd
* @param: outputFormat 指定输出的格式 yyyy-MM-dd
* @updateTime 2024/1/9 14:39
* @return: java.lang.String
*/
public static String formatDateString(String inputString, String inputFormat, String outputFormat) {
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern(inputFormat);
LocalDate date = LocalDate.parse(inputString, inputFormatter);
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern(outputFormat);
return date.format(outputFormatter);
}
}

View File

@ -1,4 +1,4 @@
package com.JIAL.FMSystem.utils;
package com.JIAL.utils;
import java.util.Random;

View File

@ -0,0 +1,28 @@
server:
port: 8080
spring:
application:
#应用的名称,可选
name: JIALDev
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/fwsystem?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: 123456
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
mybatis-plus:
configuration:
#在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
id-type: ASSIGN_ID

View File

@ -0,0 +1,35 @@
server:
port: 8080
spring:
application:
#应用的名称,可选
name: JIALDev
datasource:
druid:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
url: jdbc:sqlserver://192.168.9.230:1433;databaseName=ERP;Encrypt=false;TrustServerCertificate=true;
username: sa
password: Itcenter110-
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
logging:
level:
root: warn
com.JIAL: info
file:
name: logs/JIAL-ss.log
mybatis-plus:
configuration:
#在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
id-type: ASSIGN_ID

View File

@ -1,28 +1,5 @@
server:
port: 8080
spring:
application:
#应用的名称,可选
name: FWDev
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/fwsystem?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: 123456
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
mybatis-plus:
configuration:
#在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
id-type: ASSIGN_ID
thymeleaf:
mode: HTML
profiles:
active: ss

View File

@ -1,351 +0,0 @@
.selectInput {
position: relative;
width: 100%;
min-width: 100px;
}
.selectInput .flavorSelect {
position: absolute;
width: 100%;
padding: 0 10px;
border-radius: 3px;
border: solid 1px #FF903D;
line-height: 30px;
text-align: center;
background: #fff;
top: 50px;
z-index: 99;
}
.selectInput .flavorSelect .items {
cursor: pointer;
display: inline-block;
width: 100%;
line-height: 35px;
border-bottom: solid 1px #f4f4f4;
color: #666;
}
.selectInput .flavorSelect .none {
font-size: 14px;
}
#hearCase-add-app .uploadImg .el-form-item__label::before{
content: '*';
color: #F56C6C;
margin-right: 4px;
}
#hearCase-add-app .plaintiff .el-form-item__label::before{
content: '*';
color: #F56C6C;
margin-right: 4px;
}
.addPlaintiff .el-input {
width: 130px;
}
.addPlaintiff .el-input-number__increase {
border-left: solid 1px #FFE1CA;
background: #fff3ea;
}
.addPlaintiff .el-input-number__decrease {
border-right: solid 1px #FFE1CA;
background: #fff3ea;
}
.addPlaintiff input {
border: 1px solid #ffe1ca;
}
.addPlaintiff .table {
border: solid 1px #EBEEF5;
border-radius: 3px;
}
.addPlaintiff .table th {
padding: 5px 0;
}
.addPlaintiff .table td {
padding: 7px 0;
}
.addPlaintiffList .searchPlaintiff {
position: absolute;
top: 10px;
right: 20px;
}
.addPlaintiffList .el-dialog__body {
padding: 0;
border-bottom: solid 1px #ccc;
}
.addPlaintiffList .el-dialog__footer {
padding-top: 27px;
}
.addPlaintiff {
width: 777px;
}
.addPlaintiff .addBut {
background: #ffc200;
display: inline-block;
padding: 0px 20px;
border-radius: 3px;
line-height: 40px;
cursor: pointer;
border-radius: 4px;
color: #333333;
font-weight: 500;
}
.addPlaintiff .content {
background: #fafafb;
padding: 20px;
border: solid 1px #ccc;
border-radius: 3px;
}
.addPlaintiffCon {
padding: 0 20px;
display: flex;
line-height: 40px;
}
.addPlaintiffCon .leftCont {
display: flex;
border-right: solid 2px #E4E7ED;
width: 60%;
padding: 15px;
}
.addPlaintiffCon .leftCont .tabBut {
width: 110px;
}
.addPlaintiffCon .leftCont .tabBut span {
display: block;
text-align: center;
border-right: solid 2px #f4f4f4;
cursor: pointer;
}
.addPlaintiffCon .leftCont .act {
border-color: #FFC200 !important;
color: #FFC200 !important;
}
.addPlaintiffCon .leftCont .tabList {
flex: 1;
padding: 15px;
}
.addPlaintiffCon .leftCont .tabList .table {
border: solid 1px #f4f4f4;
border-bottom: solid 1px #f4f4f4;
}
.addPlaintiffCon .leftCont .tabList .table .items {
border-bottom: solid 1px #f4f4f4;
padding: 0 10px;
display: flex;
}
.addPlaintiffCon .leftCont .tabList .table .items .el-checkbox, .addPlaintiffCon .leftCont .tabList .table .items .el-checkbox__label {
width: 100%;
}
.addPlaintiffCon .leftCont .tabList .table .items .item {
display: flex;
padding-right: 20px;
}
.addPlaintiffCon .leftCont .tabList .table .items .item span {
display: inline-block;
text-align: center;
flex: 1;
}
.addPlaintiffCon .ritCont {
width: 40%;
padding: 0 15px;
}
.addPlaintiffCon .ritCont .item {
box-shadow: 0px 1px 4px 3px rgba(0, 0, 0, 0.03);
display: flex;
text-align: center;
padding: 0 10px;
margin-bottom: 20px;
border-radius: 6px;
color: #818693;
}
.addPlaintiffCon .ritCont .item span:first-child {
text-align: left;
color: #20232A;
}
.addPlaintiffCon .ritCont .item .price {
display: inline-block;
flex: 1;
}
.addPlaintiffCon .ritCont .item .del {
cursor: pointer;
}
.addPlaintiffCon .ritCont .item .del img {
position: relative;
top: 5px;
width: 20px;
}
.addPlaintiffCon .el-checkbox__label{
width: 100%;
}
.addDefendant .el-input {
width: 130px;
}
.addDefendant .el-input-number__increase {
border-left: solid 1px #FFE1CA;
background: #fff3ea;
}
.addDefendant .el-input-number__decrease {
border-right: solid 1px #FFE1CA;
background: #fff3ea;
}
.addDefendant input {
border: 1px solid #ffe1ca;
}
.addDefendant .table {
border: solid 1px #EBEEF5;
border-radius: 3px;
}
.addDefendant .table th {
padding: 5px 0;
}
.addDefendant .table td {
padding: 7px 0;
}
.addDefendantList .searchDefendant {
position: absolute;
top: 10px;
right: 20px;
}
.addDefendantList .el-dialog__body {
padding: 0;
border-bottom: solid 1px #ccc;
}
.addDefendantList .el-dialog__footer {
padding-top: 27px;
}
.addDefendant {
width: 777px;
}
.addDefendant .addBut {
background: #ffc200;
display: inline-block;
padding: 0px 20px;
border-radius: 3px;
line-height: 40px;
cursor: pointer;
border-radius: 4px;
color: #333333;
font-weight: 500;
}
.addDefendant .content {
background: #fafafb;
padding: 20px;
border: solid 1px #ccc;
border-radius: 3px;
}
.addDefendantCon {
padding: 0 20px;
display: flex;
line-height: 40px;
}
.addDefendantCon .leftCont {
display: flex;
border-right: solid 2px #E4E7ED;
width: 60%;
padding: 15px;
}
.addDefendantCon .leftCont .tabBut {
width: 110px;
}
.addDefendantCon .leftCont .tabBut span {
display: block;
text-align: center;
border-right: solid 2px #f4f4f4;
cursor: pointer;
}
.addDefendantCon .leftCont .act {
border-color: #FFC200 !important;
color: #FFC200 !important;
}
.addDefendantCon .leftCont .tabList {
flex: 1;
padding: 15px;
}
.addDefendantCon .leftCont .tabList .table {
border: solid 1px #f4f4f4;
border-bottom: solid 1px #f4f4f4;
}
.addDefendantCon .leftCont .tabList .table .items {
border-bottom: solid 1px #f4f4f4;
padding: 0 10px;
display: flex;
}
.addDefendantCon .leftCont .tabList .table .items .el-checkbox,
.addDefendantCon .leftCont .tabList .table .items .el-checkbox__label {
width: 100%;
}
.addDefendantCon .leftCont .tabList .table .items .item {
display: flex;
padding-right: 20px;
}
.addDefendantCon .leftCont .tabList .table .items .item span {
display: inline-block;
text-align: center;
flex: 1;
}
.addDefendantCon .ritCont {
width: 40%;
padding: 0 15px;
}
.addDefendantCon .ritCont .item {
box-shadow: 0px 1px 4px 3px rgba(0, 0, 0, 0.03);
display: flex;
text-align: center;
padding: 0 10px;
margin-bottom: 20px;
border-radius: 6px;
color: #818693;
}
.addDefendantCon .ritCont .item span:first-child {
text-align: left;
color: #20232A;
}
.addDefendantCon .ritCont .item .price {
display: inline-block;
flex: 1;
}
.addDefendantCon .ritCont .item .del {
cursor: pointer;
}
.addDefendantCon .ritCont .item .del img {
position: relative;
top: 5px;
width: 20px;
}
.addDefendantCon .el-checkbox__label {
width: 100%;
}

View File

@ -0,0 +1,38 @@
.container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.center-container {
text-align: center;
margin: auto;
width: 80%;
height: 100vh;
}
.table-box {
margin: 30px 20px 60px 20px;
}
.table-box .el-input {
margin-right: 30px;
width: 220px;
}
.el-table {
margin: auto;
}
.el-table .el-table__row {
height: 20px;
}
.el-dialog {
width : 100%;
max-width: 800px;
}

View File

@ -0,0 +1,180 @@
<!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="css/index.css">
</head>
<body>
<div class="container" id="index-app">
<div class="center-container">
<el-form class="table-box">
<el-form-item>
<el-input v-model="var1" placeholder="请输入客户名称" maxlength="20" type="text" auto-complete="off" clearable>
</el-input>
<el-select v-model="timeValue" placeholder="请选择时间">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-button type="primary" @click="queryList">点击查询</el-button>
</el-form-item>
</el-form>
<el-table
:data="tableData"
border
row-height="30px">
<el-table-column
prop="kunnr"
label="客户编号">
</el-table-column>
<el-table-column
prop="name1"
label="客户名称">
</el-table-column>
<el-table-column
label="操作">
<template slot-scope="scope">
<el-button @click="handleClick(scope.row)" type="text">查看</el-button>
</template>
</el-table-column>
</el-table>
</div>
<el-dialog title="详细情况" :visible.sync="dialogTableVisible">
<template>
<el-descriptions :column="1" :label-style="LS" border>
<el-descriptions-item label="最近下单日期">{{detail.latestOrderDate}}</el-descriptions-item>
<el-descriptions-item label="最近发货日期">{{detail.latestShippingDate}}</el-descriptions-item>
<el-descriptions-item label="最近报价日期">{{detail.latestQuotationDate}}</el-descriptions-item>
<el-descriptions-item label="目前在跟踪的业务员数量" :span="2">{{detail.salespersonCount}}</el-descriptions-item>
</el-descriptions>
</template>
</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>
<script src="js/index.js"></script>
<script>
new Vue({
el: '#index-app',
data() {
return {
var1 : "",
options: [
{value: '1', label: '一年以内'},
{value: '2', label: '两年以内'},
{value: '3', label: '三年以内'},
],
timeValue: '1',
tableData: null,
gridData: "",
dialogTableVisible: false,
LS: {
'color': '#000',
'text-align': 'left',
'font-weight': '600',
'height': '40px',
'background-color': '#d6dbe1',
'min-width' : '50px',
'width': '150px',
'word-break': 'keep-all',
'whiteSpace': 'pre-wrap'
},
detail: {
latestOrderDate: '',
latestShippingDate: '',
salespersonCount: '',
latestQuotationDate: ''
}
}
},
computed: {
},
created() {
},
mounted() {
},
methods: {
async init () {
},
handleClick(row) {
console.log(row.kunnr)
console.log(row.name1)
const params = {
name : row.name1,
kunnr : row.kunnr,
time : this.timeValue
}
console.log(params)
queryDetailByParams(params).then(res => {
if (String(res.code) === '1') {
console.log(res.data)
this.detail.latestOrderDate = res.data.latestOrderDate !== '0' ? res.data.latestOrderDate : '无数据';
this.detail.salespersonCount = res.data.salespersonCount !== '0' ? res.data.salespersonCount : '无数据';
this.detail.latestQuotationDate = res.data.latestQuotationDate !== '0' ? res.data.latestQuotationDate : '无数据';
this.detail.latestShippingDate = res.data.latestShippingDate !== '0' ? res.data.latestShippingDate : '无数据';
}
}).catch(err => {
this.$message.error('请求出错了:' + err)
})
this.dialogTableVisible = true
},
queryList() {
console.log("开始调用查询")
const name = this.var1
console.log("名称+" + name)
const params = {
name : name
}
console.log(params)
if(this.var1 !== "") {
queryListByName(params).then(res => {
if (String(res.code) === '1') {
console.log(res.data)
this.tableData = res.data || []
}
}).catch(err => {
this.$message.error('请求出错了:' + err)
})
}else {
this.$message('请输入客户名称进行查询');
this.tableData = ""
}
}
}
})
</script>
</body>
</html>

View File

@ -0,0 +1,15 @@
const queryListByName = (params) => {
return $axios({
url: '/bizquery/list',
method: 'post',
params
})
}
const queryDetailByParams = (params) => {
return $axios({
url: '/bizquery/detail',
method: 'post',
params
})
}

View File

@ -0,0 +1,14 @@
.el-menu-demo {
background-color: transparent; /* 背景透明 */
display: flex;
justify-content: center; /* 菜单项水平居中 */
}
.el-menu-demo .el-submenu,
.el-menu-demo .el-menu-item {
margin: 0; /* 去除默认的 margin */
}
.el-menu-demo .el-submenu .el-menu {
background-color: transparent; /* 子菜单背景透明 */
}

View File

@ -0,0 +1,38 @@
.container {
}
.login-box {
position: absolute;
top: 120px;
left: 460px;
}
.login-box .el-card {
background-color: rgba(255, 255, 255, 0.6);
height: 400px;
width: 600px;
text-align: center;
}
.el-form {
position: absolute;
text-align: center;
width: 400px;
top: 50px;
left: 100px;
}
.el-form .el-form-item {
margin-top: 50px;
}
/* 隐藏右侧显示密码按钮 */
.el-input__password + .el-input__suffix {
display: none !important;
}
.el-card .button-box {
position: relative;
top: 30px;
}

View File

@ -0,0 +1,73 @@
<!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/avatar.jpg" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="/static/style/css/main.css">
<link rel="stylesheet" href="/plugins/element-ui/index.css">
<!-- import CSS -->
<link rel="stylesheet" href="css/index.css">
</head>
<body>
<div id="index-app" class="container">
<el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect">
<el-submenu index="1">
<template slot="title">我的工作台</template>
<el-menu-item index="1-1">选项1</el-menu-item>
<el-menu-item index="1-2">选项2</el-menu-item>
<el-menu-item index="1-3">选项3</el-menu-item>
</el-submenu>
<el-menu-item index="2">工作中心</el-menu-item>
<el-menu-item index="3">消息中心</el-menu-item>
<el-menu-item index="4">账号管理</a></el-menu-item>
</el-menu>
</div>
<script type="text/javascript" src="/static/style/js/main.js"></script>
<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>
<script>
new Vue({
el: '#index-app',
data() {
return {
}
},
computed: {
},
created() {
},
mounted() {
},
methods: {
async init () {
},
handleOpen(key, keyPath) {
console.log(key, keyPath);
},
handleClose(key, keyPath) {
console.log(key, keyPath);
}
}
})
</script>
</script>
</body>
</html>

View File

View File

@ -0,0 +1,109 @@
<!DOCTYPE html>
<html lang="zh-cmn-Hans">
<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/avatar.jpg" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="/static/style/css/main.css">
<link rel="stylesheet" href="/plugins/element-ui/index.css">
<!-- import CSS -->
<link rel="stylesheet" type="text/css" href="css/login.css">
</head>
<body>
<div class="container" id="login-app">
<div class="login-box">
<el-card>
<el-form ref="loginForm" :model="loginForm" style="user-select: none;" :rules="rules">
<el-form-item prop="username">
<el-input v-model="loginForm.username" placeholder="请输入用户名" maxlength="20" type="text" auto-complete="off" clearable>
</el-input>
</el-form-item>
<el-form-item prop="password">
<el-input v-model="loginForm.password" show-password placeholder="请输入密码" clearable maxlength="32">
</el-input>
</el-form-item>
<div class="button-box">
<el-button type="text" style="margin-right: 100px; font-size: 20px" @click="login">登录</el-button>
<el-button type="text" style="font-size: 20px; color: #8c939d" @click="register">注册</el-button>
</div>
</el-form>
</el-card>
</div>
<!-- 底部footer -->
<el-footer class="footer-container" style="position: absolute; top: 640px; left: 550px; ">
<!-- 办案信息展示区域 -->
<div class="case-info" >
<!-- 在这里绑定Vue数据来展示办案信息 -->
<div>Designed by JIAL 2023. Permission granted for redistribution.</div>
<div><a style="text-decoration:none; color: #999" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=64020202000218&amp;token=4adb4592-9573-41b6-ab1c-a23850030e0d" style="display:inline-block;text-decoration:none;height:20px;line-height:20px;" target="_blank" >宁公网安备 64020202000218号</a></div>
<div><a style="text-decoration:none; color: #999" href="https://beian.miit.gov.cn/?token=4adb4592-9573-41b6-ab1c-a23850030e0d#/Integrated/index" target="_blank" >宁ICP备2022000681号</a></div>
</div>
</el-footer>
</div>
<script type="text/javascript" src="/static/style/js/main.js"></script>
<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 JavaScript -->
<script src="js/login.js"></script>
<script>
new Vue({
el: '#login-app',
data() {
return {
loginForm: {
username: "",
password: "",
},
rules: {
username: [
{ required: true, message: '请输入用户名', trigger: 'blur' },
{ pattern: /^[a-zA-Z0-9]{1,8}$/, message: '用户名只能为字母和数字且不超过8位', trigger: 'blur' },
// 其他验证规则可以根据需要添加
],
password: [
{ required: true, message: '请输入密码', trigger: 'blur' },
{ pattern: /^[a-zA-Z0-9_]{1,20}$/, message: '密码只能为字母、数字和下划线且不超过20位', trigger: 'blur' },
// 其他验证规则可以根据需要添加
],
},
}
},
computed: {
},
created() {
},
mounted() {
},
methods: {
async init () {
},
login() {
},
register() {
}
}
})
</script>
</body>
</html>

View File

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<!--包含Spring boot对logback日志的默认配置-->
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
<!--重写了Spring Boot框架 org/springframework/boot/logging/logback/file-appender.xml 配置-->
<appender name="TIME_FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<file>${LOG_FILE}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i</fileNamePattern>
<!--
Spring Boot默认情况下日志文件10M时会切分日志文件,这样设置日志文件会在100M时切分日志
-->
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="TIME_FILE" />
</root>
</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
......
-->

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@ -0,0 +1,213 @@
.container {
position: relative;
}
.avatar {
border-radius: 50%;
width: 160px;
right: 100px;
}
.clock-wrapper {
position: absolute;
width: 200px;
height: 100px;
left: -340px;
}
.clock-wrapper .el-card {
border-radius: 8px;
background-color: rgba(255, 255, 255, 0.1); /* 透明度 */
margin: 20px auto;
display: flex;
justify-content: center;
align-items: center;
}
.weather-wrapper {
position: absolute;
left: 700px;
}
.weather-wrapper .weather-title {
text-align: center;
}
.weather-wrapper .weather-title .el-input {
width: 90px;
}
.weather-wrapper .el-card {
background-color: rgba(255, 255, 255, 0.1);
width: 300px;
height: 250px;
}
.weather-wrapper .el-card .weather-info {
margin-top: 20px;
}
.weather-wrapper .el-card .weather-info div {
font-size: 15px;
margin: 10px 20px 10px 25px;
color: #666; /* 文本颜色可调节 */
}
.weather-wrapper .weather-title .el-input__inner {
height: 25px;
}
.calendar-wrapper {
position: absolute;
width: 430px;
top: 140px;
left: -440px;
}
.calendar-wrapper .el-calendar {
background-color: rgba(255, 255, 255, 0.3); /* 设置背景透明度 */
}
.calendar-wrapper .el-calendar .el-calendar-day {
font-size:10px; /* 设置字体大小,根据需要调整 */
height: 55px;
}
.el-button-group>.el-button {
width: 60px;
background-color: rgba(255, 255, 255, 0.3); /* 设置背景透明度 */
}
/**隐藏上一月、本月、下一月*/
.el-calendar__button-group {
left: 240px;
position: absolute;
/*display: none;*/
}
/**月份居中*/
.el-calendar__title {
width: 100%;
text-align: left;
}
/**日期div的样式*/
.el-calendar-table tr td:first-child {
border-left: 0px;
}
.el-calendar-table td {
min-height: 0px;
min-width: 0px;
border-right: 0px;
}
.el-calendar-table td.is-selected {
background-color: white;
}
.el-calendar-table .el-calendar-day {
height: 100%;
width: 100%;
text-align: center;
}
.el-calendar-table .el-calendar-day > div {
height: 104px;
}
/**日期div的样式-公历*/
.el-calendar-table .el-calendar-day > div .solar {
padding-top: 0px;
}
/**日期div的样式-农历*/
.el-calendar-table .el-calendar-day > div .lunar {
padding-top: 8px;
}
/**日期div的样式-选中*/
.el-calendar-table .el-calendar-day > div.selected {
background-color: #fef2f2;
border: 3px solid #fb0;
border-radius: 20px;
}
/**本月周末设置为红色*/
.el-calendar-table .current:nth-last-child(-n+2) .solar {
color: red;
}
/**本月农历设置为灰色*/
.el-calendar-table .current .lunar {
color: #606266;
}
/**本月农历节日设置为红色*/
.el-calendar-table .current .lunar.festival {
color: red;
}
/**禁用点击效果*/
/*.el-calendar-table td {*/
/*pointer-events: none;*/
/*}*/
.clock-digits {
font-size: 40px;
color: #333;
}
li {
float: left;
list-style-type: none;
padding: 15px;
margin-top: 20px;
}
::selection {
background: rgba(0,149,255,.1);
color: #6F8EC5;
}
p {
margin: 0;
}
body {
display: flex;
justify-content: center;
align-items: center;
}
a {
text-decoration: none;
color: inherit;
}
.bio {
color: rgba(51,51,51,0.54);
margin-top: 8px;
display: flex;
justify-content: center;
align-items: center;
}
.bio > span {
font-weight: 300;
letter-spacing: 1.4px;
opacity: 0;
transition: all 1s .5s;
}
.bio > span.emphasis {
font-size: 20px;
letter-spacing: 2px;
}
.bio.ready > span {
opacity: 1;
}
.content-container {
position: relative;
text-align: center;
}

View File

@ -12,220 +12,6 @@ html,body {
overflow-y:hidden;
}
.container {
position: relative;
}
.avatar {
border-radius: 50%;
width: 160px;
right: 100px;
}
.clock-wrapper {
position: absolute;
width: 200px;
height: 100px;
left: -340px;
}
.clock-wrapper .el-card {
border-radius: 8px;
background-color: rgba(255, 255, 255, 0.1); /* 透明度 */
margin: 20px auto;
display: flex;
justify-content: center;
align-items: center;
}
.weather-wrapper {
position: absolute;
left: 700px;
}
.weather-wrapper .weather-title {
text-align: center;
}
.weather-wrapper .weather-title .el-input {
width: 90px;
}
.weather-wrapper .el-card {
background-color: rgba(255, 255, 255, 0.1);
width: 300px;
height: 250px;
}
.weather-wrapper .el-card .weather-info {
margin-top: 20px;
}
.weather-wrapper .el-card .weather-info div {
font-size: 15px;
margin: 10px 20px 10px 25px;
color: #666; /* 文本颜色可调节 */
}
.weather-wrapper .weather-title .el-input__inner {
height: 25px;
}
.calendar-wrapper {
position: absolute;
width: 430px;
top: 140px;
left: -440px;
}
.calendar-wrapper .el-calendar {
background-color: rgba(255, 255, 255, 0.3); /* 设置背景透明度 */
}
.calendar-wrapper .el-calendar .el-calendar-day {
font-size:10px; /* 设置字体大小,根据需要调整 */
height: 55px;
}
.el-button-group>.el-button {
width: 60px;
background-color: rgba(255, 255, 255, 0.3); /* 设置背景透明度 */
}
/**隐藏上一月、本月、下一月*/
.el-calendar__button-group {
left: 240px;
position: absolute;
/*display: none;*/
}
/**月份居中*/
.el-calendar__title {
width: 100%;
text-align: left;
}
/**日期div的样式*/
.el-calendar-table tr td:first-child {
border-left: 0px;
}
.el-calendar-table td {
min-height: 0px;
min-width: 0px;
border-right: 0px;
}
.el-calendar-table td.is-selected {
background-color: white;
}
.el-calendar-table .el-calendar-day {
height: 100%;
width: 100%;
text-align: center;
}
.el-calendar-table .el-calendar-day > div {
height: 104px;
}
/**日期div的样式-公历*/
.el-calendar-table .el-calendar-day > div .solar {
padding-top: 0px;
}
/**日期div的样式-农历*/
.el-calendar-table .el-calendar-day > div .lunar {
padding-top: 8px;
}
/**日期div的样式-选中*/
.el-calendar-table .el-calendar-day > div.selected {
background-color: #fef2f2;
border: 3px solid #fb0;
border-radius: 20px;
}
/**本月周末设置为红色*/
.el-calendar-table .current:nth-last-child(-n+2) .solar {
color: red;
}
/**本月农历设置为灰色*/
.el-calendar-table .current .lunar {
color: #606266;
}
/**本月农历节日设置为红色*/
.el-calendar-table .current .lunar.festival {
color: red;
}
/**禁用点击效果*/
/*.el-calendar-table td {*/
/*pointer-events: none;*/
/*}*/
.clock-digits {
font-size: 40px;
color: #333;
}
li {
float: left;
list-style-type: none;
padding: 15px;
margin-top: 20px;
}
::selection {
background: rgba(0,149,255,.1);
color: #6F8EC5;
}
p {
margin: 0;
}
body {
display: flex;
justify-content: center;
align-items: center;
}
a {
text-decoration: none;
color: inherit;
}
.bio {
color: rgba(51,51,51,0.54);
margin-top: 8px;
display: flex;
justify-content: center;
align-items: center;
}
.bio > span {
font-weight: 300;
letter-spacing: 1.4px;
opacity: 0;
transition: all 1s .5s;
}
.bio > span.emphasis {
font-size: 20px;
letter-spacing: 2px;
}
.bio.ready > span {
opacity: 1;
}
.content-container {
position: relative;
text-align: center;
}
.footer {
position: absolute;

View File

@ -1,7 +1,7 @@
const getWeatherInfo = (params) => {
return $axios({
url: '/api/weather',
method: 'post',
method: 'get',
params
})
}

View File

@ -2,15 +2,16 @@
<html lang="zh-cmn-Hans">
<head>
<meta charset="utf-8">
<title>JIAL个人主页</title>
<meta name="author" content="iami">
<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="stylesheet" type="text/css" href="../static/style/css/main.css">
<link rel="icon" href="../static/image/avatar.jpg" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="/static/style/css/main.css">
<link rel="stylesheet" type="text/css" href="/static/style/css/index.css">
<link rel="icon" href="/static/image/avatar.jpg" type="image/x-icon">
<!-- import CSS -->
<link rel="stylesheet" href="../plugins/element-ui/index.css">
<link rel="stylesheet" href="/plugins/element-ui/index.css">
</head>
<body>
<div class="container" id="index-app">
@ -52,7 +53,7 @@
</el-card>
</div>
<div class="content-container">
<img class="avatar" src="../static/image/avatar.jpg"/>
<img class="avatar" src="/static/image/avatar.jpg"/>
<div class="text part1">
<div>
<span class="letter"><div class="character">J</div> <span></span></span>
@ -112,7 +113,7 @@
</li>
<li>
<a href="https://leetcode.cn/" target="_blank">
<img width="50px" src="../static/image/leetcode.png"/>
<img width="50px" src="/static/image/leetcode.png"/>
</a>
</li>
<li>
@ -136,7 +137,7 @@
</div>
</el-footer>
</div>
<script type="text/javascript" src="../static/style/js/main.js"></script>
<script type="text/javascript" src="/static/style/js/main.js"></script>
<!-- import Vue before Element -->
<script src="../plugins/vue/vue.js"></script>
<!-- import JavaScript -->

View File

@ -0,0 +1,28 @@
server:
port: 8080
spring:
application:
#应用的名称,可选
name: JIALDev
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/fwsystem?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: 123456
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
mybatis-plus:
configuration:
#在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
id-type: ASSIGN_ID

View File

@ -0,0 +1,35 @@
server:
port: 8080
spring:
application:
#应用的名称,可选
name: JIALDev
datasource:
druid:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
url: jdbc:sqlserver://192.168.9.230:1433;databaseName=ERP;Encrypt=false;TrustServerCertificate=true;
username: sa
password: Itcenter110-
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
logging:
level:
root: warn
com.JIAL: info
file:
name: logs/JIAL-ss.log
mybatis-plus:
configuration:
#在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
id-type: ASSIGN_ID

View File

@ -1,28 +1,5 @@
server:
port: 8080
spring:
application:
#应用的名称,可选
name: FWDev
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/fwsystem?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: 123456
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
mybatis-plus:
configuration:
#在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
id-type: ASSIGN_ID
thymeleaf:
mode: HTML
profiles:
active: ss

View File

@ -1,351 +0,0 @@
.selectInput {
position: relative;
width: 100%;
min-width: 100px;
}
.selectInput .flavorSelect {
position: absolute;
width: 100%;
padding: 0 10px;
border-radius: 3px;
border: solid 1px #FF903D;
line-height: 30px;
text-align: center;
background: #fff;
top: 50px;
z-index: 99;
}
.selectInput .flavorSelect .items {
cursor: pointer;
display: inline-block;
width: 100%;
line-height: 35px;
border-bottom: solid 1px #f4f4f4;
color: #666;
}
.selectInput .flavorSelect .none {
font-size: 14px;
}
#hearCase-add-app .uploadImg .el-form-item__label::before{
content: '*';
color: #F56C6C;
margin-right: 4px;
}
#hearCase-add-app .plaintiff .el-form-item__label::before{
content: '*';
color: #F56C6C;
margin-right: 4px;
}
.addPlaintiff .el-input {
width: 130px;
}
.addPlaintiff .el-input-number__increase {
border-left: solid 1px #FFE1CA;
background: #fff3ea;
}
.addPlaintiff .el-input-number__decrease {
border-right: solid 1px #FFE1CA;
background: #fff3ea;
}
.addPlaintiff input {
border: 1px solid #ffe1ca;
}
.addPlaintiff .table {
border: solid 1px #EBEEF5;
border-radius: 3px;
}
.addPlaintiff .table th {
padding: 5px 0;
}
.addPlaintiff .table td {
padding: 7px 0;
}
.addPlaintiffList .searchPlaintiff {
position: absolute;
top: 10px;
right: 20px;
}
.addPlaintiffList .el-dialog__body {
padding: 0;
border-bottom: solid 1px #ccc;
}
.addPlaintiffList .el-dialog__footer {
padding-top: 27px;
}
.addPlaintiff {
width: 777px;
}
.addPlaintiff .addBut {
background: #ffc200;
display: inline-block;
padding: 0px 20px;
border-radius: 3px;
line-height: 40px;
cursor: pointer;
border-radius: 4px;
color: #333333;
font-weight: 500;
}
.addPlaintiff .content {
background: #fafafb;
padding: 20px;
border: solid 1px #ccc;
border-radius: 3px;
}
.addPlaintiffCon {
padding: 0 20px;
display: flex;
line-height: 40px;
}
.addPlaintiffCon .leftCont {
display: flex;
border-right: solid 2px #E4E7ED;
width: 60%;
padding: 15px;
}
.addPlaintiffCon .leftCont .tabBut {
width: 110px;
}
.addPlaintiffCon .leftCont .tabBut span {
display: block;
text-align: center;
border-right: solid 2px #f4f4f4;
cursor: pointer;
}
.addPlaintiffCon .leftCont .act {
border-color: #FFC200 !important;
color: #FFC200 !important;
}
.addPlaintiffCon .leftCont .tabList {
flex: 1;
padding: 15px;
}
.addPlaintiffCon .leftCont .tabList .table {
border: solid 1px #f4f4f4;
border-bottom: solid 1px #f4f4f4;
}
.addPlaintiffCon .leftCont .tabList .table .items {
border-bottom: solid 1px #f4f4f4;
padding: 0 10px;
display: flex;
}
.addPlaintiffCon .leftCont .tabList .table .items .el-checkbox, .addPlaintiffCon .leftCont .tabList .table .items .el-checkbox__label {
width: 100%;
}
.addPlaintiffCon .leftCont .tabList .table .items .item {
display: flex;
padding-right: 20px;
}
.addPlaintiffCon .leftCont .tabList .table .items .item span {
display: inline-block;
text-align: center;
flex: 1;
}
.addPlaintiffCon .ritCont {
width: 40%;
padding: 0 15px;
}
.addPlaintiffCon .ritCont .item {
box-shadow: 0px 1px 4px 3px rgba(0, 0, 0, 0.03);
display: flex;
text-align: center;
padding: 0 10px;
margin-bottom: 20px;
border-radius: 6px;
color: #818693;
}
.addPlaintiffCon .ritCont .item span:first-child {
text-align: left;
color: #20232A;
}
.addPlaintiffCon .ritCont .item .price {
display: inline-block;
flex: 1;
}
.addPlaintiffCon .ritCont .item .del {
cursor: pointer;
}
.addPlaintiffCon .ritCont .item .del img {
position: relative;
top: 5px;
width: 20px;
}
.addPlaintiffCon .el-checkbox__label{
width: 100%;
}
.addDefendant .el-input {
width: 130px;
}
.addDefendant .el-input-number__increase {
border-left: solid 1px #FFE1CA;
background: #fff3ea;
}
.addDefendant .el-input-number__decrease {
border-right: solid 1px #FFE1CA;
background: #fff3ea;
}
.addDefendant input {
border: 1px solid #ffe1ca;
}
.addDefendant .table {
border: solid 1px #EBEEF5;
border-radius: 3px;
}
.addDefendant .table th {
padding: 5px 0;
}
.addDefendant .table td {
padding: 7px 0;
}
.addDefendantList .searchDefendant {
position: absolute;
top: 10px;
right: 20px;
}
.addDefendantList .el-dialog__body {
padding: 0;
border-bottom: solid 1px #ccc;
}
.addDefendantList .el-dialog__footer {
padding-top: 27px;
}
.addDefendant {
width: 777px;
}
.addDefendant .addBut {
background: #ffc200;
display: inline-block;
padding: 0px 20px;
border-radius: 3px;
line-height: 40px;
cursor: pointer;
border-radius: 4px;
color: #333333;
font-weight: 500;
}
.addDefendant .content {
background: #fafafb;
padding: 20px;
border: solid 1px #ccc;
border-radius: 3px;
}
.addDefendantCon {
padding: 0 20px;
display: flex;
line-height: 40px;
}
.addDefendantCon .leftCont {
display: flex;
border-right: solid 2px #E4E7ED;
width: 60%;
padding: 15px;
}
.addDefendantCon .leftCont .tabBut {
width: 110px;
}
.addDefendantCon .leftCont .tabBut span {
display: block;
text-align: center;
border-right: solid 2px #f4f4f4;
cursor: pointer;
}
.addDefendantCon .leftCont .act {
border-color: #FFC200 !important;
color: #FFC200 !important;
}
.addDefendantCon .leftCont .tabList {
flex: 1;
padding: 15px;
}
.addDefendantCon .leftCont .tabList .table {
border: solid 1px #f4f4f4;
border-bottom: solid 1px #f4f4f4;
}
.addDefendantCon .leftCont .tabList .table .items {
border-bottom: solid 1px #f4f4f4;
padding: 0 10px;
display: flex;
}
.addDefendantCon .leftCont .tabList .table .items .el-checkbox,
.addDefendantCon .leftCont .tabList .table .items .el-checkbox__label {
width: 100%;
}
.addDefendantCon .leftCont .tabList .table .items .item {
display: flex;
padding-right: 20px;
}
.addDefendantCon .leftCont .tabList .table .items .item span {
display: inline-block;
text-align: center;
flex: 1;
}
.addDefendantCon .ritCont {
width: 40%;
padding: 0 15px;
}
.addDefendantCon .ritCont .item {
box-shadow: 0px 1px 4px 3px rgba(0, 0, 0, 0.03);
display: flex;
text-align: center;
padding: 0 10px;
margin-bottom: 20px;
border-radius: 6px;
color: #818693;
}
.addDefendantCon .ritCont .item span:first-child {
text-align: left;
color: #20232A;
}
.addDefendantCon .ritCont .item .price {
display: inline-block;
flex: 1;
}
.addDefendantCon .ritCont .item .del {
cursor: pointer;
}
.addDefendantCon .ritCont .item .del img {
position: relative;
top: 5px;
width: 20px;
}
.addDefendantCon .el-checkbox__label {
width: 100%;
}

View File

@ -0,0 +1,38 @@
.container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.center-container {
text-align: center;
margin: auto;
width: 80%;
height: 100vh;
}
.table-box {
margin: 30px 20px 60px 20px;
}
.table-box .el-input {
margin-right: 30px;
width: 220px;
}
.el-table {
margin: auto;
}
.el-table .el-table__row {
height: 20px;
}
.el-dialog {
width : 100%;
max-width: 800px;
}

View File

@ -0,0 +1,180 @@
<!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="css/index.css">
</head>
<body>
<div class="container" id="index-app">
<div class="center-container">
<el-form class="table-box">
<el-form-item>
<el-input v-model="var1" placeholder="请输入客户名称" maxlength="20" type="text" auto-complete="off" clearable>
</el-input>
<el-select v-model="timeValue" placeholder="请选择时间">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-button type="primary" @click="queryList">点击查询</el-button>
</el-form-item>
</el-form>
<el-table
:data="tableData"
border
row-height="30px">
<el-table-column
prop="kunnr"
label="客户编号">
</el-table-column>
<el-table-column
prop="name1"
label="客户名称">
</el-table-column>
<el-table-column
label="操作">
<template slot-scope="scope">
<el-button @click="handleClick(scope.row)" type="text">查看</el-button>
</template>
</el-table-column>
</el-table>
</div>
<el-dialog title="详细情况" :visible.sync="dialogTableVisible">
<template>
<el-descriptions :column="1" :label-style="LS" border>
<el-descriptions-item label="最近下单日期">{{detail.latestOrderDate}}</el-descriptions-item>
<el-descriptions-item label="最近发货日期">{{detail.latestShippingDate}}</el-descriptions-item>
<el-descriptions-item label="最近报价日期">{{detail.latestQuotationDate}}</el-descriptions-item>
<el-descriptions-item label="目前在跟踪的业务员数量" :span="2">{{detail.salespersonCount}}</el-descriptions-item>
</el-descriptions>
</template>
</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>
<script src="js/index.js"></script>
<script>
new Vue({
el: '#index-app',
data() {
return {
var1 : "",
options: [
{value: '1', label: '一年以内'},
{value: '2', label: '两年以内'},
{value: '3', label: '三年以内'},
],
timeValue: '1',
tableData: null,
gridData: "",
dialogTableVisible: false,
LS: {
'color': '#000',
'text-align': 'left',
'font-weight': '600',
'height': '40px',
'background-color': '#d6dbe1',
'min-width' : '50px',
'width': '150px',
'word-break': 'keep-all',
'whiteSpace': 'pre-wrap'
},
detail: {
latestOrderDate: '',
latestShippingDate: '',
salespersonCount: '',
latestQuotationDate: ''
}
}
},
computed: {
},
created() {
},
mounted() {
},
methods: {
async init () {
},
handleClick(row) {
console.log(row.kunnr)
console.log(row.name1)
const params = {
name : row.name1,
kunnr : row.kunnr,
time : this.timeValue
}
console.log(params)
queryDetailByParams(params).then(res => {
if (String(res.code) === '1') {
console.log(res.data)
this.detail.latestOrderDate = res.data.latestOrderDate !== '0' ? res.data.latestOrderDate : '无数据';
this.detail.salespersonCount = res.data.salespersonCount !== '0' ? res.data.salespersonCount : '无数据';
this.detail.latestQuotationDate = res.data.latestQuotationDate !== '0' ? res.data.latestQuotationDate : '无数据';
this.detail.latestShippingDate = res.data.latestShippingDate !== '0' ? res.data.latestShippingDate : '无数据';
}
}).catch(err => {
this.$message.error('请求出错了:' + err)
})
this.dialogTableVisible = true
},
queryList() {
console.log("开始调用查询")
const name = this.var1
console.log("名称+" + name)
const params = {
name : name
}
console.log(params)
if(this.var1 !== "") {
queryListByName(params).then(res => {
if (String(res.code) === '1') {
console.log(res.data)
this.tableData = res.data || []
}
}).catch(err => {
this.$message.error('请求出错了:' + err)
})
}else {
this.$message('请输入客户名称进行查询');
this.tableData = ""
}
}
}
})
</script>
</body>
</html>

View File

@ -0,0 +1,15 @@
const queryListByName = (params) => {
return $axios({
url: '/bizquery/list',
method: 'post',
params
})
}
const queryDetailByParams = (params) => {
return $axios({
url: '/bizquery/detail',
method: 'post',
params
})
}

View File

@ -0,0 +1,14 @@
.el-menu-demo {
background-color: transparent; /* 背景透明 */
display: flex;
justify-content: center; /* 菜单项水平居中 */
}
.el-menu-demo .el-submenu,
.el-menu-demo .el-menu-item {
margin: 0; /* 去除默认的 margin */
}
.el-menu-demo .el-submenu .el-menu {
background-color: transparent; /* 子菜单背景透明 */
}

View File

@ -0,0 +1,38 @@
.container {
}
.login-box {
position: absolute;
top: 120px;
left: 460px;
}
.login-box .el-card {
background-color: rgba(255, 255, 255, 0.6);
height: 400px;
width: 600px;
text-align: center;
}
.el-form {
position: absolute;
text-align: center;
width: 400px;
top: 50px;
left: 100px;
}
.el-form .el-form-item {
margin-top: 50px;
}
/* 隐藏右侧显示密码按钮 */
.el-input__password + .el-input__suffix {
display: none !important;
}
.el-card .button-box {
position: relative;
top: 30px;
}

View File

@ -0,0 +1,73 @@
<!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/avatar.jpg" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="/static/style/css/main.css">
<link rel="stylesheet" href="/plugins/element-ui/index.css">
<!-- import CSS -->
<link rel="stylesheet" href="css/index.css">
</head>
<body>
<div id="index-app" class="container">
<el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect">
<el-submenu index="1">
<template slot="title">我的工作台</template>
<el-menu-item index="1-1">选项1</el-menu-item>
<el-menu-item index="1-2">选项2</el-menu-item>
<el-menu-item index="1-3">选项3</el-menu-item>
</el-submenu>
<el-menu-item index="2">工作中心</el-menu-item>
<el-menu-item index="3">消息中心</el-menu-item>
<el-menu-item index="4">账号管理</a></el-menu-item>
</el-menu>
</div>
<script type="text/javascript" src="/static/style/js/main.js"></script>
<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>
<script>
new Vue({
el: '#index-app',
data() {
return {
}
},
computed: {
},
created() {
},
mounted() {
},
methods: {
async init () {
},
handleOpen(key, keyPath) {
console.log(key, keyPath);
},
handleClose(key, keyPath) {
console.log(key, keyPath);
}
}
})
</script>
</script>
</body>
</html>

View File

View File

@ -0,0 +1,109 @@
<!DOCTYPE html>
<html lang="zh-cmn-Hans">
<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/avatar.jpg" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="/static/style/css/main.css">
<link rel="stylesheet" href="/plugins/element-ui/index.css">
<!-- import CSS -->
<link rel="stylesheet" type="text/css" href="css/login.css">
</head>
<body>
<div class="container" id="login-app">
<div class="login-box">
<el-card>
<el-form ref="loginForm" :model="loginForm" style="user-select: none;" :rules="rules">
<el-form-item prop="username">
<el-input v-model="loginForm.username" placeholder="请输入用户名" maxlength="20" type="text" auto-complete="off" clearable>
</el-input>
</el-form-item>
<el-form-item prop="password">
<el-input v-model="loginForm.password" show-password placeholder="请输入密码" clearable maxlength="32">
</el-input>
</el-form-item>
<div class="button-box">
<el-button type="text" style="margin-right: 100px; font-size: 20px" @click="login">登录</el-button>
<el-button type="text" style="font-size: 20px; color: #8c939d" @click="register">注册</el-button>
</div>
</el-form>
</el-card>
</div>
<!-- 底部footer -->
<el-footer class="footer-container" style="position: absolute; top: 640px; left: 550px; ">
<!-- 办案信息展示区域 -->
<div class="case-info" >
<!-- 在这里绑定Vue数据来展示办案信息 -->
<div>Designed by JIAL 2023. Permission granted for redistribution.</div>
<div><a style="text-decoration:none; color: #999" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=64020202000218&amp;token=4adb4592-9573-41b6-ab1c-a23850030e0d" style="display:inline-block;text-decoration:none;height:20px;line-height:20px;" target="_blank" >宁公网安备 64020202000218号</a></div>
<div><a style="text-decoration:none; color: #999" href="https://beian.miit.gov.cn/?token=4adb4592-9573-41b6-ab1c-a23850030e0d#/Integrated/index" target="_blank" >宁ICP备2022000681号</a></div>
</div>
</el-footer>
</div>
<script type="text/javascript" src="/static/style/js/main.js"></script>
<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 JavaScript -->
<script src="js/login.js"></script>
<script>
new Vue({
el: '#login-app',
data() {
return {
loginForm: {
username: "",
password: "",
},
rules: {
username: [
{ required: true, message: '请输入用户名', trigger: 'blur' },
{ pattern: /^[a-zA-Z0-9]{1,8}$/, message: '用户名只能为字母和数字且不超过8位', trigger: 'blur' },
// 其他验证规则可以根据需要添加
],
password: [
{ required: true, message: '请输入密码', trigger: 'blur' },
{ pattern: /^[a-zA-Z0-9_]{1,20}$/, message: '密码只能为字母、数字和下划线且不超过20位', trigger: 'blur' },
// 其他验证规则可以根据需要添加
],
},
}
},
computed: {
},
created() {
},
mounted() {
},
methods: {
async init () {
},
login() {
},
register() {
}
}
})
</script>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More