业务跟踪完成

This commit is contained in:
JIAL 2024-01-17 08:53:49 +08:00
commit 188efaf733
124 changed files with 31690 additions and 0 deletions

8
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
# 默认忽略的文件
/shelf/
/workspace.xml
# 基于编辑器的 HTTP 客户端请求
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

18
.idea/compiler.xml Normal file
View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="JNDemo" />
</profile>
</annotationProcessing>
</component>
<component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
<module name="JNDemo" options="-parameters" />
</option>
</component>
</project>

6
.idea/encodings.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
</component>
</project>

25
.idea/jarRepositories.xml Normal file
View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="https://repo.maven.apache.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="http://maven.aliyun.com/nexus/content/groups/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
</component>
</project>

14
.idea/misc.xml Normal file
View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

124
.idea/uiDesigner.xml Normal file
View File

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

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

@ -0,0 +1,327 @@
2024-01-16 09:59:24.221 INFO 10524 --- [main] com.JN.JNApplication : Starting JNApplication using Java 1.8.0_171 on DESKTOP-OG1MRMC with PID 10524 (D:\JavaProject\JNDemo\target\classes started by Administrator in D:\JavaProject\JNDemo)
2024-01-16 09:59:24.224 INFO 10524 --- [main] com.JN.JNApplication : The following profiles are active: ss
2024-01-16 09:59:26.533 WARN 10524 --- [Druid-ConnectionPool-Create-507377172] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-01-16 09:59:27.952 INFO 10524 --- [main] com.JN.config.WebMvcConfig : 扩展消息转换器...
2024-01-16 09:59:27.960 INFO 10524 --- [main] com.JN.config.WebMvcConfig : 开始进行静态资源映射...
2024-01-16 09:59:28.097 WARN 10524 --- [main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2024-01-16 09:59:28.355 INFO 10524 --- [main] com.JN.JNApplication : Started JNApplication in 4.692 seconds (JVM running for 6.541)
2024-01-16 09:59:28.361 INFO 10524 --- [main] com.JN.JNApplication : 项目启动成功...
2024-01-16 10:32:17.643 INFO 10524 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 拦截到请求:/Biz
2024-01-16 10:32:17.645 INFO 10524 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 本次请求/Biz不需要处理
2024-01-16 10:32:17.674 WARN 10524 --- [http-nio-8080-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required request parameter 'id' for method parameter type String is not present]
2024-01-16 10:32:17.753 INFO 10524 --- [http-nio-8080-exec-1] com.JN.filter.LoginCheckFilter : 拦截到请求:/favicon.ico
2024-01-16 10:32:17.753 INFO 10524 --- [http-nio-8080-exec-1] com.JN.filter.LoginCheckFilter : 本次请求/favicon.ico不需要处理
2024-01-16 10:32:17.758 WARN 10524 --- [http-nio-8080-exec-1] o.s.web.servlet.PageNotFound : No mapping for GET /favicon.ico
2024-01-16 10:32:22.760 INFO 10524 --- [http-nio-8080-exec-3] com.JN.filter.LoginCheckFilter : 拦截到请求:/Biz
2024-01-16 10:32:22.761 INFO 10524 --- [http-nio-8080-exec-3] com.JN.filter.LoginCheckFilter : 本次请求/Biz不需要处理
2024-01-16 10:32:22.767 INFO 10524 --- [http-nio-8080-exec-3] c.JN.controller.PageRedirectController : 登入工号为: 102245
2024-01-16 10:32:23.095 INFO 10524 --- [http-nio-8080-exec-4] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/index.css
2024-01-16 10:32:23.096 INFO 10524 --- [http-nio-8080-exec-5] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/bizquery/css/index.css
2024-01-16 10:32:23.096 INFO 10524 --- [http-nio-8080-exec-5] com.JN.filter.LoginCheckFilter : 本次请求/static/bizquery/css/index.css不需要处理
2024-01-16 10:32:23.097 INFO 10524 --- [http-nio-8080-exec-4] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/index.css不需要处理
2024-01-16 10:32:23.100 INFO 10524 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/axios/axios.min.js
2024-01-16 10:32:23.100 INFO 10524 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 本次请求/plugins/axios/axios.min.js不需要处理
2024-01-16 10:32:23.100 INFO 10524 --- [http-nio-8080-exec-6] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/calendar/calendar.js
2024-01-16 10:32:23.100 INFO 10524 --- [http-nio-8080-exec-6] com.JN.filter.LoginCheckFilter : 本次请求/plugins/calendar/calendar.js不需要处理
2024-01-16 10:32:23.102 INFO 10524 --- [http-nio-8080-exec-8] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/axios/request.js
2024-01-16 10:32:23.102 INFO 10524 --- [http-nio-8080-exec-8] com.JN.filter.LoginCheckFilter : 本次请求/plugins/axios/request.js不需要处理
2024-01-16 10:32:23.104 INFO 10524 --- [http-nio-8080-exec-9] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/vue/vue.js
2024-01-16 10:32:23.104 INFO 10524 --- [http-nio-8080-exec-9] com.JN.filter.LoginCheckFilter : 本次请求/plugins/vue/vue.js不需要处理
2024-01-16 10:32:23.117 INFO 10524 --- [http-nio-8080-exec-10] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/bizquery/js/index.js
2024-01-16 10:32:23.117 INFO 10524 --- [http-nio-8080-exec-10] com.JN.filter.LoginCheckFilter : 本次请求/static/bizquery/js/index.js不需要处理
2024-01-16 10:32:23.119 INFO 10524 --- [http-nio-8080-exec-9] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/index.js
2024-01-16 10:32:23.119 INFO 10524 --- [http-nio-8080-exec-9] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/index.js不需要处理
2024-01-16 10:32:23.256 INFO 10524 --- [http-nio-8080-exec-1] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/fonts/element-icons.woff
2024-01-16 10:32:23.256 INFO 10524 --- [http-nio-8080-exec-1] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/fonts/element-icons.woff不需要处理
2024-01-16 10:32:32.759 INFO 10524 --- [http-nio-8080-exec-3] com.JN.filter.LoginCheckFilter : 拦截到请求:/bizquery/list
2024-01-16 10:32:32.760 INFO 10524 --- [http-nio-8080-exec-3] com.JN.filter.LoginCheckFilter : 本次请求/bizquery/list不需要处理
2024-01-16 10:32:32.762 INFO 10524 --- [http-nio-8080-exec-3] c.J.d.bizquery.controller.BizController : 开始调用sql----------------------
2024-01-16 10:32:32.762 INFO 10524 --- [http-nio-8080-exec-3] c.J.d.bizquery.controller.BizController : 南京
2024-01-16 10:32:32.763 INFO 10524 --- [http-nio-8080-exec-3] c.J.d.bizquery.controller.BizController : false
2024-01-16 10:32:32.816 WARN 10524 --- [Druid-ConnectionPool-Create-507377172] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-01-16 10:32:32.951 INFO 10524 --- [http-nio-8080-exec-3] c.J.d.bizquery.controller.BizController : [BizDto(kunnr=0001023011, name1=南京顺吉纸管厂), BizDto(kunnr=0001021816, name1=南京骏阔电子科技有限公司), BizDto(kunnr=0001023316, name1=南京市浦口区峰塔水泥制品厂), BizDto(kunnr=0001022145, name1=南京盈和防雷检测科技有限公司), BizDto(kunnr=0001022168, name1=南京帝悦电梯配件有限公司), BizDto(kunnr=0001023929, name1=南京年嘉模具制造有限责任公司), BizDto(kunnr=0001024029, name1=南京虹天科技有限公司), BizDto(kunnr=0001022630, name1=南京佳美液压机械制造有限公司), BizDto(kunnr=0001024208, name1=南京能达利机械设备制造有限公司), BizDto(kunnr=0001024288, name1=南京春明现代雕塑有限公司)]
2024-01-16 10:32:40.839 INFO 10524 --- [http-nio-8080-exec-6] com.JN.filter.LoginCheckFilter : 拦截到请求:/bizquery/detail
2024-01-16 10:32:40.840 INFO 10524 --- [http-nio-8080-exec-6] com.JN.filter.LoginCheckFilter : 本次请求/bizquery/detail不需要处理
2024-01-16 10:32:40.841 INFO 10524 --- [http-nio-8080-exec-5] com.JN.filter.LoginCheckFilter : 拦截到请求:/qcc
2024-01-16 10:32:40.841 INFO 10524 --- [http-nio-8080-exec-5] com.JN.filter.LoginCheckFilter : 本次请求/qcc不需要处理
2024-01-16 10:32:41.075 WARN 10524 --- [Druid-ConnectionPool-Create-507377172] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-01-16 10:32:41.307 INFO 10524 --- [http-nio-8080-exec-6] c.J.d.bizquery.controller.BizController : 开始记录日志信息: 工号为102245的用户查询的客户名称为南京顺吉纸管厂
2024-01-16 10:32:45.358 INFO 10524 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 拦截到请求:/bizquery/detail
2024-01-16 10:32:45.359 INFO 10524 --- [http-nio-8080-exec-8] com.JN.filter.LoginCheckFilter : 拦截到请求:/qcc
2024-01-16 10:32:45.359 INFO 10524 --- [http-nio-8080-exec-8] com.JN.filter.LoginCheckFilter : 本次请求/qcc不需要处理
2024-01-16 10:32:45.359 INFO 10524 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 本次请求/bizquery/detail不需要处理
2024-01-16 10:32:45.715 INFO 10524 --- [http-nio-8080-exec-2] c.J.d.bizquery.controller.BizController : 开始记录日志信息: 工号为102245的用户查询的客户名称为南京年嘉模具制造有限责任公司
2024-01-16 10:32:50.650 INFO 10524 --- [http-nio-8080-exec-4] com.JN.filter.LoginCheckFilter : 拦截到请求:/bizquery/list
2024-01-16 10:32:50.650 INFO 10524 --- [http-nio-8080-exec-4] com.JN.filter.LoginCheckFilter : 本次请求/bizquery/list不需要处理
2024-01-16 10:32:50.651 INFO 10524 --- [http-nio-8080-exec-4] c.J.d.bizquery.controller.BizController : 开始调用sql----------------------
2024-01-16 10:32:50.651 INFO 10524 --- [http-nio-8080-exec-4] c.J.d.bizquery.controller.BizController : 一凡
2024-01-16 10:32:50.651 INFO 10524 --- [http-nio-8080-exec-4] c.J.d.bizquery.controller.BizController : false
2024-01-16 10:32:50.748 INFO 10524 --- [http-nio-8080-exec-4] c.J.d.bizquery.controller.BizController : [BizDto(kunnr=0001061173, name1=南通一凡安装工程有限公司), BizDto(kunnr=0001017188, name1=无锡一凡电气设备有限公司)]
2024-01-16 10:32:51.870 INFO 10524 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 拦截到请求:/bizquery/detail
2024-01-16 10:32:51.871 INFO 10524 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 本次请求/bizquery/detail不需要处理
2024-01-16 10:32:51.874 INFO 10524 --- [http-nio-8080-exec-10] com.JN.filter.LoginCheckFilter : 拦截到请求:/qcc
2024-01-16 10:32:51.874 INFO 10524 --- [http-nio-8080-exec-10] com.JN.filter.LoginCheckFilter : 本次请求/qcc不需要处理
2024-01-16 10:32:52.244 INFO 10524 --- [http-nio-8080-exec-7] c.J.d.bizquery.controller.BizController : 开始记录日志信息: 工号为102245的用户查询的客户名称为南通一凡安装工程有限公司
2024-01-16 10:32:54.455 INFO 10524 --- [http-nio-8080-exec-9] com.JN.filter.LoginCheckFilter : 拦截到请求:/bizquery/detail
2024-01-16 10:32:54.456 INFO 10524 --- [http-nio-8080-exec-9] com.JN.filter.LoginCheckFilter : 本次请求/bizquery/detail不需要处理
2024-01-16 10:32:54.456 INFO 10524 --- [http-nio-8080-exec-1] com.JN.filter.LoginCheckFilter : 拦截到请求:/qcc
2024-01-16 10:32:54.456 INFO 10524 --- [http-nio-8080-exec-1] com.JN.filter.LoginCheckFilter : 本次请求/qcc不需要处理
2024-01-16 10:32:56.550 INFO 10524 --- [http-nio-8080-exec-9] c.J.d.bizquery.controller.BizController : 开始记录日志信息: 工号为102245的用户查询的客户名称为无锡一凡电气设备有限公司
2024-01-16 11:14:13.897 INFO 10616 --- [main] com.JN.JNApplication : Starting JNApplication using Java 1.8.0_171 on DESKTOP-OG1MRMC with PID 10616 (D:\JavaProject\JNDemo\target\classes started by Administrator in D:\JavaProject\JNDemo)
2024-01-16 11:14:13.900 INFO 10616 --- [main] com.JN.JNApplication : The following profiles are active: ss
2024-01-16 11:14:15.984 WARN 10616 --- [Druid-ConnectionPool-Create-504509135] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-01-16 11:14:17.473 INFO 10616 --- [main] com.JN.config.WebMvcConfig : 扩展消息转换器...
2024-01-16 11:14:17.482 INFO 10616 --- [main] com.JN.config.WebMvcConfig : 开始进行静态资源映射...
2024-01-16 11:14:17.697 WARN 10616 --- [main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2024-01-16 11:14:17.924 INFO 10616 --- [main] com.JN.JNApplication : Started JNApplication in 4.481 seconds (JVM running for 5.456)
2024-01-16 11:14:17.932 INFO 10616 --- [main] com.JN.JNApplication : 项目启动成功...
2024-01-16 11:14:38.662 INFO 10616 --- [http-nio-8080-exec-1] com.JN.filter.LoginCheckFilter : 拦截到请求:/Biz
2024-01-16 11:14:38.662 INFO 10616 --- [http-nio-8080-exec-1] com.JN.filter.LoginCheckFilter : 本次请求/Biz不需要处理
2024-01-16 11:14:38.687 INFO 10616 --- [http-nio-8080-exec-1] c.JN.controller.PageRedirectController : 登入工号为: 102245
2024-01-16 11:14:38.720 WARN 10616 --- [Druid-ConnectionPool-Create-515482607] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-01-16 11:14:38.796 INFO 10616 --- [http-nio-8080-exec-1] c.JN.controller.PageRedirectController : 贾龙
2024-01-16 11:14:39.172 INFO 10616 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/image/JNlogo.png
2024-01-16 11:14:39.172 INFO 10616 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 本次请求/static/image/JNlogo.png不需要处理
2024-01-16 11:45:00.231 INFO 12280 --- [main] com.JN.JNApplication : Starting JNApplication using Java 1.8.0_171 on DESKTOP-OG1MRMC with PID 12280 (D:\JavaProject\JNDemo\target\classes started by Administrator in D:\JavaProject\JNDemo)
2024-01-16 11:45:00.234 INFO 12280 --- [main] com.JN.JNApplication : The following profiles are active: ss
2024-01-16 11:45:02.259 WARN 12280 --- [Druid-ConnectionPool-Create-507377172] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-01-16 11:45:03.470 INFO 12280 --- [main] com.JN.config.WebMvcConfig : 扩展消息转换器...
2024-01-16 11:45:03.477 INFO 12280 --- [main] com.JN.config.WebMvcConfig : 开始进行静态资源映射...
2024-01-16 11:45:03.606 WARN 12280 --- [main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2024-01-16 11:45:03.849 INFO 12280 --- [main] com.JN.JNApplication : Started JNApplication in 4.075 seconds (JVM running for 5.13)
2024-01-16 11:45:03.857 INFO 12280 --- [main] com.JN.JNApplication : 项目启动成功...
2024-01-16 11:45:08.076 INFO 12280 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 拦截到请求:/Biz
2024-01-16 11:45:08.077 INFO 12280 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 本次请求/Biz不需要处理
2024-01-16 11:45:08.101 INFO 12280 --- [http-nio-8080-exec-2] c.JN.controller.PageRedirectController : 登入工号为: 102245
2024-01-16 11:45:08.130 WARN 12280 --- [Druid-ConnectionPool-Create-1877317084] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-01-16 11:45:08.493 INFO 12280 --- [http-nio-8080-exec-1] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/index.css
2024-01-16 11:45:08.494 INFO 12280 --- [http-nio-8080-exec-1] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/index.css不需要处理
2024-01-16 11:45:08.496 INFO 12280 --- [http-nio-8080-exec-3] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/bizquery/css/index.css
2024-01-16 11:45:08.496 INFO 12280 --- [http-nio-8080-exec-3] com.JN.filter.LoginCheckFilter : 本次请求/static/bizquery/css/index.css不需要处理
2024-01-16 11:45:08.498 INFO 12280 --- [http-nio-8080-exec-4] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/vue/vue.js
2024-01-16 11:45:08.498 INFO 12280 --- [http-nio-8080-exec-4] com.JN.filter.LoginCheckFilter : 本次请求/plugins/vue/vue.js不需要处理
2024-01-16 11:45:08.499 INFO 12280 --- [http-nio-8080-exec-5] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/index.js
2024-01-16 11:45:08.499 INFO 12280 --- [http-nio-8080-exec-5] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/index.js不需要处理
2024-01-16 11:45:08.500 INFO 12280 --- [http-nio-8080-exec-6] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/calendar/calendar.js
2024-01-16 11:45:08.502 INFO 12280 --- [http-nio-8080-exec-6] com.JN.filter.LoginCheckFilter : 本次请求/plugins/calendar/calendar.js不需要处理
2024-01-16 11:45:08.500 INFO 12280 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/axios/axios.min.js
2024-01-16 11:45:08.503 INFO 12280 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 本次请求/plugins/axios/axios.min.js不需要处理
2024-01-16 11:45:08.551 INFO 12280 --- [http-nio-8080-exec-8] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/axios/request.js
2024-01-16 11:45:08.552 INFO 12280 --- [http-nio-8080-exec-8] com.JN.filter.LoginCheckFilter : 本次请求/plugins/axios/request.js不需要处理
2024-01-16 11:45:08.567 INFO 12280 --- [http-nio-8080-exec-9] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/bizquery/js/index.js
2024-01-16 11:45:08.567 INFO 12280 --- [http-nio-8080-exec-9] com.JN.filter.LoginCheckFilter : 本次请求/static/bizquery/js/index.js不需要处理
2024-01-16 11:45:08.770 INFO 12280 --- [http-nio-8080-exec-10] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/image/JNlogo.png
2024-01-16 11:45:08.771 INFO 12280 --- [http-nio-8080-exec-10] com.JN.filter.LoginCheckFilter : 本次请求/static/image/JNlogo.png不需要处理
2024-01-16 11:45:13.896 INFO 12280 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/calendar/js-calendar-converter.js.map
2024-01-16 11:45:13.897 INFO 12280 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 本次请求/plugins/calendar/js-calendar-converter.js.map不需要处理
2024-01-16 11:45:13.899 INFO 12280 --- [http-nio-8080-exec-3] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/axios/axios.min.map
2024-01-16 11:45:13.899 INFO 12280 --- [http-nio-8080-exec-3] com.JN.filter.LoginCheckFilter : 本次请求/plugins/axios/axios.min.map不需要处理
2024-01-16 11:45:21.163 INFO 12280 --- [http-nio-8080-exec-8] com.JN.filter.LoginCheckFilter : 拦截到请求:/Biz
2024-01-16 11:45:21.163 INFO 12280 --- [http-nio-8080-exec-8] com.JN.filter.LoginCheckFilter : 本次请求/Biz不需要处理
2024-01-16 11:45:21.164 INFO 12280 --- [http-nio-8080-exec-8] c.JN.controller.PageRedirectController : 登入工号为: 102245
2024-01-16 11:46:05.790 INFO 11192 --- [main] com.JN.JNApplication : Starting JNApplication using Java 1.8.0_171 on DESKTOP-OG1MRMC with PID 11192 (D:\JavaProject\JNDemo\target\classes started by Administrator in D:\JavaProject\JNDemo)
2024-01-16 11:46:05.793 INFO 11192 --- [main] com.JN.JNApplication : The following profiles are active: ss
2024-01-16 11:46:07.870 WARN 11192 --- [Druid-ConnectionPool-Create-1155300221] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-01-16 11:46:09.117 INFO 11192 --- [main] com.JN.config.WebMvcConfig : 扩展消息转换器...
2024-01-16 11:46:09.131 INFO 11192 --- [main] com.JN.config.WebMvcConfig : 开始进行静态资源映射...
2024-01-16 11:46:09.268 WARN 11192 --- [main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2024-01-16 11:46:09.520 INFO 11192 --- [main] com.JN.JNApplication : Started JNApplication in 4.152 seconds (JVM running for 5.022)
2024-01-16 11:46:09.527 INFO 11192 --- [main] com.JN.JNApplication : 项目启动成功...
2024-01-16 11:46:14.353 INFO 11192 --- [http-nio-8080-exec-1] com.JN.filter.LoginCheckFilter : 拦截到请求:/Biz
2024-01-16 11:46:14.354 INFO 11192 --- [http-nio-8080-exec-1] com.JN.filter.LoginCheckFilter : 本次请求/Biz不需要处理
2024-01-16 11:46:14.379 INFO 11192 --- [http-nio-8080-exec-1] c.JN.controller.PageRedirectController : 登入工号为: 102245
2024-01-16 11:46:14.409 WARN 11192 --- [Druid-ConnectionPool-Create-1740328397] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-01-16 11:46:14.833 INFO 11192 --- [http-nio-8080-exec-3] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/bizquery/css/index.css
2024-01-16 11:46:14.833 INFO 11192 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/index.css
2024-01-16 11:46:14.833 INFO 11192 --- [http-nio-8080-exec-3] com.JN.filter.LoginCheckFilter : 本次请求/static/bizquery/css/index.css不需要处理
2024-01-16 11:46:14.833 INFO 11192 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/index.css不需要处理
2024-01-16 11:46:14.836 INFO 11192 --- [http-nio-8080-exec-4] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/vue/vue.js
2024-01-16 11:46:14.837 INFO 11192 --- [http-nio-8080-exec-4] com.JN.filter.LoginCheckFilter : 本次请求/plugins/vue/vue.js不需要处理
2024-01-16 11:46:14.837 INFO 11192 --- [http-nio-8080-exec-5] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/index.js
2024-01-16 11:46:14.837 INFO 11192 --- [http-nio-8080-exec-5] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/index.js不需要处理
2024-01-16 11:46:14.837 INFO 11192 --- [http-nio-8080-exec-6] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/calendar/calendar.js
2024-01-16 11:46:14.838 INFO 11192 --- [http-nio-8080-exec-6] com.JN.filter.LoginCheckFilter : 本次请求/plugins/calendar/calendar.js不需要处理
2024-01-16 11:46:14.838 INFO 11192 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/axios/axios.min.js
2024-01-16 11:46:14.838 INFO 11192 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 本次请求/plugins/axios/axios.min.js不需要处理
2024-01-16 11:46:14.870 INFO 11192 --- [http-nio-8080-exec-8] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/axios/request.js
2024-01-16 11:46:14.870 INFO 11192 --- [http-nio-8080-exec-8] com.JN.filter.LoginCheckFilter : 本次请求/plugins/axios/request.js不需要处理
2024-01-16 11:46:14.870 INFO 11192 --- [http-nio-8080-exec-9] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/bizquery/js/index.js
2024-01-16 11:46:14.870 INFO 11192 --- [http-nio-8080-exec-9] com.JN.filter.LoginCheckFilter : 本次请求/static/bizquery/js/index.js不需要处理
2024-01-16 11:46:14.959 INFO 11192 --- [http-nio-8080-exec-10] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/image/JNlogo.png
2024-01-16 11:46:14.959 INFO 11192 --- [http-nio-8080-exec-10] com.JN.filter.LoginCheckFilter : 本次请求/static/image/JNlogo.png不需要处理
2024-01-16 11:46:16.069 INFO 11192 --- [http-nio-8080-exec-1] com.JN.filter.LoginCheckFilter : 拦截到请求:/Biz
2024-01-16 11:46:16.070 INFO 11192 --- [http-nio-8080-exec-1] com.JN.filter.LoginCheckFilter : 本次请求/Biz不需要处理
2024-01-16 11:46:16.072 INFO 11192 --- [http-nio-8080-exec-1] c.JN.controller.PageRedirectController : 登入工号为: 102245
2024-01-16 11:46:16.100 INFO 11192 --- [http-nio-8080-exec-6] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/index.css
2024-01-16 11:46:16.100 INFO 11192 --- [http-nio-8080-exec-6] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/index.css不需要处理
2024-01-16 11:46:16.100 INFO 11192 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/vue/vue.js
2024-01-16 11:46:16.100 INFO 11192 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 本次请求/plugins/vue/vue.js不需要处理
2024-01-16 11:46:16.104 INFO 11192 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/bizquery/css/index.css
2024-01-16 11:46:16.104 INFO 11192 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 本次请求/static/bizquery/css/index.css不需要处理
2024-01-16 11:46:16.107 INFO 11192 --- [http-nio-8080-exec-6] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/index.js
2024-01-16 11:46:16.107 INFO 11192 --- [http-nio-8080-exec-6] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/index.js不需要处理
2024-01-16 11:46:16.108 INFO 11192 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/calendar/calendar.js
2024-01-16 11:46:16.108 INFO 11192 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 本次请求/plugins/calendar/calendar.js不需要处理
2024-01-16 11:46:16.112 INFO 11192 --- [http-nio-8080-exec-4] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/axios/axios.min.js
2024-01-16 11:46:16.112 INFO 11192 --- [http-nio-8080-exec-4] com.JN.filter.LoginCheckFilter : 本次请求/plugins/axios/axios.min.js不需要处理
2024-01-16 11:46:16.126 INFO 11192 --- [http-nio-8080-exec-8] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/axios/request.js
2024-01-16 11:46:16.126 INFO 11192 --- [http-nio-8080-exec-8] com.JN.filter.LoginCheckFilter : 本次请求/plugins/axios/request.js不需要处理
2024-01-16 11:46:16.129 INFO 11192 --- [http-nio-8080-exec-9] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/bizquery/js/index.js
2024-01-16 11:46:16.129 INFO 11192 --- [http-nio-8080-exec-9] com.JN.filter.LoginCheckFilter : 本次请求/static/bizquery/js/index.js不需要处理
2024-01-16 11:46:16.189 INFO 11192 --- [http-nio-8080-exec-10] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/image/JNlogo.png
2024-01-16 11:46:16.190 INFO 11192 --- [http-nio-8080-exec-10] com.JN.filter.LoginCheckFilter : 本次请求/static/image/JNlogo.png不需要处理
2024-01-16 11:47:12.477 INFO 15660 --- [main] com.JN.JNApplication : Starting JNApplication using Java 1.8.0_171 on DESKTOP-OG1MRMC with PID 15660 (D:\JavaProject\JNDemo\target\classes started by Administrator in D:\JavaProject\JNDemo)
2024-01-16 11:47:12.480 INFO 15660 --- [main] com.JN.JNApplication : The following profiles are active: ss
2024-01-16 11:47:14.622 WARN 15660 --- [Druid-ConnectionPool-Create-1938634748] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-01-16 11:47:15.842 INFO 15660 --- [main] com.JN.config.WebMvcConfig : 扩展消息转换器...
2024-01-16 11:47:15.851 INFO 15660 --- [main] com.JN.config.WebMvcConfig : 开始进行静态资源映射...
2024-01-16 11:47:15.992 WARN 15660 --- [main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2024-01-16 11:47:16.221 INFO 15660 --- [main] com.JN.JNApplication : Started JNApplication in 4.161 seconds (JVM running for 5.029)
2024-01-16 11:47:16.228 INFO 15660 --- [main] com.JN.JNApplication : 项目启动成功...
2024-01-16 11:47:18.940 INFO 15660 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 拦截到请求:/Biz
2024-01-16 11:47:18.941 INFO 15660 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 本次请求/Biz不需要处理
2024-01-16 11:47:18.968 INFO 15660 --- [http-nio-8080-exec-2] c.JN.controller.PageRedirectController : 登入工号为: 102245
2024-01-16 11:47:18.997 WARN 15660 --- [Druid-ConnectionPool-Create-217911413] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-01-16 11:47:19.355 INFO 15660 --- [http-nio-8080-exec-3] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/bizquery/css/index.css
2024-01-16 11:47:19.355 INFO 15660 --- [http-nio-8080-exec-3] com.JN.filter.LoginCheckFilter : 本次请求/static/bizquery/css/index.css不需要处理
2024-01-16 11:47:19.355 INFO 15660 --- [http-nio-8080-exec-4] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/vue/vue.js
2024-01-16 11:47:19.355 INFO 15660 --- [http-nio-8080-exec-4] com.JN.filter.LoginCheckFilter : 本次请求/plugins/vue/vue.js不需要处理
2024-01-16 11:47:19.354 INFO 15660 --- [http-nio-8080-exec-1] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/index.css
2024-01-16 11:47:19.356 INFO 15660 --- [http-nio-8080-exec-1] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/index.css不需要处理
2024-01-16 11:47:19.357 INFO 15660 --- [http-nio-8080-exec-5] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/index.js
2024-01-16 11:47:19.357 INFO 15660 --- [http-nio-8080-exec-5] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/index.js不需要处理
2024-01-16 11:47:19.359 INFO 15660 --- [http-nio-8080-exec-6] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/calendar/calendar.js
2024-01-16 11:47:19.359 INFO 15660 --- [http-nio-8080-exec-6] com.JN.filter.LoginCheckFilter : 本次请求/plugins/calendar/calendar.js不需要处理
2024-01-16 11:47:19.360 INFO 15660 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/axios/axios.min.js
2024-01-16 11:47:19.360 INFO 15660 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 本次请求/plugins/axios/axios.min.js不需要处理
2024-01-16 11:47:19.392 INFO 15660 --- [http-nio-8080-exec-8] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/axios/request.js
2024-01-16 11:47:19.393 INFO 15660 --- [http-nio-8080-exec-8] com.JN.filter.LoginCheckFilter : 本次请求/plugins/axios/request.js不需要处理
2024-01-16 11:47:19.393 INFO 15660 --- [http-nio-8080-exec-9] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/bizquery/js/index.js
2024-01-16 11:47:19.393 INFO 15660 --- [http-nio-8080-exec-9] com.JN.filter.LoginCheckFilter : 本次请求/static/bizquery/js/index.js不需要处理
2024-01-16 11:47:19.470 INFO 15660 --- [http-nio-8080-exec-10] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/fonts/element-icons.woff
2024-01-16 11:47:19.470 INFO 15660 --- [http-nio-8080-exec-10] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/fonts/element-icons.woff不需要处理
2024-01-16 11:47:19.503 INFO 15660 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/image/JNlogo.png
2024-01-16 11:47:19.504 INFO 15660 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 本次请求/static/image/JNlogo.png不需要处理
2024-01-16 11:47:31.764 INFO 15660 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 拦截到请求:/Biz
2024-01-16 11:47:31.764 INFO 15660 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 本次请求/Biz不需要处理
2024-01-16 11:47:31.765 INFO 15660 --- [http-nio-8080-exec-7] c.JN.controller.PageRedirectController : 登入工号为: 102243
2024-01-16 11:48:15.117 INFO 15660 --- [http-nio-8080-exec-3] com.JN.filter.LoginCheckFilter : 拦截到请求:/bizquery/list
2024-01-16 11:48:15.117 INFO 15660 --- [http-nio-8080-exec-3] com.JN.filter.LoginCheckFilter : 本次请求/bizquery/list不需要处理
2024-01-16 11:48:15.119 INFO 15660 --- [http-nio-8080-exec-3] c.J.d.bizquery.controller.BizController : 开始调用sql----------------------
2024-01-16 11:48:15.119 INFO 15660 --- [http-nio-8080-exec-3] c.J.d.bizquery.controller.BizController : 无锡
2024-01-16 11:48:15.119 INFO 15660 --- [http-nio-8080-exec-3] c.J.d.bizquery.controller.BizController : false
2024-01-16 11:48:15.203 INFO 15660 --- [http-nio-8080-exec-3] c.J.d.bizquery.controller.BizController : [BizDto(kunnr=0001021526, name1=无锡阿克赛光伏科技有限公司), BizDto(kunnr=0001021540, name1=无锡桥阳机械制造有限公司), BizDto(kunnr=0001021587, name1=无锡宇灿幕墙建筑材料有限公司), BizDto(kunnr=0001021592, name1=无锡市鑫力泰环保设备有限公司), BizDto(kunnr=0001023163, name1=江苏博金建设集团有限公司无锡分公司), BizDto(kunnr=0001023206, name1=无锡市昌明化工换热设备有限公司), BizDto(kunnr=0001023213, name1=无锡加视诚智能科技有限公司), BizDto(kunnr=0001023214, name1=无锡华路仪试验仪器有限公司), BizDto(kunnr=0001023267, name1=无锡市新鑫轧辊堆焊厂), BizDto(kunnr=0001025049, name1=无锡市荡口鹅湖红木家具厂)]
2024-01-16 11:49:21.523 INFO 15660 --- [http-nio-8080-exec-10] com.JN.filter.LoginCheckFilter : 拦截到请求:/bizquery/list
2024-01-16 11:49:21.524 INFO 15660 --- [http-nio-8080-exec-10] com.JN.filter.LoginCheckFilter : 本次请求/bizquery/list不需要处理
2024-01-16 11:49:21.524 INFO 15660 --- [http-nio-8080-exec-10] c.J.d.bizquery.controller.BizController : 开始调用sql----------------------
2024-01-16 11:49:21.524 INFO 15660 --- [http-nio-8080-exec-10] c.J.d.bizquery.controller.BizController : 无锡一凡
2024-01-16 11:49:21.524 INFO 15660 --- [http-nio-8080-exec-10] c.J.d.bizquery.controller.BizController : false
2024-01-16 11:49:21.538 WARN 15660 --- [Druid-ConnectionPool-Create-1938634748] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-01-16 11:49:21.613 INFO 15660 --- [http-nio-8080-exec-10] c.J.d.bizquery.controller.BizController : [BizDto(kunnr=0001017188, name1=无锡一凡电气设备有限公司)]
2024-01-16 11:49:23.084 INFO 15660 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 拦截到请求:/bizquery/detail
2024-01-16 11:49:23.085 INFO 15660 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 本次请求/bizquery/detail不需要处理
2024-01-16 11:49:23.093 INFO 15660 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 拦截到请求:/qcc
2024-01-16 11:49:23.093 INFO 15660 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 本次请求/qcc不需要处理
2024-01-16 11:49:23.291 WARN 15660 --- [Druid-ConnectionPool-Create-1938634748] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-01-16 11:49:23.394 INFO 15660 --- [http-nio-8080-exec-2] c.J.d.bizquery.controller.BizController : 开始记录日志信息: 工号为102243的用户查询的客户名称为无锡一凡电气设备有限公司
2024-01-16 12:38:28.949 INFO 15660 --- [http-nio-8080-exec-4] com.JN.filter.LoginCheckFilter : 拦截到请求:/Biz
2024-01-16 12:38:28.950 INFO 15660 --- [http-nio-8080-exec-4] com.JN.filter.LoginCheckFilter : 本次请求/Biz不需要处理
2024-01-16 12:38:28.951 INFO 15660 --- [http-nio-8080-exec-4] c.JN.controller.PageRedirectController : 登入工号为: 102245
2024-01-16 12:38:28.960 WARN 15660 --- [Druid-ConnectionPool-Create-217911413] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-01-16 12:49:35.834 INFO 11664 --- [main] com.JN.JNApplication : Starting JNApplication using Java 1.8.0_171 on DESKTOP-OG1MRMC with PID 11664 (D:\JavaProject\JNDemo\target\classes started by Administrator in D:\JavaProject\JNDemo)
2024-01-16 12:49:35.837 INFO 11664 --- [main] com.JN.JNApplication : The following profiles are active: ss
2024-01-16 12:49:37.906 WARN 11664 --- [Druid-ConnectionPool-Create-925955862] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-01-16 12:49:39.067 INFO 11664 --- [main] com.JN.config.WebMvcConfig : 扩展消息转换器...
2024-01-16 12:49:39.074 INFO 11664 --- [main] com.JN.config.WebMvcConfig : 开始进行静态资源映射...
2024-01-16 12:49:39.208 WARN 11664 --- [main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2024-01-16 12:49:39.436 INFO 11664 --- [main] com.JN.JNApplication : Started JNApplication in 4.024 seconds (JVM running for 5.232)
2024-01-16 12:49:39.442 INFO 11664 --- [main] com.JN.JNApplication : 项目启动成功...
2024-01-16 12:50:15.753 INFO 11664 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 拦截到请求:/Biz
2024-01-16 12:50:15.754 INFO 11664 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 本次请求/Biz不需要处理
2024-01-16 12:50:15.779 INFO 11664 --- [http-nio-8080-exec-2] c.JN.controller.PageRedirectController : 登入工号为: 102245
2024-01-16 12:50:15.821 WARN 11664 --- [Druid-ConnectionPool-Create-70528019] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-01-16 12:50:23.165 INFO 11664 --- [http-nio-8080-exec-3] com.JN.filter.LoginCheckFilter : 拦截到请求:/Biz
2024-01-16 12:50:23.165 INFO 11664 --- [http-nio-8080-exec-3] com.JN.filter.LoginCheckFilter : 本次请求/Biz不需要处理
2024-01-16 12:50:23.166 INFO 11664 --- [http-nio-8080-exec-3] c.JN.controller.PageRedirectController : 登入工号为: 8888888
2024-01-16 13:54:07.798 INFO 14512 --- [main] com.JN.JNApplication : Starting JNApplication using Java 1.8.0_171 on DESKTOP-OG1MRMC with PID 14512 (D:\JavaProject\JNDemo\target\classes started by Administrator in D:\JavaProject\JNDemo)
2024-01-16 13:54:07.801 INFO 14512 --- [main] com.JN.JNApplication : The following profiles are active: ss
2024-01-16 13:54:10.055 WARN 14512 --- [Druid-ConnectionPool-Create-265556987] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-01-16 13:54:11.254 INFO 14512 --- [main] com.JN.config.WebMvcConfig : 扩展消息转换器...
2024-01-16 13:54:11.261 INFO 14512 --- [main] com.JN.config.WebMvcConfig : 开始进行静态资源映射...
2024-01-16 13:54:11.393 WARN 14512 --- [main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2024-01-16 13:54:11.644 INFO 14512 --- [main] com.JN.JNApplication : Started JNApplication in 4.286 seconds (JVM running for 5.321)
2024-01-16 13:54:11.652 INFO 14512 --- [main] com.JN.JNApplication : 项目启动成功...
2024-01-16 13:54:48.932 INFO 14512 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 拦截到请求:/Biz
2024-01-16 13:54:48.933 INFO 14512 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 本次请求/Biz不需要处理
2024-01-16 13:54:48.963 INFO 14512 --- [http-nio-8080-exec-2] c.JN.controller.PageRedirectController : 登入工号为: 102245
2024-01-16 13:54:48.993 WARN 14512 --- [Druid-ConnectionPool-Create-982313508] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-01-16 14:06:52.542 INFO 14512 --- [http-nio-8080-exec-3] com.JN.filter.LoginCheckFilter : 拦截到请求:/Biz
2024-01-16 14:06:52.542 INFO 14512 --- [http-nio-8080-exec-3] com.JN.filter.LoginCheckFilter : 本次请求/Biz不需要处理
2024-01-16 14:06:52.543 INFO 14512 --- [http-nio-8080-exec-3] c.JN.controller.PageRedirectController : 登入工号为: 102245
2024-01-16 14:06:52.551 WARN 14512 --- [Druid-ConnectionPool-Create-982313508] c.m.s.jdbc.internals.TDS.Channel : TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
2024-01-16 14:06:52.571 INFO 14512 --- [http-nio-8080-exec-5] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/index.css
2024-01-16 14:06:52.571 INFO 14512 --- [http-nio-8080-exec-5] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/index.css不需要处理
2024-01-16 14:06:52.572 INFO 14512 --- [http-nio-8080-exec-6] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/bizquery/css/index.css
2024-01-16 14:06:52.572 INFO 14512 --- [http-nio-8080-exec-6] com.JN.filter.LoginCheckFilter : 本次请求/static/bizquery/css/index.css不需要处理
2024-01-16 14:06:52.572 INFO 14512 --- [http-nio-8080-exec-9] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/index.js
2024-01-16 14:06:52.572 INFO 14512 --- [http-nio-8080-exec-9] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/index.js不需要处理
2024-01-16 14:06:52.572 INFO 14512 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/vue/vue.js
2024-01-16 14:06:52.572 INFO 14512 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 本次请求/plugins/vue/vue.js不需要处理
2024-01-16 14:06:52.574 INFO 14512 --- [http-nio-8080-exec-8] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/calendar/calendar.js
2024-01-16 14:06:52.575 INFO 14512 --- [http-nio-8080-exec-8] com.JN.filter.LoginCheckFilter : 本次请求/plugins/calendar/calendar.js不需要处理
2024-01-16 14:06:52.576 INFO 14512 --- [http-nio-8080-exec-10] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/axios/axios.min.js
2024-01-16 14:06:52.576 INFO 14512 --- [http-nio-8080-exec-10] com.JN.filter.LoginCheckFilter : 本次请求/plugins/axios/axios.min.js不需要处理
2024-01-16 14:06:52.631 INFO 14512 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/axios/request.js
2024-01-16 14:06:52.632 INFO 14512 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 本次请求/plugins/axios/request.js不需要处理
2024-01-16 14:06:52.645 INFO 14512 --- [http-nio-8080-exec-1] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/bizquery/js/index.js
2024-01-16 14:06:52.645 INFO 14512 --- [http-nio-8080-exec-1] com.JN.filter.LoginCheckFilter : 本次请求/static/bizquery/js/index.js不需要处理
2024-01-16 14:06:52.847 INFO 14512 --- [http-nio-8080-exec-4] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/fonts/element-icons.woff
2024-01-16 14:06:52.848 INFO 14512 --- [http-nio-8080-exec-4] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/fonts/element-icons.woff不需要处理
2024-01-16 14:06:52.880 INFO 14512 --- [http-nio-8080-exec-3] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/image/JNlogo.png
2024-01-16 14:06:52.880 INFO 14512 --- [http-nio-8080-exec-3] com.JN.filter.LoginCheckFilter : 本次请求/static/image/JNlogo.png不需要处理
2024-01-16 14:06:55.229 INFO 14512 --- [http-nio-8080-exec-6] com.JN.filter.LoginCheckFilter : 拦截到请求:/Biz
2024-01-16 14:06:55.231 INFO 14512 --- [http-nio-8080-exec-6] com.JN.filter.LoginCheckFilter : 本次请求/Biz不需要处理
2024-01-16 14:06:55.232 INFO 14512 --- [http-nio-8080-exec-6] c.JN.controller.PageRedirectController : 登入工号为: 102245
2024-01-16 14:06:55.262 INFO 14512 --- [http-nio-8080-exec-5] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/bizquery/css/index.css
2024-01-16 14:06:55.262 INFO 14512 --- [http-nio-8080-exec-5] com.JN.filter.LoginCheckFilter : 本次请求/static/bizquery/css/index.css不需要处理
2024-01-16 14:06:55.262 INFO 14512 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/vue/vue.js
2024-01-16 14:06:55.262 INFO 14512 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 本次请求/plugins/vue/vue.js不需要处理
2024-01-16 14:06:55.263 INFO 14512 --- [http-nio-8080-exec-8] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/axios/axios.min.js
2024-01-16 14:06:55.263 INFO 14512 --- [http-nio-8080-exec-8] com.JN.filter.LoginCheckFilter : 本次请求/plugins/axios/axios.min.js不需要处理
2024-01-16 14:06:55.262 INFO 14512 --- [http-nio-8080-exec-10] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/index.css
2024-01-16 14:06:55.264 INFO 14512 --- [http-nio-8080-exec-10] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/index.css不需要处理
2024-01-16 14:06:55.266 INFO 14512 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/calendar/calendar.js
2024-01-16 14:06:55.266 INFO 14512 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 本次请求/plugins/calendar/calendar.js不需要处理
2024-01-16 14:06:55.270 INFO 14512 --- [http-nio-8080-exec-1] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/index.js
2024-01-16 14:06:55.270 INFO 14512 --- [http-nio-8080-exec-1] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/index.js不需要处理
2024-01-16 14:06:55.280 INFO 14512 --- [http-nio-8080-exec-9] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/axios/request.js
2024-01-16 14:06:55.280 INFO 14512 --- [http-nio-8080-exec-9] com.JN.filter.LoginCheckFilter : 本次请求/plugins/axios/request.js不需要处理
2024-01-16 14:06:55.285 INFO 14512 --- [http-nio-8080-exec-4] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/bizquery/js/index.js
2024-01-16 14:06:55.285 INFO 14512 --- [http-nio-8080-exec-4] com.JN.filter.LoginCheckFilter : 本次请求/static/bizquery/js/index.js不需要处理
2024-01-16 14:06:55.354 INFO 14512 --- [http-nio-8080-exec-3] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/fonts/element-icons.woff
2024-01-16 14:06:55.355 INFO 14512 --- [http-nio-8080-exec-3] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/fonts/element-icons.woff不需要处理
2024-01-16 14:06:55.369 INFO 14512 --- [http-nio-8080-exec-6] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/image/JNlogo.png
2024-01-16 14:06:55.369 INFO 14512 --- [http-nio-8080-exec-6] com.JN.filter.LoginCheckFilter : 本次请求/static/image/JNlogo.png不需要处理
2024-01-16 14:06:58.680 INFO 14512 --- [http-nio-8080-exec-10] com.JN.filter.LoginCheckFilter : 拦截到请求:/Biz
2024-01-16 14:06:58.681 INFO 14512 --- [http-nio-8080-exec-10] com.JN.filter.LoginCheckFilter : 本次请求/Biz不需要处理
2024-01-16 14:06:58.682 INFO 14512 --- [http-nio-8080-exec-10] c.JN.controller.PageRedirectController : 登入工号为: 102245
2024-01-16 14:06:58.707 INFO 14512 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/index.css
2024-01-16 14:06:58.708 INFO 14512 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/index.css不需要处理
2024-01-16 14:06:58.708 INFO 14512 --- [http-nio-8080-exec-5] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/vue/vue.js
2024-01-16 14:06:58.708 INFO 14512 --- [http-nio-8080-exec-5] com.JN.filter.LoginCheckFilter : 本次请求/plugins/vue/vue.js不需要处理
2024-01-16 14:06:58.714 INFO 14512 --- [http-nio-8080-exec-5] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/index.js
2024-01-16 14:06:58.714 INFO 14512 --- [http-nio-8080-exec-5] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/index.js不需要处理
2024-01-16 14:06:58.715 INFO 14512 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/calendar/calendar.js
2024-01-16 14:06:58.707 INFO 14512 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/bizquery/css/index.css
2024-01-16 14:06:58.716 INFO 14512 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 本次请求/plugins/calendar/calendar.js不需要处理
2024-01-16 14:06:58.716 INFO 14512 --- [http-nio-8080-exec-2] com.JN.filter.LoginCheckFilter : 本次请求/static/bizquery/css/index.css不需要处理
2024-01-16 14:06:58.718 INFO 14512 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/axios/axios.min.js
2024-01-16 14:06:58.718 INFO 14512 --- [http-nio-8080-exec-7] com.JN.filter.LoginCheckFilter : 本次请求/plugins/axios/axios.min.js不需要处理
2024-01-16 14:06:58.732 INFO 14512 --- [http-nio-8080-exec-4] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/axios/request.js
2024-01-16 14:06:58.732 INFO 14512 --- [http-nio-8080-exec-4] com.JN.filter.LoginCheckFilter : 本次请求/plugins/axios/request.js不需要处理
2024-01-16 14:06:58.733 INFO 14512 --- [http-nio-8080-exec-4] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/bizquery/js/index.js
2024-01-16 14:06:58.734 INFO 14512 --- [http-nio-8080-exec-4] com.JN.filter.LoginCheckFilter : 本次请求/static/bizquery/js/index.js不需要处理
2024-01-16 14:06:58.807 INFO 14512 --- [http-nio-8080-exec-6] com.JN.filter.LoginCheckFilter : 拦截到请求:/plugins/element-ui/fonts/element-icons.woff
2024-01-16 14:06:58.807 INFO 14512 --- [http-nio-8080-exec-6] com.JN.filter.LoginCheckFilter : 本次请求/plugins/element-ui/fonts/element-icons.woff不需要处理
2024-01-16 14:06:58.821 INFO 14512 --- [http-nio-8080-exec-10] com.JN.filter.LoginCheckFilter : 拦截到请求:/static/image/JNlogo.png
2024-01-16 14:06:58.821 INFO 14512 --- [http-nio-8080-exec-10] com.JN.filter.LoginCheckFilter : 本次请求/static/image/JNlogo.png不需要处理

File diff suppressed because it is too large Load Diff

199
pom.xml Normal file
View File

@ -0,0 +1,199 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.JIAL</groupId>
<artifactId>BizProject</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--阿里云短信服务-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.16</version>
</dependency>
<!--mybatis-plus 多数据源配置-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.5.0</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.4.1</version>
</dependency>
<!-- httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.76</version>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.2.3</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<!-- xml操作相关依赖 -->
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.11.1</version>
</dependency>
<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
<!-- 这个是编码解码的 -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.10</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.23</version>
</dependency>
<dependency>
<groupId>com.github.yulichang</groupId>
<artifactId>mybatis-plus-join-boot-starter</artifactId>
<version>1.4.7.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<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>
</dependency>
<dependency>
<groupId>com.vaadin.external.google</groupId>
<artifactId>android-json</artifactId>
<version>0.0.20131108.vaadin1</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.4.5</version>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,58 @@
package com.JN.API.qichacha;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.codec.digest.DigestUtils;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.regex.Pattern;
import static java.lang.System.out;
/**
* @ClassName QccApiUntils
* @Description 企查查的API接口类工具类
* @Author JN
* @Date 2024/1/11 9:41
* @Version 1.0
*/
public class QccApiUntils {
// 获取返回码 Res Code
public static class HttpCodeRegex {
private static final String ABNORMAL_REGIX = "(101)|(102)";
private static final Pattern pattern = Pattern.compile(ABNORMAL_REGIX);
public static boolean isAbnornalRequest(final String status) {
return pattern.matcher(status).matches();
}
}
// 获取Auth Code
public static String[] RandomAuthentHeader(String appkey, String secretKey) {
String timeSpan = String.valueOf(System.currentTimeMillis() / 1000);
String[] authentHeaders = new String[] { DigestUtils.md5Hex(appkey.concat(timeSpan).concat(secretKey)).toUpperCase(), timeSpan };
return authentHeaders;
}
// 解析JSON
public static String FormartJson(String jsonString, String key) throws JSONException {
JSONObject jObject = new JSONObject(jsonString);
return (String) jObject.get(key);
}
// pretty print 返回值
public static void PrettyPrintJson(String jsonString) throws JSONException {
try {
ObjectMapper mapper = new ObjectMapper();
Object obj = mapper.readValue(jsonString, Object.class);
String indented = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj);
out.println(indented);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
}

View File

@ -0,0 +1,18 @@
package com.JN;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@Slf4j
@SpringBootApplication
@ServletComponentScan
@EnableTransactionManagement
public class JNApplication {
public static void main(String[] args) {
SpringApplication.run(JNApplication.class,args);
log.info("项目启动成功...");
}
}

View File

@ -0,0 +1,24 @@
package com.JN.common;
/**
* 基于ThreadLocal封装工具类用户保存和获取当前登录用户id
*/
public class BaseContext {
private static ThreadLocal<Long> threadLocal = new ThreadLocal<>();
/**
* 设置值
* @param id
*/
public static void setCurrentId(Long id){
threadLocal.set(id);
}
/**
* 获取值
* @return
*/
public static Long getCurrentId(){
return threadLocal.get();
}
}

View File

@ -0,0 +1,10 @@
package com.JN.common;
/**
* 自定义业务异常类
*/
public class CustomException extends RuntimeException {
public CustomException(String message){
super(message);
}
}

View File

@ -0,0 +1,48 @@
package com.JN.common;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.sql.SQLIntegrityConstraintViolationException;
/**
* 全局异常处理
*/
@ControllerAdvice(annotations = {RestController.class, Controller.class})
@ResponseBody
@Slf4j
public class GlobalExceptionHandler {
/**
* 异常处理方法
* @return
*/
@ExceptionHandler(SQLIntegrityConstraintViolationException.class)
public R<String> exceptionHandler(SQLIntegrityConstraintViolationException ex){
log.error(ex.getMessage());
if(ex.getMessage().contains("Duplicate entry")){
String[] split = ex.getMessage().split(" ");
String msg = split[2] + "已存在";
return R.error(msg);
}
return R.error("未知错误");
}
/**
* 异常处理方法
* @return
*/
@ExceptionHandler(CustomException.class)
public R<String> exceptionHandler(CustomException ex){
log.error(ex.getMessage());
return R.error(ex.getMessage());
}
}

View File

@ -0,0 +1,56 @@
package com.JN.common;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
import java.math.BigInteger;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES;
/**
* 对象映射器:基于jackson将Java对象转为json或者将json转为Java对象
* 将JSON解析为Java对象的过程称为 [从JSON反序列化Java对象]
* 从Java对象生成JSON的过程称为 [序列化Java对象到JSON]
*/
public class JacksonObjectMapper extends ObjectMapper {
public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";
public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
public static final String DEFAULT_TIME_FORMAT = "HH:mm:ss";
public JacksonObjectMapper() {
super();
//收到未知属性时不报异常
this.configure(FAIL_ON_UNKNOWN_PROPERTIES, false);
//反序列化时属性不存在的兼容处理
this.getDeserializationConfig().withoutFeatures(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
SimpleModule simpleModule = new SimpleModule()
.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))
.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)))
.addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)))
.addSerializer(BigInteger.class, ToStringSerializer.instance)
.addSerializer(Long.class, ToStringSerializer.instance)
.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))
.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)))
.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)));
//注册功能模块 例如可以添加自定义序列化器和反序列化器
this.registerModule(simpleModule);
}
}

View File

@ -0,0 +1,43 @@
package com.JN.common;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
/**
* 自定义元数据对象处理器
*/
@Component
@Slf4j
public class MyMetaObjecthandler implements MetaObjectHandler {
/**
* 插入操作自动填充
* @param metaObject
*/
@Override
public void insertFill(MetaObject metaObject) {
log.info("公共字段自动填充[insert]...");
log.info(metaObject.toString());
metaObject.setValue("createTime", LocalDateTime.now());
metaObject.setValue("updateTime",LocalDateTime.now());
}
/**
* 更新操作自动填充
* @param metaObject
*/
@Override
public void updateFill(MetaObject metaObject) {
log.info("公共字段自动填充[update]...");
log.info(metaObject.toString());
long id = Thread.currentThread().getId();
log.info("线程id为{}",id);
metaObject.setValue("updateTime",LocalDateTime.now());
}
}

View File

@ -0,0 +1,42 @@
package com.JN.common;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
/**
* 通用返回结果服务端响应的数据最终都会封装成此对象
* @param <T>
*/
@Data
public class R<T> {
private Integer code; //编码1成功0和其它数字为失败
private String msg; //错误信息
private T data; //数据
private Map map = new HashMap(); //动态数据
public static <T> R<T> success(T object) {
R<T> r = new R<T>();
r.data = object;
r.code = 1;
return r;
}
public static <T> R<T> error(String msg) {
R r = new R();
r.msg = msg;
r.code = 0;
return r;
}
public R<T> add(String key, Object value) {
this.map.put(key, value);
return this;
}
}

View File

@ -0,0 +1,20 @@
package com.JN.config;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* 配置MP的分页插件
*/
@Configuration
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mybatisPlusInterceptor;
}
}

View File

@ -0,0 +1,47 @@
package com.JN.config;
import com.JN.common.JacksonObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import java.util.List;
@Slf4j
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
/**
* 设置静态资源映射系统默认访问static目录下的资源通过资源类的映射来访问其他目录重写这个类
* @param registry
*/
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
log.info("开始进行静态资源映射...");
//第一个参数是路径显示在浏览器的第二个参数是映射路径我们文件夹的路径
registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/");
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/");
}
/**
* 扩展mvc框架的消息转换器
* @param converters
*/
@Override
protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
log.info("扩展消息转换器...");
//创建消息转换器对象
MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();
//设置对象转换器底层使用Jackson将Java对象转为json
messageConverter.setObjectMapper(new JacksonObjectMapper());
//将上面的消息转换器对象追加到mvc框架的转换器集合中
converters.add(0,messageConverter);
}
}

View File

@ -0,0 +1,47 @@
package com.JN.controller;
import com.JN.service.EmployeeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
/**
* @ClassName PageRedirectController
* @Description TODO
* @Author JN
* @Date 2024/1/12 14:44
* @Version 1.0
*/
@Controller
@Slf4j
public class PageRedirectController {
@Autowired
EmployeeService employeeService;
/**
* @title redirectBiz
* @description 后台接收带工号的URL请求跳转界面
* @author JN
* @param: id
* @param: model
* @updateTime 2024/1/15 8:23
* @return: java.lang.String
*/
@RequestMapping(value = "/Biz", method = {RequestMethod.GET, RequestMethod.POST})
public String redirectBiz(@RequestParam("id") String id, Model model) {
log.info("登入工号为: {}", id);
// 将工号添加到Model中
String name = employeeService.queryNameById(id);
model.addAttribute("employeeId", id);
model.addAttribute("employeeName", name);
if(name == null || name.equals("")) {
return "bizquery/error";
}
return "bizquery/index";
}
}

View File

@ -0,0 +1,88 @@
package com.JN.demo.bizquery.controller;
import com.JN.common.R;
import com.JN.demo.bizquery.dto.BizDto;
import com.JN.demo.bizquery.service.BizService;
import com.JN.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @ClassName BizController
* @Description 业务查询的controller类
* @Author JN
* @Date 2024/1/8 8:54
* @Version 1.0
*/
@RestController
@Slf4j
@RequestMapping("/bizquery")
public class BizController {
@Autowired
BizService bizService;
@PostMapping("list")
public R<List<BizDto>> queryBizList(@RequestParam("name") String name) {
log.info("开始调用sql----------------------");
log.info(name);
log.info(String.valueOf(bizService == null));
List<BizDto> 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, @RequestParam("employeeId") String employeeId) {
//根据传入的时间前后获取格式化后的时间
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");
Map<String, String> resultMap = new HashMap<>();
resultMap.put("latestShippingDate", "0".equals(latestShippingDate) ? latestShippingDate : StringUtils.formatDateString(latestShippingDate, "yyyy-MM-dd"));
resultMap.put("latestOrderDate", "0".equals(latestOrderDate) ? latestOrderDate : StringUtils.formatDateString(latestOrderDate, "yyyy-MM-dd"));
resultMap.put("latestQuotationDate", "0".equals(latestQuotationDate) ? latestQuotationDate : StringUtils.formatDateString(latestQuotationDate, "yyyy-MM-dd"));
resultMap.put("salespersonCount", salespersonCount );
log.info("开始记录日志信息: {}", "工号为:" + employeeId + "的用户查询的客户名称为:" + name);
return R.success(resultMap);
}
}

View File

@ -0,0 +1,136 @@
package com.JN.demo.bizquery.controller;
import com.JN.API.qichacha.QccApiUntils;
import com.JN.common.R;
import com.JN.demo.bizquery.entity.QccInfo;
import com.JN.demo.bizquery.service.QccInfoService;
import com.JN.utils.HttpHelper;
import com.JN.utils.JSONHelper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.methods.HttpHead;
import org.json.JSONException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.HashMap;
import java.util.Map;
/**
* @ClassName BizQccController
* @Description 业务查询中的企查查的接受请求控制类
* @Author JN
* @Date 2024/1/11 9:46
* @Version 1.0
*/
@RestController
@Slf4j
@RequestMapping("/qcc")
@PropertySource("classpath:/file.properties")
public class BizQccController {
@Autowired
private QccInfoService qccInfoService;
@Value("${Qcc_Key}")
private String Qcc_Key;
// 接口请求Key
@Value("${Qcc_SecretKey}")
private String Qcc_SecretKey;
@Value("${Qcc_Url}")
private String Qcc_Url;
@PostMapping
public R<Map<String, String>> queryCompanyInfo(@RequestParam("name") String name) throws JSONException {
//创建数据库查询
LambdaQueryWrapper<QccInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(QccInfo::getName, name);
QccInfo qccInfo = qccInfoService.getOne(queryWrapper);
if(qccInfo == null || isExpiredOneMonth(qccInfo.getUpdateTime())) {
String paramStr = "searchKey=";
String status = "";
// 判断 name 是否为空避免拼接出现异常,将传入的
if (name != null && !name.isEmpty()) {
// 拼接参数字符串
paramStr += name;
}
try{
HttpHead reqHeader = new HttpHead();
String[] autherHeader = QccApiUntils.RandomAuthentHeader(Qcc_Key, Qcc_SecretKey);
reqHeader.setHeader("Token", autherHeader[0]);
reqHeader.setHeader("Timespan", autherHeader[1]);
log.info("Request query headers {}", reqHeader);
final String reqUri = Qcc_Url.concat("?key=").concat(Qcc_Key).concat("&").concat(paramStr);
String tokenJson = HttpHelper.httpGet(reqUri, reqHeader.getAllHeaders());
log.info("tokenJson: {}", tokenJson);
//创建新增的qccInfo类用来插入数据
QccInfo qccInfoSave = new QccInfo();
qccInfoSave.setQccJson(tokenJson);
if(qccInfo == null) {
qccInfoSave.setName(name);
qccInfoService.save(qccInfoSave);
} else {
LambdaUpdateWrapper<QccInfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(QccInfo::getName, name);
qccInfoService.update(qccInfoSave, updateWrapper);
}
return R.success(insuredCountMap(tokenJson));
} catch (Exception e1) {
e1.printStackTrace();
}
} else {
return R.success(insuredCountMap(qccInfo.getQccJson()));
}
return null;
}
/**
* @title isExpiredOneMonth
* @description 判断传入的日期是否过期一个月
* @author JN
* @param: updateTime
* @updateTime 2024/1/12 10:20
* @return: boolean
*/
public boolean isExpiredOneMonth(LocalDateTime updateTime) {
LocalDateTime oneMonthLater = updateTime.plus(1, ChronoUnit.MONTHS);
LocalDateTime now = LocalDateTime.now();
return now.isAfter(oneMonthLater);
}
/**
* @title resultMap
* @description 传入tokenJson返回需要返回给前端的Map
* @author JN
* @param: tokenJson
* @updateTime 2024/1/12 10:52
* @return: java.util.Map<java.lang.String,java.lang.String>
*/
public Map<String, String> insuredCountMap(String tokenJson) throws JSONException {
String result = JSONHelper.formartJson(tokenJson, "Result");
String data = JSONHelper.formartJson(result, "Data");
String insuredCount = JSONHelper.formartJson(data, "InsuredCount");
Map<String, String> resultMap = new HashMap<>();
resultMap.put("insuredCount", insuredCount);
return resultMap;
}
}

View File

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

View File

@ -0,0 +1,30 @@
package com.JN.demo.bizquery.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* @ClassName QccInfo
* @Description qcc_info表对应的实体类
* @Author JN
* @Date 2024/1/12 8:59
* @Version 1.0
*/
@Data
public class QccInfo implements Serializable {
private static final long serialVersionUID = 1L;
String name;
String qccJson;
@TableField(fill = FieldFill.INSERT) //插入时填充字段
private LocalDateTime createTime;
@TableField(fill = FieldFill.INSERT_UPDATE) //插入和更新时填充字段
private LocalDateTime updateTime;
}

View File

@ -0,0 +1,37 @@
package com.JN.demo.bizquery.mapper;
import com.JN.demo.bizquery.dto.BizDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @ClassName BizMapper
* @Description TODO
* @Author JN
* @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<BizDto> 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,17 @@
package com.JN.demo.bizquery.mapper;
import com.JN.demo.bizquery.entity.QccInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* @ClassName QccInfoMapper
* @Description TODO
* @Author JN
* @Date 2024/1/12 9:06
* @Version 1.0
*/
@Mapper
public interface QccInfoMapper extends BaseMapper<QccInfo> {
}

View File

@ -0,0 +1,25 @@
package com.JN.demo.bizquery.service;
import com.JN.demo.bizquery.dto.BizDto;
import java.util.List;
/**
* @ClassName BizService
* @Description TODO
* @Author JN
* @Date 2024/1/8 10:11
* @Version 1.0
*/
public interface BizService {
List<BizDto> 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,16 @@
package com.JN.demo.bizquery.service;
import com.JN.demo.bizquery.entity.QccInfo;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @ClassName QccInfoService
* @Description TODO
* @Author JN
* @Date 2024/1/12 9:05
* @Version 1.0
*/
public interface QccInfoService extends IService<QccInfo> {
}

View File

@ -0,0 +1,91 @@
package com.JN.demo.bizquery.service.impl;
import com.JN.demo.bizquery.dto.BizDto;
import com.JN.demo.bizquery.mapper.BizMapper;
import com.JN.demo.bizquery.service.BizService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @ClassName BizServiceImpl
* @Description TODO
* @Author JN
* @Date 2024/1/8 10:11
* @Version 1.0
*/
@Service
public class BizServiceImpl implements BizService {
@Autowired
BizMapper bizMapper;
/**
* @title queryBizListByName
* @description 根据名称模糊查询获取列表
* @author JN
* @param: name
* @updateTime 2024/1/9 13:20
* @return: java.util.List<com.JN.demo.bizquery.dto.Biz>
*/
@Override
public List<BizDto> queryBizListByName(String name) {
return bizMapper.queryBizListByName(name);
}
/**
* @title queryLatestShippingDate
* @description 根据客户编号和时间获取最近发货日期
* @author JN
* @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 JN
* @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 JN
* @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 JN
* @param: name
* @updateTime 2024/1/9 13:38
* @return: java.lang.String
*/
@Override
public String queryLatestQuotationDate(String name) {
return bizMapper.queryLatestQuotationDate(name);
}
}

View File

@ -0,0 +1,19 @@
package com.JN.demo.bizquery.service.impl;
import com.JN.demo.bizquery.entity.QccInfo;
import com.JN.demo.bizquery.mapper.QccInfoMapper;
import com.JN.demo.bizquery.service.QccInfoService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* @ClassName QccInfoServiceImpl
* @Description TODO
* @Author JN
* @Date 2024/1/12 9:05
* @Version 1.0
*/
@Service
public class QccInfoServiceImpl extends ServiceImpl<QccInfoMapper, QccInfo> implements QccInfoService {
}

View File

@ -0,0 +1,96 @@
package com.JN.filter;
import com.JN.common.BaseContext;
import com.JN.common.R;
import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.AntPathMatcher;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 检查用户是否已经完成登录
*/
@WebFilter(filterName = "loginCheckFilter",urlPatterns = "/*")
@Slf4j
public class LoginCheckFilter implements Filter{
//路径匹配器支持通配符
public static final AntPathMatcher PATH_MATCHER = new AntPathMatcher();
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
//1获取本次请求的URI
String requestURI = request.getRequestURI();// /backend/index.html
log.info("拦截到请求:{}",requestURI);
//定义需要处理的请求路径
String[] urls = new String[]{
/* "/user/login",
"/user/logout",
"/backend/**",
"/user/sendMsg",*/
};
//2判断本次请求是否需要处理
boolean check = check(urls, requestURI);
//3如果不需要处理则直接放行
if(!check){
log.info("本次请求{}不需要处理",requestURI);
filterChain.doFilter(request,response);
return;
}
//4-1判断登录状态如果已登录则直接放行
if(request.getSession().getAttribute("user") != null){
log.info("用户已登录用户id为{}",request.getSession().getAttribute("user"));
Long empId = (Long) request.getSession().getAttribute("user");
BaseContext.setCurrentId(empId);
filterChain.doFilter(request,response);
return;
}
//4-2判断登录状态如果已登录则直接放行
if(request.getSession().getAttribute("user") != null){
log.info("用户已登录用户id为{}",request.getSession().getAttribute("user"));
Long userId = (Long) request.getSession().getAttribute("user");
BaseContext.setCurrentId(userId);
filterChain.doFilter(request,response);
return;
}
log.info("用户未登录");
//5如果未登录则返回未登录结果通过输出流方式向客户端页面响应数据
response.getWriter().write(JSON.toJSONString(R.error("NOTLOGIN")));
return;
}
/**
* 路径匹配检查本次请求是否需要放行
* @param urls
* @param requestURI
* @return
*/
public boolean check(String[] urls,String requestURI){
for (String url : urls) {
boolean match = PATH_MATCHER.match(url, requestURI);
if(match){
return true;
}
}
return false;
}
}

View File

@ -0,0 +1,19 @@
package com.JN.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
/**
* @ClassName EmployeeMapper
* @Description 查询员工信息Mapper
* @Author JIAL
* @Date 2024/1/16 10:56
* @Version 1.0
*/
@Mapper
public interface EmployeeMapper {
@Select("SELECT [姓名] FROM [ecology].[dbo].[OA人员信息] WHERE [用户名] = #{id}")
String queryNameById(String id);
}

View File

@ -0,0 +1,13 @@
package com.JN.service;
/**
* @ClassName EmployeeInfo
* @Description 查询员工信息接口
* @Author JIAL
* @Date 2024/1/16 10:55
* @Version 1.0
*/
public interface EmployeeService {
String queryNameById(String id);
}

View File

@ -0,0 +1,36 @@
package com.JN.service.impl;
import com.JN.mapper.EmployeeMapper;
import com.JN.service.EmployeeService;
import com.baomidou.dynamic.datasource.annotation.DS;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @ClassName EmployeeServiceImpl
* @Description 查询员工信息接口实现
* @Author JIAL
* @Date 2024/1/16 10:56
* @Version 1.0
*/
@Service
public class EmployeeServiceImpl implements EmployeeService {
@Autowired
EmployeeMapper employeeMapper;
/**
* @title queryNameById
* @description 根据工号查询姓名
* @author JIAL
* @param: id
* @updateTime 2024/1/16 11:12
* @return: java.lang.String
*/
@DS("slave_1")
@Override
public String queryNameById(String id) {
return employeeMapper.queryNameById(id);
}
}

View File

@ -0,0 +1,161 @@
package com.JN.utils;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.util.EntityUtils;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.X509Certificate;
import java.util.Map;
/**
* @ClassName HttpHelper
* @Description HTTP工具类
* @Author JN
* @Date 2024/1/11 14:29
* @Version 1.0
*/
public class HttpHelper {
// get 请求
public static String httpGet(String url, Header[] headers) throws Exception {
HttpUriRequest uriRequest = new HttpGet(url);
if (null != headers)
uriRequest.setHeaders(headers);
CloseableHttpClient httpClient = null;
try {
httpClient = declareHttpClientSSL(url);
CloseableHttpResponse httpresponse = httpClient.execute(uriRequest);
HttpEntity httpEntity = httpresponse.getEntity();
String result = EntityUtils.toString(httpEntity, REQ_ENCODEING_UTF8);
return result;
} catch (ClientProtocolException e) {
System.out.println(String.format("http请求失败uri{%s},exception{%s}", new Object[] { url, e }));
} catch (IOException e) {
System.out.println(String.format("IO Exceptionuri{%s},exception{%s}", new Object[] { url, e }));
} finally {
if (null != httpClient)
httpClient.close();
}
return null;
}
// post 请求
public static String httpPost(String url, String params) throws Exception {
HttpPost post = new HttpPost(url);
post.addHeader("Content-Type", "application/json;charset=" + REQ_ENCODEING_UTF8);
// 设置传输编码格式
StringEntity stringEntity = new StringEntity(params, REQ_ENCODEING_UTF8);
stringEntity.setContentEncoding(REQ_ENCODEING_UTF8);
post.setEntity(stringEntity);
HttpResponse httpresponse = null;
CloseableHttpClient httpClient = null;
try {
httpClient = declareHttpClientSSL(url);
httpresponse = httpClient.execute(post);
HttpEntity httpEntity = httpresponse.getEntity();
String result = EntityUtils.toString(httpEntity, REQ_ENCODEING_UTF8);
return result;
} catch (ClientProtocolException e) {
System.out.println(String.format("http请求失败uri{%s},exception{%s}", new Object[] { url, e }));
} catch (IOException e) {
System.out.println(String.format("IO Exceptionuri{%s},exception{%s}", new Object[] { url, e }));
} finally {
if (null != httpClient)
httpClient.close();
}
return null;
}
private static CloseableHttpClient declareHttpClientSSL(String url) {
if (url.startsWith("https://")) {
return sslClient();
} else {
return HttpClientBuilder.create().setConnectionManager(httpClientConnectionManager).build();
}
}
/**
* 设置SSL请求处理
*/
private static CloseableHttpClient sslClient() {
try {
SSLContext ctx = SSLContext.getInstance("TLS");
X509TrustManager tm = new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(X509Certificate[] xcs, String str) {
}
public void checkServerTrusted(X509Certificate[] xcs, String str) {
}
};
ctx.init(null, new TrustManager[] { tm }, null);
SSLConnectionSocketFactory sslConnectionSocketFactory = SSLConnectionSocketFactory.getSocketFactory();
return HttpClients.custom().setSSLSocketFactory(sslConnectionSocketFactory).build();
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
} catch (KeyManagementException e) {
throw new RuntimeException(e);
}
}
// this is config
private static final String REQ_ENCODEING_UTF8 = "utf-8";
private static PoolingHttpClientConnectionManager httpClientConnectionManager;
public HttpHelper() {
httpClientConnectionManager = new PoolingHttpClientConnectionManager();
httpClientConnectionManager.setMaxTotal(100);
httpClientConnectionManager.setDefaultMaxPerRoute(20);
}
// get 请求
public static String httpGet(String url) throws Exception {
return httpGet(url, null);
}
/**
* @title urlEncode
* @description 将Map类型转换为请求参数param
* @author JN
* @param: data
* @updateTime 2024/1/11 16:38
* @return: java.lang.String
*/
public static String urlEncode(Map<String, ?> data) {
StringBuilder sb = new StringBuilder();
for (Map.Entry<String, ?> i : data.entrySet()) {
try {
sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue() + "", "UTF-8")).append("&");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
String result = sb.toString();
result = result.substring(0, result.lastIndexOf("&"));
return result;
}
}

View File

@ -0,0 +1,53 @@
package com.JN.utils;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.json.JSONException;
import org.json.JSONObject;
import static java.lang.System.out;
/**
* @ClassName JSONHelper
* @Description JSON字符串工具类
* @Author JN
* @Date 2024/1/12 8:07
* @Version 1.0
*/
@Slf4j
public class JSONHelper {
/**
* @title FormartJson
* @description 获取JSON中对应key的Value值
* @author JN
* @param: jsonString
* @param: key
* @updateTime 2024/1/12 8:08
* @return: java.lang.String
*/
public static String formartJson(String jsonString, String key) throws JSONException {
JSONObject jObject = new JSONObject(jsonString);
return jObject.get(key).toString();
}
/**
* @title PrettyPrintJson
* @description 控制台和日志打印格式化的JSON字符串
* @author JN
* @param: jsonString
* @updateTime 2024/1/12 8:08
*/
public static void prettyPrintJson(String jsonString) throws JSONException {
try {
ObjectMapper mapper = new ObjectMapper();
Object obj = mapper.readValue(jsonString, Object.class);
String indented = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj);
out.println(indented);
log.info("Qcc result tokenJson: {}", indented);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
}

View File

@ -0,0 +1,40 @@
package com.JN.utils;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
/**
* 短信发送工具类
*/
public class SMSUtils {
/**
* 发送短信
* @param signName 签名
* @param templateCode 模板
* @param phoneNumbers 手机号
* @param param 参数
*/
public static void sendMessage(String signName, String templateCode,String phoneNumbers,String param){
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "", "");
IAcsClient client = new DefaultAcsClient(profile);
SendSmsRequest request = new SendSmsRequest();
request.setSysRegionId("cn-hangzhou");
request.setPhoneNumbers(phoneNumbers);
request.setSignName(signName);
request.setTemplateCode(templateCode);
request.setTemplateParam("{\"code\":\""+param+"\"}");
try {
SendSmsResponse response = client.getAcsResponse(request);
System.out.println("短信发送成功");
}catch (ClientException e) {
e.printStackTrace();
}
}
}

View File

@ -0,0 +1,64 @@
package com.JN.utils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Optional;
/**
* @ClassName StringUtils
* @Description 处理字符串的工具类
* @Author JN
* @Date 2024/1/9 14:02
* @Version 1.0
*/
public class StringUtils {
/**
* @title getDefaultIfNull
* @description 判断传入的字符串是否为null,如果为null则赋值为提供的默认值
* @author JN
* @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 JN
* @param: dateTimeString 日期字符串 支持yyyy-MM-dd HH:mm:ss,SSS(小数点位数不固定)支持yyyyMMdd
* @param: pattern 你想要输出的格式
* @updateTime 2024/1/15 9:52
* @return: java.lang.String
*/
public static String formatDateString(String dateTimeString, String pattern) {
try {
// 将时间字符串解析为 Date 对象
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date parsedDate = inputFormat.parse(dateTimeString);
// 格式化 Date 对象为指定格式的字符串
SimpleDateFormat outputFormat = new SimpleDateFormat(pattern);
return outputFormat.format(parsedDate);
} catch (ParseException e) {
// 解析失败时尝试解析为纯日期格式
try {
SimpleDateFormat dateOnlyFormat = new SimpleDateFormat("yyyyMMdd");
Date parsedDate = dateOnlyFormat.parse(dateTimeString);
return new SimpleDateFormat(pattern).format(parsedDate);
} catch (ParseException ex) {
// 无法解析时的异常处理
ex.printStackTrace();
return "解析失败";
}
}
}
}

View File

@ -0,0 +1,43 @@
package com.JN.utils;
import java.util.Random;
/**
* 随机生成验证码工具类
*/
public class ValidateCodeUtils {
/**
* 随机生成验证码
* @param length 长度为4位或者6位
* @return
*/
public static Integer generateValidateCode(int length){
Integer code =null;
if(length == 4){
code = new Random().nextInt(9999);//生成随机数最大为9999
if(code < 1000){
code = code + 1000;//保证随机数为4位数字
}
}else if(length == 6){
code = new Random().nextInt(999999);//生成随机数最大为999999
if(code < 100000){
code = code + 100000;//保证随机数为6位数字
}
}else{
throw new RuntimeException("只能生成4位或6位数字验证码");
}
return code;
}
/**
* 随机生成指定长度字符串验证码
* @param length 长度
* @return
*/
public static String generateValidateCode4String(int length){
Random rdm = new Random();
String hash1 = Integer.toHexString(rdm.nextInt());
String capstr = hash1.substring(0, length);
return capstr;
}
}

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,51 @@
server:
port: 8080
spring:
application:
#应用的名称,可选
name: JIALDev
datasource:
dynamic:
primary: master #设置默认的数据源或者数据源组,默认值即为master
strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
datasource:
master:
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-
slave_1:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
url: jdbc:sqlserver://192.168.9.182:1433;databaseName=ecology;Encrypt=false;TrustServerCertificate=true;
username: sa
password: Itcenter110-
druid:
initial-size: 1
max-active: 20
min-idle: 1
max-wait: 60000
autoconfigure:
exclude: org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration #去除Druid自动配置
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
logging:
level:
root: warn
com.JN: 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

@ -0,0 +1,5 @@
spring:
thymeleaf:
mode: HTML
profiles:
active: ss

View File

@ -0,0 +1,15 @@
#
file.localPathDir=D:/testFiles
#weather
weather.API_Url=http://apis.juhe.cn/simpleWeather/query
weather.API_Key=898cdacbf9a9b9aa94f052eee4a36730
#post-type
POST_TYPE_COD=application/x-www-form-urlencoded
POST_TYPE_JSON=application/json;charset=utf-8
Qcc_Key=824936f8e78c4f4788978da38b26d488
Qcc_SecretKey=8B9EB102FD17E0CF2EDEC0FB507DEC1E
Qcc_Url=https://api.qichacha.com/EnterpriseInfo/Verify

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

View File

@ -0,0 +1,82 @@
(function (win) {
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
// 创建axios实例
const service = axios.create({
// axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: '/',
// 超时
timeout: 1000000
})
// request拦截器
service.interceptors.request.use(config => {
// 是否需要设置 token
// const isToken = (config.headers || {}).isToken === false
// if (getToken() && !isToken) {
// config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
// }
// get请求映射params参数
if (config.method === 'get' && config.params) {
let url = config.url + '?';
for (const propName of Object.keys(config.params)) {
const value = config.params[propName];
var part = encodeURIComponent(propName) + "=";
if (value !== null && typeof(value) !== "undefined") {
if (typeof value === 'object') {
for (const key of Object.keys(value)) {
let params = propName + '[' + key + ']';
var subPart = encodeURIComponent(params) + "=";
url += subPart + encodeURIComponent(value[key]) + "&";
}
} else {
url += part + encodeURIComponent(value) + "&";
}
}
}
url = url.slice(0, -1);
config.params = {};
config.url = url;
}
return config
}, error => {
console.log(error)
Promise.reject(error)
})
// 响应拦截器
service.interceptors.response.use(res => {
console.log('---响应拦截器---',res)
// 未设置状态码则默认成功状态
const code = res.data.code;
// 获取错误信息
const msg = res.data.msg
console.log('---code---',code)
if (res.data.code === 0 && res.data.msg === 'NOTLOGIN') {// 返回登录页面
console.log('---/backend/page/login/login.html---',code)
localStorage.removeItem('userInfo')
window.top.location.href = '/backend/page/login/login.html'
} else {
return res.data
}
},
error => {
console.log('err' + error)
let { message } = error;
if (message == "Network Error") {
message = "后端接口连接异常";
}
else if (message.includes("timeout")) {
message = "系统接口请求超时";
}
else if (message.includes("Request failed with status code")) {
message = "系统接口" + message.substr(message.length - 3) + "异常";
}
window.ELEMENT.Message({
message: message,
type: 'error',
duration: 5 * 1000
})
return Promise.reject(error)
}
)
 win.$axios = service
})(window);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,539 @@
/* Logo 字体 */
@font-face {
font-family: "iconfont logo";
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
}
.logo {
font-family: "iconfont logo";
font-size: 160px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* tabs */
.nav-tabs {
position: relative;
}
.nav-tabs .nav-more {
position: absolute;
right: 0;
bottom: 0;
height: 42px;
line-height: 42px;
color: #666;
}
#tabs {
border-bottom: 1px solid #eee;
}
#tabs li {
cursor: pointer;
width: 100px;
height: 40px;
line-height: 40px;
text-align: center;
font-size: 16px;
border-bottom: 2px solid transparent;
position: relative;
z-index: 1;
margin-bottom: -1px;
color: #666;
}
#tabs .active {
border-bottom-color: #f00;
color: #222;
}
.tab-container .content {
display: none;
}
/* 页面布局 */
.main {
padding: 30px 100px;
width: 960px;
margin: 0 auto;
}
.main .logo {
color: #333;
text-align: left;
margin-bottom: 30px;
line-height: 1;
height: 110px;
margin-top: -50px;
overflow: hidden;
*zoom: 1;
}
.main .logo a {
font-size: 160px;
color: #333;
}
.helps {
margin-top: 40px;
}
.helps pre {
padding: 20px;
margin: 10px 0;
border: solid 1px #e7e1cd;
background-color: #fffdef;
overflow: auto;
}
.icon_lists {
width: 100% !important;
overflow: hidden;
*zoom: 1;
}
.icon_lists li {
width: 100px;
margin-bottom: 10px;
margin-right: 20px;
text-align: center;
list-style: none !important;
cursor: default;
}
.icon_lists li .code-name {
line-height: 1.2;
}
.icon_lists .icon {
display: block;
height: 100px;
line-height: 100px;
font-size: 42px;
margin: 10px auto;
color: #333;
-webkit-transition: font-size 0.25s linear, width 0.25s linear;
-moz-transition: font-size 0.25s linear, width 0.25s linear;
transition: font-size 0.25s linear, width 0.25s linear;
}
.icon_lists .icon:hover {
font-size: 100px;
}
.icon_lists .svg-icon {
/* 通过设置 font-size 来改变图标大小 */
width: 1em;
/* 图标和文字相邻时,垂直对齐 */
vertical-align: -0.15em;
/* 通过设置 color 来改变 SVG 的颜色/fill */
fill: currentColor;
/* path stroke 溢出 viewBox 部分在 IE 下会显示
normalize.css 中也包含这行 */
overflow: hidden;
}
.icon_lists li .name,
.icon_lists li .code-name {
color: #666;
}
/* markdown 样式 */
.markdown {
color: #666;
font-size: 14px;
line-height: 1.8;
}
.highlight {
line-height: 1.5;
}
.markdown img {
vertical-align: middle;
max-width: 100%;
}
.markdown h1 {
color: #404040;
font-weight: 500;
line-height: 40px;
margin-bottom: 24px;
}
.markdown h2,
.markdown h3,
.markdown h4,
.markdown h5,
.markdown h6 {
color: #404040;
margin: 1.6em 0 0.6em 0;
font-weight: 500;
clear: both;
}
.markdown h1 {
font-size: 28px;
}
.markdown h2 {
font-size: 22px;
}
.markdown h3 {
font-size: 16px;
}
.markdown h4 {
font-size: 14px;
}
.markdown h5 {
font-size: 12px;
}
.markdown h6 {
font-size: 12px;
}
.markdown hr {
height: 1px;
border: 0;
background: #e9e9e9;
margin: 16px 0;
clear: both;
}
.markdown p {
margin: 1em 0;
}
.markdown>p,
.markdown>blockquote,
.markdown>.highlight,
.markdown>ol,
.markdown>ul {
width: 80%;
}
.markdown ul>li {
list-style: circle;
}
.markdown>ul li,
.markdown blockquote ul>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown>ul li p,
.markdown>ol li p {
margin: 0.6em 0;
}
.markdown ol>li {
list-style: decimal;
}
.markdown>ol li,
.markdown blockquote ol>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown code {
margin: 0 3px;
padding: 0 5px;
background: #eee;
border-radius: 3px;
}
.markdown strong,
.markdown b {
font-weight: 600;
}
.markdown>table {
border-collapse: collapse;
border-spacing: 0px;
empty-cells: show;
border: 1px solid #e9e9e9;
width: 95%;
margin-bottom: 24px;
}
.markdown>table th {
white-space: nowrap;
color: #333;
font-weight: 600;
}
.markdown>table th,
.markdown>table td {
border: 1px solid #e9e9e9;
padding: 8px 16px;
text-align: left;
}
.markdown>table th {
background: #F7F7F7;
}
.markdown blockquote {
font-size: 90%;
color: #999;
border-left: 4px solid #e9e9e9;
padding-left: 0.8em;
margin: 1em 0;
}
.markdown blockquote p {
margin: 0;
}
.markdown .anchor {
opacity: 0;
transition: opacity 0.3s ease;
margin-left: 8px;
}
.markdown .waiting {
color: #ccc;
}
.markdown h1:hover .anchor,
.markdown h2:hover .anchor,
.markdown h3:hover .anchor,
.markdown h4:hover .anchor,
.markdown h5:hover .anchor,
.markdown h6:hover .anchor {
opacity: 1;
display: inline-block;
}
.markdown>br,
.markdown>p>br {
clear: both;
}
.hljs {
display: block;
background: white;
padding: 0.5em;
color: #333333;
overflow-x: auto;
}
.hljs-comment,
.hljs-meta {
color: #969896;
}
.hljs-string,
.hljs-variable,
.hljs-template-variable,
.hljs-strong,
.hljs-emphasis,
.hljs-quote {
color: #df5000;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-type {
color: #a71d5d;
}
.hljs-literal,
.hljs-symbol,
.hljs-bullet,
.hljs-attribute {
color: #0086b3;
}
.hljs-section,
.hljs-name {
color: #63a35c;
}
.hljs-tag {
color: #333333;
}
.hljs-title,
.hljs-attr,
.hljs-selector-id,
.hljs-selector-class,
.hljs-selector-attr,
.hljs-selector-pseudo {
color: #795da3;
}
.hljs-addition {
color: #55a532;
background-color: #eaffea;
}
.hljs-deletion {
color: #bd2c00;
background-color: #ffecec;
}
.hljs-link {
text-decoration: underline;
}
/* 代码高亮 */
/* PrismJS 1.15.0
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
/**
* prism.js default theme for JavaScript, CSS and HTML
* Based on dabblet (http://dabblet.com)
* @author Lea Verou
*/
code[class*="language-"],
pre[class*="language-"] {
color: black;
background: none;
text-shadow: 0 1px white;
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.5;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
pre[class*="language-"]::-moz-selection,
pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection,
code[class*="language-"] ::-moz-selection {
text-shadow: none;
background: #b3d4fc;
}
pre[class*="language-"]::selection,
pre[class*="language-"] ::selection,
code[class*="language-"]::selection,
code[class*="language-"] ::selection {
text-shadow: none;
background: #b3d4fc;
}
@media print {
code[class*="language-"],
pre[class*="language-"] {
text-shadow: none;
}
}
/* Code blocks */
pre[class*="language-"] {
padding: 1em;
margin: .5em 0;
overflow: auto;
}
:not(pre)>code[class*="language-"],
pre[class*="language-"] {
background: #f5f2f0;
}
/* Inline code */
:not(pre)>code[class*="language-"] {
padding: .1em;
border-radius: .3em;
white-space: normal;
}
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: slategray;
}
.token.punctuation {
color: #999;
}
.namespace {
opacity: .7;
}
.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
color: #905;
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
color: #690;
}
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
color: #9a6e3a;
background: hsla(0, 0%, 100%, .5);
}
.token.atrule,
.token.attr-value,
.token.keyword {
color: #07a;
}
.token.function,
.token.class-name {
color: #DD4A68;
}
.token.regex,
.token.important,
.token.variable {
color: #e90;
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}

View File

@ -0,0 +1,349 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>iconfont Demo</title>
<link rel="shortcut icon" href="//img.alicdn.com/imgextra/i2/O1CN01ZyAlrn1MwaMhqz36G_!!6000000001499-73-tps-64-64.ico" type="image/x-icon"/>
<link rel="icon" type="image/svg+xml" href="//img.alicdn.com/imgextra/i4/O1CN01EYTRnJ297D6vehehJ_!!6000000008020-55-tps-64-64.svg"/>
<link rel="stylesheet" href="https://g.alicdn.com/thx/cube/1.3.2/cube.min.css">
<link rel="stylesheet" href="demo.css">
<link rel="stylesheet" href="iconfont.css">
<script src="iconfont.js"></script>
<!-- jQuery -->
<script src="https://a1.alicdn.com/oss/uploads/2018/12/26/7bfddb60-08e8-11e9-9b04-53e73bb6408b.js"></script>
<!-- 代码高亮 -->
<script src="https://a1.alicdn.com/oss/uploads/2018/12/26/a3f714d0-08e6-11e9-8a15-ebf944d7534c.js"></script>
<style>
.main .logo {
margin-top: 0;
height: auto;
}
.main .logo a {
display: flex;
align-items: center;
}
.main .logo .sub-title {
margin-left: 0.5em;
font-size: 22px;
color: #fff;
background: linear-gradient(-45deg, #3967FF, #B500FE);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
</style>
</head>
<body>
<div class="main">
<h1 class="logo"><a href="https://www.iconfont.cn/" title="iconfont 首页" target="_blank">
<img width="200" src="https://img.alicdn.com/imgextra/i3/O1CN01Mn65HV1FfSEzR6DKv_!!6000000000514-55-tps-228-59.svg">
</a></h1>
<div class="nav-tabs">
<ul id="tabs" class="dib-box">
<li class="dib active"><span>Unicode</span></li>
<li class="dib"><span>Font class</span></li>
<li class="dib"><span>Symbol</span></li>
</ul>
<a href="https://www.iconfont.cn/manage/index?manage_type=myprojects&projectId=2552591" target="_blank" class="nav-more">查看项目</a>
</div>
<div class="tab-container">
<div class="content unicode" style="display: block;">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont">&#xe606;</span>
<div class="name">category</div>
<div class="code-name">&amp;#xe606;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe607;</span>
<div class="name">member</div>
<div class="code-name">&amp;#xe607;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe608;</span>
<div class="name">user</div>
<div class="code-name">&amp;#xe608;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe609;</span>
<div class="name">order</div>
<div class="code-name">&amp;#xe609;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe60a;</span>
<div class="name">combo</div>
<div class="code-name">&amp;#xe60a;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe60b;</span>
<div class="name">lock</div>
<div class="code-name">&amp;#xe60b;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe60c;</span>
<div class="name">food</div>
<div class="code-name">&amp;#xe60c;</div>
</li>
</ul>
<div class="article markdown">
<h2 id="unicode-">Unicode 引用</h2>
<hr>
<p>Unicode 是字体在网页端最原始的应用方式,特点是:</p>
<ul>
<li>支持按字体的方式去动态调整图标大小,颜色等等。</li>
<li>默认情况下不支持多色,直接添加多色图标会自动去色。</li>
</ul>
<blockquote>
<p>注意:新版 iconfont 支持两种方式引用多色图标SVG symbol 引用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)</p>
</blockquote>
<p>Unicode 使用步骤如下:</p>
<h3 id="-font-face">第一步:拷贝项目下面生成的 <code>@font-face</code></h3>
<pre><code class="language-css"
>@font-face {
font-family: 'iconfont';
src: url('iconfont.woff2?t=1621231825060') format('woff2'),
url('iconfont.woff?t=1621231825060') format('woff'),
url('iconfont.ttf?t=1621231825060') format('truetype');
}
</code></pre>
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
<pre><code class="language-css"
>.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
</code></pre>
<h3 id="-">第三步:挑选相应图标并获取字体编码,应用于页面</h3>
<pre>
<code class="language-html"
>&lt;span class="iconfont"&gt;&amp;#x33;&lt;/span&gt;
</code></pre>
<blockquote>
<p>"iconfont" 是你项目下的 font-family。可以通过编辑项目查看默认是 "iconfont"。</p>
</blockquote>
</div>
</div>
<div class="content font-class">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont icon-category"></span>
<div class="name">
category
</div>
<div class="code-name">.icon-category
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-member"></span>
<div class="name">
member
</div>
<div class="code-name">.icon-member
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-user"></span>
<div class="name">
user
</div>
<div class="code-name">.icon-user
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-order"></span>
<div class="name">
order
</div>
<div class="code-name">.icon-order
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-combo"></span>
<div class="name">
combo
</div>
<div class="code-name">.icon-combo
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-lock"></span>
<div class="name">
lock
</div>
<div class="code-name">.icon-lock
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-food"></span>
<div class="name">
food
</div>
<div class="code-name">.icon-food
</div>
</li>
</ul>
<div class="article markdown">
<h2 id="font-class-">font-class 引用</h2>
<hr>
<p>font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。</p>
<p>与 Unicode 使用方式相比,具有如下特点:</p>
<ul>
<li>相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。</li>
<li>因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。</li>
</ul>
<p>使用步骤如下:</p>
<h3 id="-fontclass-">第一步:引入项目下面生成的 fontclass 代码:</h3>
<pre><code class="language-html">&lt;link rel="stylesheet" href="./iconfont.css"&gt;
</code></pre>
<h3 id="-">第二步:挑选相应图标并获取类名,应用于页面:</h3>
<pre><code class="language-html">&lt;span class="iconfont icon-xxx"&gt;&lt;/span&gt;
</code></pre>
<blockquote>
<p>"
iconfont" 是你项目下的 font-family。可以通过编辑项目查看默认是 "iconfont"。</p>
</blockquote>
</div>
</div>
<div class="content symbol">
<ul class="icon_lists dib-box">
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-category"></use>
</svg>
<div class="name">category</div>
<div class="code-name">#icon-category</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-member"></use>
</svg>
<div class="name">member</div>
<div class="code-name">#icon-member</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-user"></use>
</svg>
<div class="name">user</div>
<div class="code-name">#icon-user</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-order"></use>
</svg>
<div class="name">order</div>
<div class="code-name">#icon-order</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-combo"></use>
</svg>
<div class="name">combo</div>
<div class="code-name">#icon-combo</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-lock"></use>
</svg>
<div class="name">lock</div>
<div class="code-name">#icon-lock</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-food"></use>
</svg>
<div class="name">food</div>
<div class="code-name">#icon-food</div>
</li>
</ul>
<div class="article markdown">
<h2 id="symbol-">Symbol 引用</h2>
<hr>
<p>这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇<a href="">文章</a>
这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:</p>
<ul>
<li>支持多色图标了,不再受单色限制。</li>
<li>通过一些技巧,支持像字体那样,通过 <code>font-size</code>, <code>color</code> 来调整样式。</li>
<li>兼容性较差,支持 IE9+,及现代浏览器。</li>
<li>浏览器渲染 SVG 的性能一般,还不如 png。</li>
</ul>
<p>使用步骤如下:</p>
<h3 id="-symbol-">第一步:引入项目下面生成的 symbol 代码:</h3>
<pre><code class="language-html">&lt;script src="./iconfont.js"&gt;&lt;/script&gt;
</code></pre>
<h3 id="-css-">第二步:加入通用 CSS 代码(引入一次就行):</h3>
<pre><code class="language-html">&lt;style&gt;
.icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
&lt;/style&gt;
</code></pre>
<h3 id="-">第三步:挑选相应图标并获取类名,应用于页面:</h3>
<pre><code class="language-html">&lt;svg class="icon" aria-hidden="true"&gt;
&lt;use xlink:href="#icon-xxx"&gt;&lt;/use&gt;
&lt;/svg&gt;
</code></pre>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function () {
$('.tab-container .content:first').show()
$('#tabs li').click(function (e) {
var tabContent = $('.tab-container .content')
var index = $(this).index()
if ($(this).hasClass('active')) {
return
} else {
$('#tabs li').removeClass('active')
$(this).addClass('active')
tabContent.hide().eq(index).fadeIn()
}
})
})
</script>
</body>
</html>

View File

@ -0,0 +1,43 @@
@font-face {
font-family: "iconfont"; /* Project id 2552591 */
src: url('iconfont.woff2?t=1621231825060') format('woff2'),
url('iconfont.woff?t=1621231825060') format('woff'),
url('iconfont.ttf?t=1621231825060') format('truetype');
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-category:before {
content: "\e606";
}
.icon-member:before {
content: "\e607";
}
.icon-user:before {
content: "\e608";
}
.icon-order:before {
content: "\e609";
}
.icon-combo:before {
content: "\e60a";
}
.icon-lock:before {
content: "\e60b";
}
.icon-food:before {
content: "\e60c";
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,58 @@
{
"id": "2552591",
"name": "rjwm",
"font_family": "iconfont",
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "21641541",
"name": "category",
"font_class": "category",
"unicode": "e606",
"unicode_decimal": 58886
},
{
"icon_id": "21641542",
"name": "member",
"font_class": "member",
"unicode": "e607",
"unicode_decimal": 58887
},
{
"icon_id": "21641545",
"name": "user",
"font_class": "user",
"unicode": "e608",
"unicode_decimal": 58888
},
{
"icon_id": "21641546",
"name": "order",
"font_class": "order",
"unicode": "e609",
"unicode_decimal": 58889
},
{
"icon_id": "21641547",
"name": "combo",
"font_class": "combo",
"unicode": "e60a",
"unicode_decimal": 58890
},
{
"icon_id": "21641548",
"name": "lock",
"font_class": "lock",
"unicode": "e60b",
"unicode_decimal": 58891
},
{
"icon_id": "21641611",
"name": "food",
"font_class": "food",
"unicode": "e60c",
"unicode_decimal": 58892
}
]
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

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,23 @@
const queryListByName = (params) => {
return $axios({
url: '/bizquery/list',
method: 'post',
params
})
}
const queryDetailByParams = (params) => {
return $axios({
url: '/bizquery/detail',
method: 'post',
params
})
}
const queryInsuredCountByName = (params) => {
return $axios({
url: '/qcc',
method: 'post',
params
})
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@ -0,0 +1,15 @@
<!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">
</head>
<body>
<h1>您无权限查看此界面,请联系管理员解决问题!</h1>
</body>
</html>

View File

@ -0,0 +1,187 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>客户跟踪查询</title>
<meta name="author" content="JIAL">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<meta name="HandheldFriendly" content="true">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<link rel="icon" href="/static/image/JNlogo.png" type="image/x-icon">
<link rel="stylesheet" href="/plugins/element-ui/index.css">
<!-- import CSS -->
<link rel="stylesheet" href="/static/bizquery/css/index.css">
</head>
<body>
<div class="container" id="index-app">
<div class="center-container">
<span th:text="${employeeId}" style="display: none" ref="employeeIdSpan"></span>
<div>正在访问客户跟踪查询界面,登入的用户为: <span th:text="${employeeName}"></span></div>
<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="目前在跟踪的业务员数量" >{{detail.salespersonCount}}</el-descriptions-item>
<el-descriptions-item label="参保人数" >{{detail.insuredCount}}</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="/static/bizquery/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: '',
insuredCount: ''
},
employeeId: /*[[${employeeId}]]*/ ''
}
},
computed: {
},
created() {
},
mounted() {
},
methods: {
async init () {
},
handleClick(row) {
console.log(row.kunnr)
console.log(row.name1)
const employeeId = this.$refs.employeeIdSpan.innerText;
const params = {
employeeId: employeeId,
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)
})
queryInsuredCountByName(params).then(res => {
if (String(res.code) === '1') {
this.detail.insuredCount = res.data.insuredCount !== '' ? res.data.insuredCount : '无数据';
}
}).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,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,51 @@
server:
port: 8080
spring:
application:
#应用的名称,可选
name: JIALDev
datasource:
dynamic:
primary: master #设置默认的数据源或者数据源组,默认值即为master
strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
datasource:
master:
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-
slave_1:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
url: jdbc:sqlserver://192.168.9.182:1433;databaseName=ecology;Encrypt=false;TrustServerCertificate=true;
username: sa
password: Itcenter110-
druid:
initial-size: 1
max-active: 20
min-idle: 1
max-wait: 60000
autoconfigure:
exclude: org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration #去除Druid自动配置
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
logging:
level:
root: warn
com.JN: 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

@ -0,0 +1,5 @@
spring:
thymeleaf:
mode: HTML
profiles:
active: ss

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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