From dbe3740fba28955b8134839c294cbe3e2ed8def4 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期日, 14 四月 2024 17:06:59 +0800
Subject: [PATCH] 初次提交权限相关功能
---
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java | 76 ++
hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/InterceptorConfig.java | 26
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/LoginUser.java | 94 ++
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/SysMenuService.java | 19
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleService.java | 16
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java | 20
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserService.java | 20
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleMenuController.java | 20
hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java | 0
hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PLCAutoMes.java | 7
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/RedisUtil.java | 220 ++++++
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/WebUtils.java | 30
hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterInfo.java | 0
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownGlassLogic.java | 6
hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterObject.java | 0
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java | 3
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/controller/SysMenuController.java | 39 +
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/MyCorsConfig.java | 46 +
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/AuthenticationEntryPointImpl.java | 29
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleMenuServiceImpl.java | 20
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserRoleMapper.java | 16
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/mapper/SysMenuMapper.java | 19
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMenuMapper.java | 16
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/AccessDeniedHandlerImpl.java | 30
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/FastJsonRedisSerializer.java | 55 +
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMapper.java | 16
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRole.java | 50 +
hangzhoumesParent/common/springsecurity/src/main/resources/application.yml | 25
hangzhoumesParent/moduleService/pom.xml | 11
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUserRole.java | 36 +
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRoleMenu.java | 36 +
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java | 120 +++
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java | 67 +
hangzhoumesParent/common/springsecurity/src/main/resources/mapper/SysMenuMapper.xml | 15
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationMapper.java | 3
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleMenuService.java | 16
hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/InitUtil.java | 256 +++---
hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitInfo.java | 0
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUser.java | 66 +
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/RedisConfig.java | 37 +
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserMapper.java | 16
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java | 53 +
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMapper.xml | 5
hangzhoumesParent/common/pom.xml | 58 -
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserMapper.xml | 5
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingService.java | 28
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserRoleServiceImpl.java | 20
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserRoleService.java | 16
/dev/null | 21
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/entity/SysMenu.java | 82 ++
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMenuMapper.xml | 5
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java | 36 +
hangzhoumesParent/common/springsecurity/pom.xml | 17
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserRoleController.java | 20
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java | 89 ++
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java | 20
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserRoleMapper.xml | 5
57 files changed, 1,856 insertions(+), 221 deletions(-)
diff --git a/hangzhoumesParent/common/pom.xml b/hangzhoumesParent/common/pom.xml
index 874e97e..82e9685 100644
--- a/hangzhoumesParent/common/pom.xml
+++ b/hangzhoumesParent/common/pom.xml
@@ -13,7 +13,7 @@
<packaging>pom</packaging>
<modules>
<module>servicebase</module>
-<!-- <module>springsecurity</module>-->
+ <module>springsecurity</module>
</modules>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -43,6 +43,12 @@
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
+ <version>3.2.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.baomidou</groupId>
+ <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
@@ -98,6 +104,12 @@
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.alibaba</groupId>
+ <artifactId>fastjson</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
@@ -105,28 +117,17 @@
<version>1.1.8</version>
</dependency>
- <!-- 鏁版嵁搴撴枃妗�-->
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>fastjson</artifactId>
- <version>1.2.60</version>
- </dependency>
- <dependency>
- <groupId>org.apache.poi</groupId>
- <artifactId>poi</artifactId>
- <version>3.17</version>
- </dependency>
- <dependency>
- <groupId>org.apache.poi</groupId>
- <artifactId>poi-ooxml</artifactId>
- <version>3.17</version>
- </dependency>
-
<!-- 鏁版嵁搴撹璁℃枃妗g敓鎴愬伐鍏�-->
<dependency>
<groupId>cn.smallbun.screw</groupId>
<artifactId>screw-core</artifactId>
<version>1.0.5</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.alibaba</groupId>
+ <artifactId>fastjson</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<!-- 2.0~2.2 Knife4j 2.0.0 ~ 2.0.6-->
<!-- <dependency>-->
@@ -146,17 +147,6 @@
<version>2.7.0</version>
</dependency>
-
- <!--jwt 椤圭洰鐢熸垚token-->
- <dependency>
- <groupId>com.auth0</groupId>
- <artifactId>java-jwt</artifactId>
- <version>3.10.3</version>
- </dependency>
- <dependency>
- <groupId>org.assertj</groupId>
- <artifactId>assertj-core</artifactId>
- </dependency>
<!--hutool java楠岃瘉鏂规硶绫�-->
<dependency>
<groupId>cn.hutool</groupId>
@@ -174,15 +164,13 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
- <dependency>
- <groupId>org.springframework.session</groupId>
- <artifactId>spring-session-data-redis</artifactId>
- </dependency>
<dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-security</artifactId>
+ <groupId>com.alibaba</groupId>
+ <artifactId>fastjson</artifactId>
+ <version>1.2.33</version>
</dependency>
+
</dependencies>
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/InterceptorConfig.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/InterceptorConfig.java
index 39ffa21..a5ad9af 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/InterceptorConfig.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/InterceptorConfig.java
@@ -2,16 +2,17 @@
import com.mes.common.interceptor.JwtInterceptor;
import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import javax.annotation.Resource;
@Configuration
-
public class InterceptorConfig implements WebMvcConfigurer {
@Resource
private JwtInterceptor jwtInterceptor;
+
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(jwtInterceptor)
@@ -19,11 +20,26 @@
.excludePathPatterns("/user/login",
"/user/register",
"/swagger-resources/**"
- ,"/webjars/**"
- ,"/v2/**"
- ,"/swagger-ui.html/**"
- ,"/swagger-ui.html#/**");
+ , "/webjars/**"
+ , "/v2/**"
+ , "/swagger-ui.html/**"
+ , "/swagger-ui.html#/**");
}
+ @Override
+ public void addCorsMappings(CorsRegistry registry) {
+ // 璁剧疆鍏佽璺ㄥ煙鐨勮矾寰�
+ registry.addMapping("/**")
+ // 璁剧疆鍏佽璺ㄥ煙璇锋眰鐨勫煙鍚�
+// .allowedOriginPatterns("*")
+ // 鏄惁鍏佽cookie
+ .allowCredentials(true)
+ // 璁剧疆鍏佽鐨勮姹傛柟寮�
+ .allowedMethods("GET", "POST", "DELETE", "PUT")
+ // 璁剧疆鍏佽鐨刪eader灞炴��
+ .allowedHeaders("*")
+ // 璺ㄥ煙鍏佽鏃堕棿
+ .maxAge(3600);
+ }
}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/RedisTemplateConfig.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/RedisTemplateConfig.java
deleted file mode 100644
index d5d4756..0000000
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/RedisTemplateConfig.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.mes.common.config;
-
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.PropertyAccessor;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.data.redis.connection.RedisConnectionFactory;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
-import org.springframework.data.redis.serializer.RedisSerializer;
-import org.springframework.data.redis.serializer.StringRedisSerializer;
-
-/**
- * @Author : zhoush
- * @Date: 2024/4/8 16:04
- * @Description:
- */
-@Configuration
-public class RedisTemplateConfig {
- @Bean
- public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
- RedisTemplate<String, Object> template = new RedisTemplate<>();
- RedisSerializer<String> redisSerializer = new StringRedisSerializer();
- Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
- ObjectMapper om = new ObjectMapper();
- om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
- om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
- jackson2JsonRedisSerializer.setObjectMapper(om);
- template.setConnectionFactory(factory);
- //key搴忓垪鍖栨柟寮�
- template.setKeySerializer(redisSerializer);
- //value搴忓垪鍖�
- template.setValueSerializer(jackson2JsonRedisSerializer);
- //value hashmap搴忓垪鍖�
- template.setHashValueSerializer(jackson2JsonRedisSerializer);
- return template;
- }
-}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/SessionConfig.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/SessionConfig.java
deleted file mode 100644
index 84bb05c..0000000
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/SessionConfig.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.mes.common.config;
-
-import com.alibaba.fastjson.support.spring.GenericFastJsonRedisSerializer;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.data.redis.serializer.RedisSerializer;
-
-/**
- * @Author : zhoush
- * @Date: 2024/4/1 13:16
- * @Description:spring session 浣跨敤 json 搴忓垪鍖栨満鍒�
- */
-@Configuration
-public class SessionConfig {
- @Bean
- public RedisSerializer<Object> springSessionDefaultRedisSerializer() {
- return new GenericFastJsonRedisSerializer();
- }
-}
-
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/PLCAutoMes.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PLCAutoMes.java
similarity index 94%
rename from hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/PLCAutoMes.java
rename to hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PLCAutoMes.java
index a21fed9..cd418c5 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/PLCAutoMes.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PLCAutoMes.java
@@ -1,14 +1,11 @@
-package com.mes.common;
+package com.mes.device;
-import com.mes.device.PlcParameterObject;
import com.mes.tools.InitUtil;
import org.springframework.context.annotation.Configuration;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-
-import static com.mes.tools.InitUtil.readAndUpdateWordValues;
public class PLCAutoMes extends Thread {
@@ -66,7 +63,7 @@
// System.out.println(jsonFilePath);
// readAndUpdateWordValues(PlcReadObject);
- readAndUpdateWordValues(PlcMesObject);
+ InitUtil.readAndUpdateWordValues(PlcMesObject);
// readAndUpdateWordValues(PlcframeObject);
// readAndUpdateWordValues(PlcframeObject);
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/device/PlcBitInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitInfo.java
similarity index 100%
rename from hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/device/PlcBitInfo.java
rename to hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitInfo.java
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/device/PlcBitObject.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java
similarity index 100%
rename from hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/device/PlcBitObject.java
rename to hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/device/PlcParameterInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterInfo.java
similarity index 100%
rename from hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/device/PlcParameterInfo.java
rename to hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterInfo.java
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/device/PlcParameterObject.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterObject.java
similarity index 100%
rename from hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/device/PlcParameterObject.java
rename to hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterObject.java
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/ExportToWord.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/ExportToWord.java
deleted file mode 100644
index e380bcc..0000000
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/ExportToWord.java
+++ /dev/null
@@ -1,313 +0,0 @@
-package com.mes.tools;
-
-/**
- * @Author : zhoush
- * @Date: 2024/3/26 8:16
- * @Description:
- */
-import com.alibaba.fastjson.JSONObject;
-import org.apache.poi.xwpf.usermodel.XWPFDocument;
-import org.apache.poi.xwpf.usermodel.XWPFParagraph;
-import org.apache.poi.xwpf.usermodel.XWPFRun;
-import org.apache.poi.xwpf.usermodel.XWPFTable;
-
-import java.io.FileOutputStream;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.text.SimpleDateFormat;
-import java.util.*;
-
-/**
- * @Method: 鏁版嵁搴撹〃缁撴瀯word瀵煎嚭
- * @Description: 鏁版嵁搴撹〃缁撴瀯word瀵煎嚭
- **/
-public class ExportToWord {
-
- // private final String DRIVER = "com.mysql.jdbc.Driver"; //MySQL5.0
- private final String DRIVER = "com.mysql.cj.jdbc.Driver";
- private final String URL = "jdbc:mysql://10.153.19.150:3306/hangzhoumes"+"?serverTimezone=GMT%2B8";
- //鏁版嵁搴撹处鍙�
- private final String USER_NAME = "root";
- //鏁版嵁搴撳瘑鐮�
- private final String PASS_WORD = "beibo.123/";
- //瀵瑰簲鏁版嵁搴� 姝ゅ鏄綘鏈湴瀵瑰簲鐨勬暟鎹簱鍚嶇О
- private final String database = "hangzhoumes";
- //瀵瑰簲杈撳嚭鍦板潃
- private final String reportPath = "E:\\椤圭洰\\椤圭洰鏂囨。\\鏉窞鍒╂潵\\";
-
- // 鍚姩鏂规硶
- public static void main(String[] args) {
-
- try {
- ExportToWord rd = new ExportToWord ();
- rd.report();
- }catch (Exception e){
- System.out.println("寮傚父锛氳嚜琛屽鐞嗘垨鑰呰仈绯绘垜閮介様浠�.");
- e.printStackTrace();
- }
-
- }
-
-
- Connection conn = null;
- PreparedStatement pst = null;
- ResultSet rs = null;
-
- // 鑾峰彇鏌ヨ鏁版嵁
- public Map<String,List<TableColumn>> getData() throws Exception{
-
- System.out.println("鏁版嵁鐢熸垚涓紝璇风◢绛�...");
- Map<String,List<TableColumn>> map = new HashMap<>();
-
- List<Table> tables = getTables(database);
-
- for (Table table : tables) {
- List<TableColumn> columns = getColumns(database,table.getTableName());
- map.put(table.getTableName(),columns);
- }
-
- return map;
-
- }
-
-
- // 鑾峰彇琛ㄥ瓧娈典俊鎭�
- public List<TableColumn> getColumns(String database,String tableName) throws Exception{
-
- String sql = "select column_name,column_comment,column_type,is_nullable, column_key from information_schema.columns where table_schema=? and table_name=? ";// group by column_name
- ResultSet rs = getConn(database,tableName,sql);
-
- List<TableColumn> tableColumns = new ArrayList<>();
-
- while (rs.next()){
-
- TableColumn tc = new TableColumn();
- tc.setTableName(tableName);
- tc.setColumnName(rs.getString("column_name"));
- tc.setColumnType(rs.getString("column_type"));
- tc.setColumnKey(rs.getString("column_key"));
- tc.setIsNullable(rs.getString("is_nullable"));
- tc.setColumnComment(rs.getString("column_comment"));
- tableColumns.add(tc);
-
- }
-
- releaseConn();
-
- return tableColumns;
-
- }
-
-
- // 鑾峰彇鎵�鏈夎〃
- public List<Table> getTables(String database) throws Exception{
-
- String sql = "select table_name,table_comment from information_schema.tables where table_schema=?";
- ResultSet rs = getConn(database, "",sql);
-
- List<Table> tables = new ArrayList<>();
- while(rs.next()){
- Table table = new Table();
- table.setTableName(rs.getString( "table_name"));
- table.setTableCommont(rs.getString("table_comment"));
- tables.add(table);
- }
-
- releaseConn();
- return tables;
-
- }
-
- // 杩炴帴鏁版嵁搴�
- private ResultSet getConn(String dataBase,String tableName,String sql){
-
- try{
-
- Class.forName(DRIVER);
- conn = DriverManager.getConnection(URL,USER_NAME,PASS_WORD);
- pst = conn.prepareStatement(sql);
- pst.setString(1,dataBase);
- if(!"".equals(tableName)){
- pst.setString(2,tableName);
- }
- rs = pst.executeQuery();
- return rs;
-
- }catch (Exception e){
- e.printStackTrace();
- }
-
- return null;
-
- }
-
- // 閲婃斁杩炴帴
- private void releaseConn(){
- try{
- if(rs != null ){
- rs.close();
- }
- if(pst != null){
- pst.close();
- }
- if(conn != null){
- conn.close();
- }
- }catch (Exception e){
- e.printStackTrace();
- }
- }
-
-
- // 瀵煎嚭鏁版嵁
- public void report() throws Exception{
-
- Map<String, List<TableColumn>> data = this.getData(); // 琛ㄥ悕锛氳〃浣�
- List<Table> tables = this.getTables(this.database); // 琛ㄤ綋(鍒楀悕銆佺被鍨嬨�佹敞閲�)
- Map<String,String> tableMap = new HashMap<>(); // 琛ㄥ悕:涓枃鍚�
-
- JSONObject json = new JSONObject((HashMap)data);
-
- for (Table table : tables) {
- tableMap.put(table.getTableName(),table.getTableCommont());
- }
-
- // 鏋勫缓琛ㄦ牸鏁版嵁
- XWPFDocument document = new XWPFDocument();
-
- Integer i = 1;
- for (String tableName : data.keySet()) {
-
- XWPFParagraph paragraph = document.createParagraph(); // 鍒涘缓鏍囬瀵硅薄
- XWPFRun run = paragraph.createRun(); // 鍒涘缓鏂囨湰瀵硅薄
- run.setText((i+"銆�"+tableName+" "+tableMap.get(tableName))); // 鏍囬鍚嶇О
- run.setFontSize(14); // 瀛椾綋澶у皬
- run.setBold(true); // 瀛椾綋鍔犵矖
-
- int j = 0;
- XWPFTable table = document.createTable(data.get(tableName).size()+1,5);
- // 绗竴琛�
- table.setCellMargins(50,400,50,400);
- table.getRow(j).getCell(0).setText("瀛楁鍚嶇О");
- table.getRow(j).getCell(1).setText("瀛楁绫诲瀷");
- table.getRow(j).getCell(2).setText("绾︽潫");
- table.getRow(j).getCell(3).setText("涓虹┖");
- table.getRow(j).getCell(4).setText("瀛楁鍚箟");
- j++;
-
- for (TableColumn tableColumn : data.get(tableName)) {
-
- table.getRow(j).getCell(0).setText(tableColumn.getColumnName());
- table.getRow(j).getCell(1).setText(tableColumn.getColumnType());
- table.getRow(j).getCell(2).setText(tableColumn.getColumnKey());
- table.getRow(j).getCell(3).setText(tableColumn.getIsNullable());
- table.getRow(j).getCell(4).setText(tableColumn.getColumnComment());
- j++;
-
- }
- i++;
- }
-
- // 鏂囨。杈撳嚭
- FileOutputStream out = new FileOutputStream(reportPath + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()).toString()+"_"+database +".docx");
- document.write(out);
- out.close();
- System.out.println("Word鐢熸垚瀹屾垚!!!");
-
- }
-
- // 琛�
- class Table{
-
- private String tableName;
-
- private String tableCommont;
-
- public String getTableName() {
- return tableName;
- }
-
- public void setTableName(String tableName) {
- this.tableName = tableName;
- }
-
- public String getTableCommont() {
- return tableCommont;
- }
-
- public void setTableCommont(String tableCommont) {
- this.tableCommont = tableCommont;
- }
-
- }
-
- // 琛ㄥ垪淇℃伅
- class TableColumn{
- // 琛ㄥ悕
- private String tableName;
- // 瀛楁鍚�
- private String columnName;
- // 瀛楁绫诲瀷
- private String columnType;
- // 瀛楁娉ㄩ噴
- private String columnComment;
- // 鍙惁涓虹┖
- private String isNullable;
- // 绾︽潫
- private String columnKey;
-
- public String getTableName() {
- return tableName;
- }
-
- public void setTableName(String tableName) {
- this.tableName = tableName;
- }
-
- public String getColumnName() {
- return columnName;
- }
-
- public void setColumnName(String columnName) {
- this.columnName = columnName;
- }
-
- public String getColumnType() {
- return columnType;
- }
-
- public void setColumnType(String columnType) {
- this.columnType = columnType;
- }
-
- public String getColumnComment() {
- return columnComment;
- }
-
- public void setColumnComment(String columnComment) {
- this.columnComment = columnComment;
- }
-
- public String getIsNullable() {
- return isNullable;
- }
-
- public void setIsNullable(String isNullable) {
- this.isNullable = isNullable;
- }
-
- public String getColumnKey() {
- return columnKey;
- }
-
- public void setColumnKey(String columnKey) {
- this.columnKey = columnKey;
- }
-
- }
-
-
-}
-
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/InitUtil.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/InitUtil.java
similarity index 99%
rename from hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/InitUtil.java
rename to hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/InitUtil.java
index 7cd4205..8888513 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/InitUtil.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/InitUtil.java
@@ -1,128 +1,128 @@
-package com.mes.tools;
-
-import cn.hutool.json.JSONArray;
-import cn.hutool.json.JSONObject;
-import com.mes.device.PlcBitInfo;
-import com.mes.device.PlcBitObject;
-import com.mes.device.PlcParameterInfo;
-import com.mes.device.PlcParameterObject;
-
-import java.io.BufferedReader;
-import java.io.FileReader;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-public class InitUtil {
- //鍒濆鍖杦ord
- public static PlcParameterObject initword(String jsonFilePath) {
- try {
- FileReader fileReader = new FileReader(jsonFilePath);
- BufferedReader bufferedReader = new BufferedReader(fileReader);
-
- StringBuilder content = new StringBuilder();
- String line;
-
- while ((line = bufferedReader.readLine()) != null) {
- content.append(line);
- }
-
- bufferedReader.close();
- fileReader.close();
-
- JSONObject jsonfileobj = new JSONObject(content.toString());
- JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor");
- PlcParameterObject plcParameterObject = new PlcParameterObject();
- plcParameterObject.setPlcAddressBegin(jsonfileobj.getStr("plcAddressBegin"));//璁剧疆璧峰浣嶅湴鍧�
- plcParameterObject.setPlcAddressLength(Integer.valueOf(jsonfileobj.getStr("plcAddressLenght")));//璁剧疆鍦板潃闀垮害
-
- for (int i = 0; i < jsonArray.size(); i++) {
- JSONObject parameterObj = jsonArray.getJSONObject(i);
- PlcParameterInfo plcParameterInfo = new PlcParameterInfo(jsonfileobj.getStr("plcAddressBegin")); //鍙傛暟瀹炰緥
- String codeid = parameterObj.getStr("codeId");
- plcParameterInfo.setCodeId(codeid);
- plcParameterInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex")));
- //plcParameterInfo.setRatio(Integer.valueOf(parameterObj.getStr("ratio")));
- plcParameterInfo.setAddressLength(Integer.valueOf(parameterObj.getStr("addressLenght")));
- plcParameterInfo.setUnit(parameterObj.getStr("unit"));
- plcParameterObject.addPlcParameter(plcParameterInfo);
- }
- // byte[] getplcvlues = {0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02};
- // byte[] getplcvlues = S7control.getinstance().ReadByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength());
- // plcParameterObject.setPlcParameterList(getplcvlues);
-
- return plcParameterObject;
- } catch (IOException e) {
- e.printStackTrace();
- }
- return null;
- }
-
- //鍒濆鍖朾it
- public static PlcBitObject initbit(String jsonFilePath) {
- PlcBitObject plcBitObject = new PlcBitObject();
-
- try {
- FileReader fileReader = new FileReader(jsonFilePath);
- BufferedReader bufferedReader = new BufferedReader(fileReader);
-
- StringBuilder content = new StringBuilder();
- String line;
-
- while ((line = bufferedReader.readLine()) != null) {
- content.append(line);
- }
-
- bufferedReader.close();
- fileReader.close();
-
- JSONObject jsonfileobj = new JSONObject(content.toString());
- JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor");
- plcBitObject.setPlcAddressBegin(jsonfileobj.getStr("plcAddressBegin"));//璁剧疆璧峰浣嶅湴鍧�
- plcBitObject.setPlcAddressLength(Integer.valueOf(jsonfileobj.getStr("plcAddressLenght")));//璁剧疆鍦板潃闀垮害
-
- for (int i = 0; i < jsonArray.size(); i++) {
- JSONObject parameterObj = jsonArray.getJSONObject(i);
-
- PlcBitInfo plcBitInfo = new PlcBitInfo(jsonfileobj.getStr("plcAddressBegin")); //鍙傛暟瀹炰緥
- String codeid = parameterObj.getStr("codeId");
- plcBitInfo.setCodeId(codeid);
- plcBitInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex")));
-
- plcBitObject.addPlcBit(plcBitInfo);
- }
- System.out.println("");
- } catch (IOException e) {
- e.printStackTrace();
- }
- //Boolean[] values1 = { false, true, true, true, false, false, true, false,
- // false, true ,true };
- // List<Boolean> getplcvlues = new ArrayList<>(Arrays.asList(values1));
-
-// List<Boolean> getplcvlues = S7control.getinstance().ReadBits(plcBitObject.getPlcAddressBegin(), plcBitObject.getPlcAddressLength());
-// plcBitObject.setPlcBitList(getplcvlues);
- return plcBitObject;
- }
-
-//
- public static void readAndUpdateBitValues(PlcBitObject plcBitObject) {
-
- Boolean[] values1 = { false, true, true, true, false, false, true, false,
- false, true ,true };
- List<Boolean> getplcvlues = new ArrayList<>(Arrays.asList(values1));
- //List<Boolean> getplcvlues = S7control.getinstance().ReadBits(plcBitObject.getPlcAddressBegin(), plcBitObject.getPlcAddressLength());
- plcBitObject.setPlcBitList(getplcvlues);
- }
-
-
- public static void readAndUpdateWordValues(PlcParameterObject plcParameterObject) {
-
- byte[] getplcvlues = {0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03,0x03};
- // byte[] getplcvlues = MockS7PLC.getInstance().readByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength());
- plcParameterObject.setPlcParameterList(getplcvlues);
- }
-
-
-
-}
+package com.mes.tools;
+
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import com.mes.device.PlcBitInfo;
+import com.mes.device.PlcBitObject;
+import com.mes.device.PlcParameterInfo;
+import com.mes.device.PlcParameterObject;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class InitUtil {
+ //鍒濆鍖杦ord
+ public static PlcParameterObject initword(String jsonFilePath) {
+ try {
+ FileReader fileReader = new FileReader(jsonFilePath);
+ BufferedReader bufferedReader = new BufferedReader(fileReader);
+
+ StringBuilder content = new StringBuilder();
+ String line;
+
+ while ((line = bufferedReader.readLine()) != null) {
+ content.append(line);
+ }
+
+ bufferedReader.close();
+ fileReader.close();
+
+ JSONObject jsonfileobj = new JSONObject(content.toString());
+ JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor");
+ PlcParameterObject plcParameterObject = new PlcParameterObject();
+ plcParameterObject.setPlcAddressBegin(jsonfileobj.getStr("plcAddressBegin"));//璁剧疆璧峰浣嶅湴鍧�
+ plcParameterObject.setPlcAddressLength(Integer.valueOf(jsonfileobj.getStr("plcAddressLenght")));//璁剧疆鍦板潃闀垮害
+
+ for (int i = 0; i < jsonArray.size(); i++) {
+ JSONObject parameterObj = jsonArray.getJSONObject(i);
+ PlcParameterInfo plcParameterInfo = new PlcParameterInfo(jsonfileobj.getStr("plcAddressBegin")); //鍙傛暟瀹炰緥
+ String codeid = parameterObj.getStr("codeId");
+ plcParameterInfo.setCodeId(codeid);
+ plcParameterInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex")));
+ //plcParameterInfo.setRatio(Integer.valueOf(parameterObj.getStr("ratio")));
+ plcParameterInfo.setAddressLength(Integer.valueOf(parameterObj.getStr("addressLenght")));
+ plcParameterInfo.setUnit(parameterObj.getStr("unit"));
+ plcParameterObject.addPlcParameter(plcParameterInfo);
+ }
+ // byte[] getplcvlues = {0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02};
+ // byte[] getplcvlues = S7control.getinstance().ReadByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength());
+ // plcParameterObject.setPlcParameterList(getplcvlues);
+
+ return plcParameterObject;
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ //鍒濆鍖朾it
+ public static PlcBitObject initbit(String jsonFilePath) {
+ PlcBitObject plcBitObject = new PlcBitObject();
+
+ try {
+ FileReader fileReader = new FileReader(jsonFilePath);
+ BufferedReader bufferedReader = new BufferedReader(fileReader);
+
+ StringBuilder content = new StringBuilder();
+ String line;
+
+ while ((line = bufferedReader.readLine()) != null) {
+ content.append(line);
+ }
+
+ bufferedReader.close();
+ fileReader.close();
+
+ JSONObject jsonfileobj = new JSONObject(content.toString());
+ JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor");
+ plcBitObject.setPlcAddressBegin(jsonfileobj.getStr("plcAddressBegin"));//璁剧疆璧峰浣嶅湴鍧�
+ plcBitObject.setPlcAddressLength(Integer.valueOf(jsonfileobj.getStr("plcAddressLenght")));//璁剧疆鍦板潃闀垮害
+
+ for (int i = 0; i < jsonArray.size(); i++) {
+ JSONObject parameterObj = jsonArray.getJSONObject(i);
+
+ PlcBitInfo plcBitInfo = new PlcBitInfo(jsonfileobj.getStr("plcAddressBegin")); //鍙傛暟瀹炰緥
+ String codeid = parameterObj.getStr("codeId");
+ plcBitInfo.setCodeId(codeid);
+ plcBitInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex")));
+
+ plcBitObject.addPlcBit(plcBitInfo);
+ }
+ System.out.println("");
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ //Boolean[] values1 = { false, true, true, true, false, false, true, false,
+ // false, true ,true };
+ // List<Boolean> getplcvlues = new ArrayList<>(Arrays.asList(values1));
+
+// List<Boolean> getplcvlues = S7control.getinstance().ReadBits(plcBitObject.getPlcAddressBegin(), plcBitObject.getPlcAddressLength());
+// plcBitObject.setPlcBitList(getplcvlues);
+ return plcBitObject;
+ }
+
+//
+ public static void readAndUpdateBitValues(PlcBitObject plcBitObject) {
+
+ Boolean[] values1 = { false, true, true, true, false, false, true, false,
+ false, true ,true };
+ List<Boolean> getplcvlues = new ArrayList<>(Arrays.asList(values1));
+ //List<Boolean> getplcvlues = S7control.getinstance().ReadBits(plcBitObject.getPlcAddressBegin(), plcBitObject.getPlcAddressLength());
+ plcBitObject.setPlcBitList(getplcvlues);
+ }
+
+
+ public static void readAndUpdateWordValues(PlcParameterObject plcParameterObject) {
+
+ byte[] getplcvlues = {0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03,0x03};
+ // byte[] getplcvlues = MockS7PLC.getInstance().readByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength());
+ plcParameterObject.setPlcParameterList(getplcvlues);
+ }
+
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/TokenTools.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/TokenTools.java
deleted file mode 100644
index bb35843..0000000
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/TokenTools.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.mes.tools;
-
-import cn.hutool.core.date.DateUtil;
-import com.auth0.jwt.JWT;
-import com.auth0.jwt.algorithms.Algorithm;
-
-import java.util.Date;
-
-public class TokenTools {
-
- /**
- * 鐢熸垚token
- *
- * @return
- */
- public static String getToken(String userid, String sign) {
- return JWT.create().withAudience(userid) // 灏� user id 淇濆瓨鍒� token 閲岄潰,浣滀负杞借嵎
- .withExpiresAt(DateUtil.offsetHour(new Date(), 24)) // 2灏忔椂鍚巘oken杩囨湡
- .sign(Algorithm.HMAC256(sign)); // 浠� password 浣滀负 token 鐨勫瘑閽�
-
- }
-}
diff --git a/hangzhoumesParent/common/springsecurity/pom.xml b/hangzhoumesParent/common/springsecurity/pom.xml
index cca1425..f4e6eed 100644
--- a/hangzhoumesParent/common/springsecurity/pom.xml
+++ b/hangzhoumesParent/common/springsecurity/pom.xml
@@ -23,15 +23,16 @@
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- Spring Security渚濊禆 -->
-<!-- <dependency>-->
-<!-- <groupId>org.springframework.boot</groupId>-->
-<!-- <artifactId>spring-boot-starter-security</artifactId>-->
-<!-- </dependency>-->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-security</artifactId>
+ </dependency>
-<!-- <dependency>-->
-<!-- <groupId>io.jsonwebtoken</groupId>-->
-<!-- <artifactId>jjwt</artifactId>-->
-<!-- </dependency>-->
+ <dependency>
+ <groupId>io.jsonwebtoken</groupId>
+ <artifactId>jjwt</artifactId>
+ <version>0.9.0</version>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/MyCorsConfig.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/MyCorsConfig.java
new file mode 100644
index 0000000..521c147
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/MyCorsConfig.java
@@ -0,0 +1,46 @@
+package com.mes.common.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.reactive.CorsWebFilter;
+import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/3/25 14:13
+ * @Description:
+ */
+@Configuration
+public class MyCorsConfig {
+
+ @Bean
+ public WebMvcConfigurer corsConfigurer() {
+ return new WebMvcConfigurer() {
+ @Override
+ public void addCorsMappings(CorsRegistry registry) {
+ registry.addMapping("/**");
+ }
+ };
+ }
+
+ @Bean
+ public CorsWebFilter corsWebFilter() {
+ UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+
+ CorsConfiguration corsConfiguration = new CorsConfiguration();
+
+ //1銆侀厤缃法鍩�
+ corsConfiguration.addAllowedHeader("*");
+ corsConfiguration.addAllowedMethod("*");
+ corsConfiguration.addAllowedOrigin("*");
+ corsConfiguration.setAllowCredentials(true);
+
+ source.registerCorsConfiguration("/**", corsConfiguration);
+ return new CorsWebFilter(source);
+ }
+
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/RedisConfig.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/RedisConfig.java
new file mode 100644
index 0000000..e469272
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/RedisConfig.java
@@ -0,0 +1,37 @@
+package com.mes.common.config;
+
+import com.mes.common.utils.FastJsonRedisSerializer;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/9 19:13
+ * @Description:
+ */
+@Configuration
+public class RedisConfig {
+
+ @Bean
+ @SuppressWarnings(value = {"unchecked", "rawtypes"})
+ public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
+ RedisTemplate<Object, Object> template = new RedisTemplate<>();
+ template.setConnectionFactory(connectionFactory);
+
+ FastJsonRedisSerializer serializer = new FastJsonRedisSerializer(Object.class);
+
+ // 浣跨敤StringRedisSerializer鏉ュ簭鍒楀寲鍜屽弽搴忓垪鍖杛edis鐨刱ey鍊�
+ template.setKeySerializer(new StringRedisSerializer());
+ template.setValueSerializer(serializer);
+
+ // Hash鐨刱ey涔熼噰鐢⊿tringRedisSerializer鐨勫簭鍒楀寲鏂瑰紡
+ template.setHashKeySerializer(new StringRedisSerializer());
+ template.setHashValueSerializer(serializer);
+
+ template.afterPropertiesSet();
+ return template;
+ }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java
new file mode 100644
index 0000000..e4a543e
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java
@@ -0,0 +1,53 @@
+package com.mes.common.config;
+
+
+import com.mes.common.filter.JwtAuthenticationTokenFilter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+import org.springframework.security.config.http.SessionCreationPolicy;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.security.crypto.password.PasswordEncoder;
+
+@Configuration
+//@EnableWebSecurity
+@EnableGlobalMethodSecurity(prePostEnabled = true)
+public class TokenWebSecurityConfig extends WebSecurityConfigurerAdapter {
+ @Autowired
+ private JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter;
+
+ @Bean
+ public PasswordEncoder passwordEncoder() {
+ return new BCryptPasswordEncoder();
+ }
+
+ /**
+ * 閰嶇疆杩囨护瑙勫垯
+ */
+ @Override
+ protected void configure(HttpSecurity http) throws Exception {
+ http
+ //鍏抽棴csrf
+ .csrf().disable()
+ //涓嶉�氳繃Session鑾峰彇SecurityContext
+ .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
+ .and()
+ .authorizeRequests()
+ // 瀵逛簬鐧诲綍鎺ュ彛 鍏佽鍖垮悕璁块棶
+ .antMatchers("/userinfo/login").anonymous()
+ .antMatchers("/hello").permitAll()
+ // 闄や笂闈㈠鐨勬墍鏈夎姹傚叏閮ㄩ渶瑕侀壌鏉冭璇�
+ .anyRequest().permitAll();
+// http.addFilterBefore(jwtAuthenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);
+ }
+
+ @Bean
+ @Override
+ public AuthenticationManager authenticationManagerBean() throws Exception {
+ return super.authenticationManagerBean();
+ }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java
new file mode 100644
index 0000000..5be6d66
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java
@@ -0,0 +1,76 @@
+package com.mes.common.filter;
+
+import com.mes.common.utils.JwtUtil;
+import com.mes.common.utils.RedisUtil;
+import com.mes.menu.mapper.SysMenuMapper;
+import com.mes.userinfo.entity.LoginUser;
+import io.jsonwebtoken.Claims;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.stereotype.Component;
+import org.springframework.util.StringUtils;
+import org.springframework.web.filter.OncePerRequestFilter;
+
+import javax.annotation.Resource;
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/10 9:42
+ * @Description:
+ */
+@Component
+public class JwtAuthenticationTokenFilter extends OncePerRequestFilter {
+ // 姝ゅ瑙i噴涓轰粈涔堜笉鍘诲疄鐜癋ilter鎺ュ彛锛屽洜涓哄湪鏌愪簺鎯呭喌涓嬩細杩囨护涓ゆ锛屾墽琛屼袱娆ilter閲岄潰鐨勬柟娉曪紝鎵�浠ユ垜浠�夋嫨缁ф壙SpringSecurity涓殑OncePerRequestFilter
+ @Autowired
+ private RedisUtil redisUtil;
+
+ @Resource
+ private SysMenuMapper menuMapper;
+
+ @Override
+ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
+ //鑾峰彇token
+ String token = request.getHeader("token");
+ if (!StringUtils.hasText(token)) {
+ //鏀捐
+ filterChain.doFilter(request, response);
+ return; // 姝ゅ鍔犱笂return濂藉鏄悗闈㈢粨鏋滆繑鍥炵殑鏃跺�欏氨涓嶄細鍐嶈蛋涓�閬嶆杩囨护鍣ㄧ殑鏂规硶浜�
+ }
+ //瑙f瀽token
+ String userid;
+ try {
+ Claims claims = JwtUtil.parseJWT(token);
+ userid = claims.getSubject();
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("token闈炴硶");
+ }
+ //浠巖edis涓幏鍙栫敤鎴蜂俊鎭�
+ String redisKey = "login:" + userid;
+ LoginUser loginUser = redisUtil.getCacheObject(redisKey);
+ if (Objects.isNull(loginUser)) {
+ throw new RuntimeException("鐢ㄦ埛鏈櫥褰�");
+ }
+ //瀛樺叆SecurityContextHolder锛屼互渚涘悗闈㈢殑杩囨护鍣ㄤ娇鐢�
+ List<String> permissionKeyList = menuMapper.selectPermsByUserId(Long.parseLong(userid));
+ List<GrantedAuthority> authorities = permissionKeyList.stream().
+ map(SimpleGrantedAuthority::new)
+ .collect(Collectors.toList());
+ UsernamePasswordAuthenticationToken authenticationToken =
+ new UsernamePasswordAuthenticationToken(loginUser, null, authorities);
+ SecurityContextHolder.getContext().setAuthentication(authenticationToken);
+ //鏀捐
+ filterChain.doFilter(request, response);
+ }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/AccessDeniedHandlerImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/AccessDeniedHandlerImpl.java
new file mode 100644
index 0000000..302ff52
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/AccessDeniedHandlerImpl.java
@@ -0,0 +1,30 @@
+package com.mes.common.handler;
+
+import com.alibaba.fastjson.JSON;
+import com.mes.common.utils.WebUtils;
+import com.mes.utils.Result;
+import org.springframework.http.HttpStatus;
+import org.springframework.security.access.AccessDeniedException;
+import org.springframework.security.web.access.AccessDeniedHandler;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/12 10:38
+ * @Description:
+ */
+@Component
+public class AccessDeniedHandlerImpl implements AccessDeniedHandler {
+ @Override
+ public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) throws IOException, ServletException {
+ Result result = Result.error(HttpStatus.FORBIDDEN.value(), "鏉冮檺涓嶈冻");
+ String json = JSON.toJSONString(result);
+ WebUtils.renderString(response, json);
+
+ }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/AuthenticationEntryPointImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/AuthenticationEntryPointImpl.java
new file mode 100644
index 0000000..6cf146f
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/AuthenticationEntryPointImpl.java
@@ -0,0 +1,29 @@
+package com.mes.common.handler;
+
+import com.alibaba.fastjson.JSON;
+import com.mes.common.utils.WebUtils;
+import com.mes.utils.Result;
+import org.springframework.http.HttpStatus;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.web.AuthenticationEntryPoint;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/12 10:38
+ * @Description:
+ */
+@Component
+public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint {
+ @Override
+ public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException {
+ Result result = Result.error(HttpStatus.UNAUTHORIZED.value(), "璁よ瘉澶辫触璇烽噸鏂扮櫥褰�");
+ String json = JSON.toJSONString(result);
+ WebUtils.renderString(response, json);
+ }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/FastJsonRedisSerializer.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/FastJsonRedisSerializer.java
new file mode 100644
index 0000000..f8ab417
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/FastJsonRedisSerializer.java
@@ -0,0 +1,55 @@
+package com.mes.common.utils;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.parser.ParserConfig;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.fasterxml.jackson.databind.JavaType;
+import com.fasterxml.jackson.databind.type.TypeFactory;
+import org.springframework.data.redis.serializer.RedisSerializer;
+import org.springframework.data.redis.serializer.SerializationException;
+
+import java.nio.charset.Charset;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/11 15:28
+ * @Description:
+ */
+public class FastJsonRedisSerializer<T> implements RedisSerializer<T> {
+
+ public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
+
+ private Class<T> clazz;
+
+ static {
+ ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+ }
+
+ public FastJsonRedisSerializer(Class<T> clazz) {
+ super();
+ this.clazz = clazz;
+ }
+
+ @Override
+ public byte[] serialize(T t) throws SerializationException {
+ if (t == null) {
+ return new byte[0];
+ }
+ return JSON.toJSONString(t, SerializerFeature.WriteClassName).getBytes(DEFAULT_CHARSET);
+ }
+
+ @Override
+ public T deserialize(byte[] bytes) throws SerializationException {
+ if (bytes == null || bytes.length <= 0) {
+ return null;
+ }
+ String str = new String(bytes, DEFAULT_CHARSET);
+
+ return JSON.parseObject(str, clazz);
+ }
+
+
+ protected JavaType getJavaType(Class<?> clazz) {
+ return TypeFactory.defaultInstance().constructType(clazz);
+ }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java
new file mode 100644
index 0000000..8c8f0d9
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java
@@ -0,0 +1,120 @@
+package com.mes.common.utils;
+
+
+import io.jsonwebtoken.Claims;
+import io.jsonwebtoken.JwtBuilder;
+import io.jsonwebtoken.Jwts;
+import io.jsonwebtoken.SignatureAlgorithm;
+
+import javax.crypto.SecretKey;
+import javax.crypto.spec.SecretKeySpec;
+import java.util.Base64;
+import java.util.Date;
+import java.util.UUID;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/9 19:15
+ * @Description:
+ */
+public class JwtUtil {
+
+ //鏈夋晥鏈熶负
+ public static final Long JWT_TTL = 60 * 60 * 1000L;// 60 * 60 *1000 涓�涓皬鏃�
+ //璁剧疆绉橀挜鏄庢枃
+ public static final String JWT_KEY = "sangeng";
+
+ public static String getUUID() {
+ String token = UUID.randomUUID().toString().replaceAll("-", "");
+ return token;
+ }
+
+ /**
+ * 鐢熸垚jtw
+ *
+ * @param subject token涓瀛樻斁鐨勬暟鎹紙json鏍煎紡锛�
+ * @return
+ */
+ public static String createJWT(String subject) {
+ JwtBuilder builder = getJwtBuilder(subject, null, getUUID());// 璁剧疆杩囨湡鏃堕棿
+ return builder.compact();
+ }
+
+ /**
+ * 鐢熸垚jtw
+ *
+ * @param subject token涓瀛樻斁鐨勬暟鎹紙json鏍煎紡锛�
+ * @param ttlMillis token瓒呮椂鏃堕棿
+ * @return
+ */
+ public static String createJWT(String subject, Long ttlMillis) {
+ JwtBuilder builder = getJwtBuilder(subject, ttlMillis, getUUID());// 璁剧疆杩囨湡鏃堕棿
+ return builder.compact();
+ }
+
+ private static JwtBuilder getJwtBuilder(String subject, Long ttlMillis, String uuid) {
+ SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
+ SecretKey secretKey = generalKey();
+ long nowMillis = System.currentTimeMillis();
+ Date now = new Date(nowMillis);
+ if (ttlMillis == null) {
+ ttlMillis = JwtUtil.JWT_TTL;
+ }
+ long expMillis = nowMillis + ttlMillis;
+ Date expDate = new Date(expMillis);
+ return Jwts.builder()
+ .setId(uuid) //鍞竴鐨処D
+ .setSubject(subject) // 涓婚 鍙互鏄疛SON鏁版嵁
+ .setIssuer("sg") // 绛惧彂鑰�
+ .setIssuedAt(now) // 绛惧彂鏃堕棿
+ .signWith(signatureAlgorithm, secretKey) //浣跨敤HS256瀵圭О鍔犲瘑绠楁硶绛惧悕, 绗簩涓弬鏁颁负绉橀挜
+ .setExpiration(expDate);
+ }
+
+ /**
+ * 鍒涘缓token
+ *
+ * @param id
+ * @param subject
+ * @param ttlMillis
+ * @return
+ */
+ public static String createJWT(String id, String subject, Long ttlMillis) {
+ JwtBuilder builder = getJwtBuilder(subject, ttlMillis, id);// 璁剧疆杩囨湡鏃堕棿
+ return builder.compact();
+ }
+
+ public static void main(String[] args) throws Exception {
+ String token = "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJjYWM2ZDVhZi1mNjVlLTQ0MDAtYjcxMi0zYWEwOGIyOTIwYjQiLCJzdWIiOiJzZyIsImlzcyI6InNnIiwiaWF0IjoxNjM4MTA2NzEyLCJleHAiOjE2MzgxMTAzMTJ9.JVsSbkP94wuczb4QryQbAke3ysBDIL5ou8fWsbt_ebg";
+ Claims claims = parseJWT(token);
+ System.out.println(claims);
+ }
+
+ /**
+ * 鐢熸垚鍔犲瘑鍚庣殑绉橀挜 secretKey
+ *
+ * @return
+ */
+ public static SecretKey generalKey() {
+ byte[] encodedKey = Base64.getDecoder().decode(JwtUtil.JWT_KEY);
+ SecretKey key = new SecretKeySpec(encodedKey, 0, encodedKey.length, "AES");
+ return key;
+ }
+
+ /**
+ * 瑙f瀽
+ *
+ * @param jwt
+ * @return
+ * @throws Exception
+ */
+ public static Claims parseJWT(String jwt) throws Exception {
+ SecretKey secretKey = generalKey();
+ return Jwts.parser()
+ .setSigningKey(secretKey)
+ .parseClaimsJws(jwt)
+ .getBody();
+ }
+
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/RedisUtil.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/RedisUtil.java
new file mode 100644
index 0000000..e097010
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/RedisUtil.java
@@ -0,0 +1,220 @@
+package com.mes.common.utils;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.BoundSetOperations;
+import org.springframework.data.redis.core.HashOperations;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.stereotype.Component;
+
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * spring redis 宸ュ叿绫�
+ **/
+@Component
+public class RedisUtil {
+ @Autowired
+ public RedisTemplate redisTemplate;
+
+ /**
+ * 缂撳瓨鍩烘湰鐨勫璞★紝Integer銆丼tring銆佸疄浣撶被绛�
+ *
+ * @param key 缂撳瓨鐨勯敭鍊�
+ * @param value 缂撳瓨鐨勫��
+ */
+ public <T> void setCacheObject(final String key, final T value) {
+ redisTemplate.opsForValue().set(key, value);
+ }
+
+ /**
+ * 缂撳瓨鍩烘湰鐨勫璞★紝Integer銆丼tring銆佸疄浣撶被绛�
+ *
+ * @param key 缂撳瓨鐨勯敭鍊�
+ * @param value 缂撳瓨鐨勫��
+ * @param timeout 鏃堕棿
+ * @param timeUnit 鏃堕棿棰楃矑搴�
+ */
+ public <T> void setCacheObject(final String key, final T value, final Integer timeout, final TimeUnit timeUnit) {
+ redisTemplate.opsForValue().set(key, value, timeout, timeUnit);
+ }
+
+ /**
+ * 璁剧疆鏈夋晥鏃堕棿
+ *
+ * @param key Redis閿�
+ * @param timeout 瓒呮椂鏃堕棿
+ * @return true=璁剧疆鎴愬姛锛沠alse=璁剧疆澶辫触
+ */
+ public boolean expire(final String key, final long timeout) {
+ return expire(key, timeout, TimeUnit.SECONDS);
+ }
+
+ /**
+ * 璁剧疆鏈夋晥鏃堕棿
+ *
+ * @param key Redis閿�
+ * @param timeout 瓒呮椂鏃堕棿
+ * @param unit 鏃堕棿鍗曚綅
+ * @return true=璁剧疆鎴愬姛锛沠alse=璁剧疆澶辫触
+ */
+ public boolean expire(final String key, final long timeout, final TimeUnit unit) {
+ return redisTemplate.expire(key, timeout, unit);
+ }
+
+ /**
+ * 鑾峰緱缂撳瓨鐨勫熀鏈璞°��
+ *
+ * @param key 缂撳瓨閿��
+ * @return 缂撳瓨閿�煎搴旂殑鏁版嵁
+ */
+ public <T> T getCacheObject(final String key) {
+ ValueOperations<String, T> operation = redisTemplate.opsForValue();
+ return operation.get(key);
+ }
+
+ /**
+ * 鍒犻櫎鍗曚釜瀵硅薄
+ *
+ * @param key
+ */
+ public boolean deleteObject(final String key) {
+ return redisTemplate.delete(key);
+ }
+
+ /**
+ * 鍒犻櫎闆嗗悎瀵硅薄
+ *
+ * @param collection 澶氫釜瀵硅薄
+ * @return
+ */
+ public long deleteObject(final Collection collection) {
+ return redisTemplate.delete(collection);
+ }
+
+ /**
+ * 缂撳瓨List鏁版嵁
+ *
+ * @param key 缂撳瓨鐨勯敭鍊�
+ * @param dataList 寰呯紦瀛樼殑List鏁版嵁
+ * @return 缂撳瓨鐨勫璞�
+ */
+ public <T> long setCacheList(final String key, final List<T> dataList) {
+ Long count = redisTemplate.opsForList().rightPushAll(key, dataList);
+ return count == null ? 0 : count;
+ }
+
+ /**
+ * 鑾峰緱缂撳瓨鐨刲ist瀵硅薄
+ *
+ * @param key 缂撳瓨鐨勯敭鍊�
+ * @return 缂撳瓨閿�煎搴旂殑鏁版嵁
+ */
+ public <T> List<T> getCacheList(final String key) {
+ return redisTemplate.opsForList().range(key, 0, -1);
+ }
+
+ /**
+ * 缂撳瓨Set
+ *
+ * @param key 缂撳瓨閿��
+ * @param dataSet 缂撳瓨鐨勬暟鎹�
+ * @return 缂撳瓨鏁版嵁鐨勫璞�
+ */
+ public <T> BoundSetOperations<String, T> setCacheSet(final String key, final Set<T> dataSet) {
+ BoundSetOperations<String, T> setOperation = redisTemplate.boundSetOps(key);
+ Iterator<T> it = dataSet.iterator();
+ while (it.hasNext()) {
+ setOperation.add(it.next());
+ }
+ return setOperation;
+ }
+
+ /**
+ * 鑾峰緱缂撳瓨鐨剆et
+ *
+ * @param key
+ * @return
+ */
+ public <T> Set<T> getCacheSet(final String key) {
+ return redisTemplate.opsForSet().members(key);
+ }
+
+ /**
+ * 缂撳瓨Map
+ *
+ * @param key
+ * @param dataMap
+ */
+ public <T> void setCacheMap(final String key, final Map<String, T> dataMap) {
+ if (dataMap != null) {
+ redisTemplate.opsForHash().putAll(key, dataMap);
+ }
+ }
+
+ /**
+ * 鑾峰緱缂撳瓨鐨凪ap
+ *
+ * @param key
+ * @return
+ */
+ public <T> Map<String, T> getCacheMap(final String key) {
+ return redisTemplate.opsForHash().entries(key);
+ }
+
+ /**
+ * 寰�Hash涓瓨鍏ユ暟鎹�
+ *
+ * @param key Redis閿�
+ * @param hKey Hash閿�
+ * @param value 鍊�
+ */
+ public <T> void setCacheMapValue(final String key, final String hKey, final T value) {
+ redisTemplate.opsForHash().put(key, hKey, value);
+ }
+
+ /**
+ * 鑾峰彇Hash涓殑鏁版嵁
+ *
+ * @param key Redis閿�
+ * @param hKey Hash閿�
+ * @return Hash涓殑瀵硅薄
+ */
+ public <T> T getCacheMapValue(final String key, final String hKey) {
+ HashOperations<String, String, T> opsForHash = redisTemplate.opsForHash();
+ return opsForHash.get(key, hKey);
+ }
+
+ /**
+ * 鍒犻櫎Hash涓殑鏁版嵁
+ *
+ * @param key
+ * @param hkey
+ */
+ public void delCacheMapValue(final String key, final String hkey) {
+ HashOperations hashOperations = redisTemplate.opsForHash();
+ hashOperations.delete(key, hkey);
+ }
+
+ /**
+ * 鑾峰彇澶氫釜Hash涓殑鏁版嵁
+ *
+ * @param key Redis閿�
+ * @param hKeys Hash閿泦鍚�
+ * @return Hash瀵硅薄闆嗗悎
+ */
+ public <T> List<T> getMultiCacheMapValue(final String key, final Collection<Object> hKeys) {
+ return redisTemplate.opsForHash().multiGet(key, hKeys);
+ }
+
+ /**
+ * 鑾峰緱缂撳瓨鐨勫熀鏈璞″垪琛�
+ *
+ * @param pattern 瀛楃涓插墠缂�
+ * @return 瀵硅薄鍒楄〃
+ */
+ public Collection<String> keys(final String pattern) {
+ return redisTemplate.keys(pattern);
+ }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/WebUtils.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/WebUtils.java
new file mode 100644
index 0000000..618144d
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/WebUtils.java
@@ -0,0 +1,30 @@
+package com.mes.common.utils;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/9 19:16
+ * @Description:
+ */
+public class WebUtils {
+ /**
+ * 灏嗗瓧绗︿覆娓叉煋鍒板鎴风
+ *
+ * @param response 娓叉煋瀵硅薄
+ * @param string 寰呮覆鏌撶殑瀛楃涓�
+ * @return null
+ */
+ public static String renderString(HttpServletResponse response, String string) {
+ try {
+ response.setStatus(200);
+ response.setContentType("application/json");
+ response.setCharacterEncoding("utf-8");
+ response.getWriter().print(string);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/controller/SysMenuController.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/controller/SysMenuController.java
new file mode 100644
index 0000000..131b179
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/controller/SysMenuController.java
@@ -0,0 +1,39 @@
+package com.mes.menu.controller;
+
+
+import com.mes.menu.entity.SysMenu;
+import com.mes.menu.service.SysMenuService;
+import com.mes.utils.Result;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鑿滃崟琛�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@ApiModel("鑾峰彇鑿滃崟淇℃伅")
+@RestController
+@RequestMapping("/menu/sysMenu")
+public class SysMenuController {
+
+ @Autowired
+ SysMenuService sysMenuService;
+
+ @ApiOperation("鑾峰彇鐢ㄦ埛鏈夋潈闄愮殑鎵�鏈夎彍鍗�")
+ @GetMapping("/list")
+ public Result<List<SysMenu>> getMenuTree() {
+ return Result.success(sysMenuService.getMenuTree());
+ }
+
+}
+
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/entity/SysMenu.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/entity/SysMenu.java
new file mode 100644
index 0000000..9ae6597
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/entity/SysMenu.java
@@ -0,0 +1,82 @@
+package com.mes.menu.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class SysMenu implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 鑷id
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 鐖秈d
+ */
+ private Integer parentId;
+
+ /**
+ * 妯″潡鍚嶇О
+ */
+ private String menuName;
+
+ /**
+ * 鍥炬爣
+ */
+ private String icon;
+
+ /**
+ * 鍦板潃
+ */
+ private String url;
+
+ /**
+ * 璇█绫诲瀷
+ */
+ private String languageType;
+
+ /**
+ * 鐘舵��
+ */
+ private Integer status;
+
+ /**
+ * 鎺掑簭
+ */
+ private String listSort;
+
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ private Date createTime;
+
+ /**
+ * 瀛愯彍鍗�
+ */
+ @TableField(exist = false)
+ private List<SysMenu> children;
+
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/mapper/SysMenuMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/mapper/SysMenuMapper.java
new file mode 100644
index 0000000..c2fcea5
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/mapper/SysMenuMapper.java
@@ -0,0 +1,19 @@
+package com.mes.menu.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.menu.entity.SysMenu;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鑿滃崟琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysMenuMapper extends BaseMapper<SysMenu> {
+
+ List<String> selectPermsByUserId(long parseLong);
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/SysMenuService.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/SysMenuService.java
new file mode 100644
index 0000000..3b77a2e
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/SysMenuService.java
@@ -0,0 +1,19 @@
+package com.mes.menu.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.menu.entity.SysMenu;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鑿滃崟琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysMenuService extends IService<SysMenu> {
+
+ List<SysMenu> getMenuTree();
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java
new file mode 100644
index 0000000..8527a36
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java
@@ -0,0 +1,67 @@
+package com.mes.menu.service.impl;
+
+import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.menu.entity.SysMenu;
+import com.mes.menu.mapper.SysMenuMapper;
+import com.mes.menu.service.SysMenuService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 鑿滃崟琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Service
+@Slf4j
+public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> implements SysMenuService {
+
+ @Override
+ public List<SysMenu> getMenuTree() {
+ List<SysMenu> menuList = this.baseMapper.selectList(null);
+ return create(menuList);
+ }
+
+
+ /**
+ * 灏嗘暟鎹簱涓煡璇㈠嚭鏉ョ殑list闆嗗悎浼犲叆姝ゆ柟娉曞嵆鍙幏寰楁帓鎴愭爲褰㈢粨鏋勭殑list闆嗗悎
+ *
+ * @param lists
+ * @return
+ */
+ public List<SysMenu> create(List<SysMenu> lists) {
+ List<SysMenu> deptTreeList = lists.stream()
+ .filter(item -> item.getParentId() == 0)
+ .map(item -> {
+ item.setChildren(getChildren(item, lists));
+ return item;
+ }).collect(Collectors.toList());
+ return deptTreeList;
+ }
+
+ /**
+ * 姝ゆ柟娉曞皢琚�掑綊璋冪敤
+ *
+ * @param menu
+ * @param menus
+ * @return
+ */
+ private List<SysMenu> getChildren(SysMenu menu, List<SysMenu> menus) {
+ List<SysMenu> res = menus.stream()
+ .filter(item -> item.getParentId().equals(menu.getId()))
+ .map(item -> {
+ item.setChildren(getChildren(item, menus));
+ return item;
+ }).collect(Collectors.toList());
+ log.info("鑿滃崟鏍�:{}", JSONUtil.toJsonStr(res));
+ return res;
+ }
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java
new file mode 100644
index 0000000..943ff7d
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java
@@ -0,0 +1,20 @@
+package com.mes.role.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 瑙掕壊琛� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@RestController
+@RequestMapping("/role/sys-role")
+public class SysRoleController {
+
+}
+
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleMenuController.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleMenuController.java
new file mode 100644
index 0000000..77b3175
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleMenuController.java
@@ -0,0 +1,20 @@
+package com.mes.role.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@RestController
+@RequestMapping("/role/sys-role-menu")
+public class SysRoleMenuController {
+
+}
+
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRole.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRole.java
new file mode 100644
index 0000000..14fd4a3
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRole.java
@@ -0,0 +1,50 @@
+package com.mes.role.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 瑙掕壊琛�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SysRole implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ private String name;
+
+ /**
+ * 瑙掕壊鏉冮檺瀛楃涓�
+ */
+ private String roleKey;
+
+ /**
+ * 瑙掕壊鐘舵�侊紙0姝e父 1鍋滅敤锛�
+ */
+ private String status;
+
+ /**
+ * 鍒犻櫎鏍囧織
+ */
+ private Integer delFlag;
+
+ /**
+ * 澶囨敞
+ */
+ private String remark;
+
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRoleMenu.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRoleMenu.java
new file mode 100644
index 0000000..e69af40
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRoleMenu.java
@@ -0,0 +1,36 @@
+package com.mes.role.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SysRoleMenu implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 瑙掕壊ID
+ */
+ @TableId(value = "role_id", type = IdType.AUTO)
+ private Long roleId;
+
+ /**
+ * 鑿滃崟id
+ */
+ private Long menuId;
+
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMapper.java
new file mode 100644
index 0000000..f90596c
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMapper.java
@@ -0,0 +1,16 @@
+package com.mes.role.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.role.entity.SysRole;
+
+/**
+ * <p>
+ * 瑙掕壊琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysRoleMapper extends BaseMapper<SysRole> {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMenuMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMenuMapper.java
new file mode 100644
index 0000000..747f5ac
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMenuMapper.java
@@ -0,0 +1,16 @@
+package com.mes.role.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.role.entity.SysRoleMenu;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysRoleMenuMapper extends BaseMapper<SysRoleMenu> {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMapper.xml b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMapper.xml
new file mode 100644
index 0000000..9a0cd27
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.role.mapper.SysRoleMapper">
+
+</mapper>
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMenuMapper.xml b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMenuMapper.xml
new file mode 100644
index 0000000..af0749b
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMenuMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.role.mapper.SysRoleMenuMapper">
+
+</mapper>
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleMenuService.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleMenuService.java
new file mode 100644
index 0000000..e4d23dc
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleMenuService.java
@@ -0,0 +1,16 @@
+package com.mes.role.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.role.entity.SysRoleMenu;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysRoleMenuService extends IService<SysRoleMenu> {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleService.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleService.java
new file mode 100644
index 0000000..6f89b19
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleService.java
@@ -0,0 +1,16 @@
+package com.mes.role.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.role.entity.SysRole;
+
+/**
+ * <p>
+ * 瑙掕壊琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysRoleService extends IService<SysRole> {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleMenuServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleMenuServiceImpl.java
new file mode 100644
index 0000000..4c8a475
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleMenuServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.role.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.role.entity.SysRoleMenu;
+import com.mes.role.mapper.SysRoleMenuMapper;
+import com.mes.role.service.SysRoleMenuService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Service
+public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper, SysRoleMenu> implements SysRoleMenuService {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java
new file mode 100644
index 0000000..5b78836
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.role.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.role.entity.SysRole;
+import com.mes.role.mapper.SysRoleMapper;
+import com.mes.role.service.SysRoleService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 瑙掕壊琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Service
+public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> implements SysRoleService {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java
new file mode 100644
index 0000000..aa99f77
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java
@@ -0,0 +1,36 @@
+package com.mes.userinfo.controller;
+
+
+import com.mes.userinfo.entity.SysUser;
+import com.mes.userinfo.service.SysUserService;
+import com.mes.utils.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 鐢ㄦ埛琛� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@RestController
+@CrossOrigin
+@RequestMapping("/userinfo")
+public class SysUserController {
+
+ @Autowired
+ private SysUserService sysUserService;
+
+ @PostMapping("/login")
+ public Result login(@RequestBody SysUser user) {
+ return sysUserService.login(user);
+ }
+
+ @GetMapping("/hello")
+ public Result hello() {
+ return Result.success("eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJlZjMyMjQ4NDcyODE0ZWFlYWRlOTBkYmZjYWFlZmNmZSIsInN1YiI6IjEiLCJpc3MiOiJzZyIsImlhdCI6MTcxMjkwMjI0NCwiZXhwIjoxNzEyOTA1ODQ0fQ.DlJkhkiwjZSqprdLzKaTB3yuyxGukerKeF0FbJK_6HY");
+ }
+}
+
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserRoleController.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserRoleController.java
new file mode 100644
index 0000000..8d6e6a7
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserRoleController.java
@@ -0,0 +1,20 @@
+package com.mes.userinfo.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@RestController
+@RequestMapping("/userinfo/sys-user-role")
+public class SysUserRoleController {
+
+}
+
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/LoginUser.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/LoginUser.java
new file mode 100644
index 0000000..d60a05f
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/LoginUser.java
@@ -0,0 +1,94 @@
+package com.mes.userinfo.entity;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
+import org.springframework.security.core.userdetails.UserDetails;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/11 15:46
+ * @Description:
+ */
+public class LoginUser implements UserDetails {
+
+
+ private SysUser user;
+
+ /**
+ * 瀛樺偍鏉冮檺淇℃伅
+ */
+ @JSONField(serialize = false)
+ private List<String> permissions;
+
+ /**
+ * 瀛樺偍SpringSecurity璋冪敤getAuthorities()鏂规硶鑾峰彇鐨勬潈闄愪俊鎭殑闆嗗悎
+ */
+ @JSONField(serialize = false)
+ private List<GrantedAuthority> authorities;
+
+
+ public LoginUser() {
+ }
+
+ public LoginUser(SysUser user, List<String> permissions) {
+ this.user = user;
+ this.permissions = permissions;
+ }
+
+ public SysUser getUser() {
+ return user;
+ }
+
+ public void setUser(SysUser user) {
+ this.user = user;
+ }
+
+ @Override
+ public Collection<? extends GrantedAuthority> getAuthorities() {
+
+ // 浼樺寲涓哄彧闇�瑕佺涓�娆¤幏鍙栫殑鏃跺�欒繘琛岄亶鍘嗭紝鍚庨潰鍐嶇敤灏变細浠巃uthorities杩欎釜鎴愬憳鍙橀噺涓幏鍙栦簡锛屼笉浼氬啀杩涜Stream寰幆閬嶅巻浜�
+ if (authorities != null) {
+ return authorities;
+ }
+ //鎶妏ermissions涓瓧绗︿覆绫诲瀷鐨勬潈闄愪俊鎭浆鎹㈡垚GrantedAuthority瀵硅薄瀛樺叆authorities涓�
+ authorities = permissions.stream().
+ map(SimpleGrantedAuthority::new)
+ .collect(Collectors.toList());
+ return authorities;
+ }
+
+ @Override
+ public String getPassword() {
+ return user.getPassword();
+ }
+
+ @Override
+ public String getUsername() {
+ return user.getUserName();
+ }
+
+ @Override
+ public boolean isAccountNonExpired() {
+ return true;
+ }
+
+ @Override
+ public boolean isAccountNonLocked() {
+ return true;
+ }
+
+ @Override
+ public boolean isCredentialsNonExpired() {
+ return true;
+ }
+
+ @Override
+ public boolean isEnabled() {
+ return true;
+ }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUser.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUser.java
new file mode 100644
index 0000000..dcb8384
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUser.java
@@ -0,0 +1,66 @@
+package com.mes.userinfo.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 鐢ㄦ埛琛�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SysUser implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 涓婚敭
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 鐢ㄦ埛鍚�
+ */
+ private String userName;
+
+ /**
+ * 鏄电О
+ */
+ private String nickName;
+
+ /**
+ * 瀵嗙爜
+ */
+ private String password;
+
+ /**
+ * 璐﹀彿鐘舵�侊紙0姝e父 1鍋滅敤锛�
+ */
+ private String status;
+
+ /**
+ * 澶村儚
+ */
+ private String avatar;
+
+ /**
+ * 鐢ㄦ埛绫诲瀷锛�0绠$悊鍛橈紝1鏅�氱敤鎴凤級
+ */
+ private String userType;
+
+ /**
+ * 鍒犻櫎鏍囧織
+ */
+ private Integer delFlag;
+
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUserRole.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUserRole.java
new file mode 100644
index 0000000..4d76c57
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUserRole.java
@@ -0,0 +1,36 @@
+package com.mes.userinfo.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SysUserRole implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 鐢ㄦ埛id
+ */
+ @TableId(value = "user_id", type = IdType.AUTO)
+ private Long userId;
+
+ /**
+ * 瑙掕壊id
+ */
+ private Long roleId;
+
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserMapper.java
new file mode 100644
index 0000000..ca3ef72
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserMapper.java
@@ -0,0 +1,16 @@
+package com.mes.userinfo.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.userinfo.entity.SysUser;
+
+/**
+ * <p>
+ * 鐢ㄦ埛琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysUserMapper extends BaseMapper<SysUser> {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserRoleMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserRoleMapper.java
new file mode 100644
index 0000000..d00106d
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserRoleMapper.java
@@ -0,0 +1,16 @@
+package com.mes.userinfo.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.userinfo.entity.SysUserRole;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysUserRoleMapper extends BaseMapper<SysUserRole> {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserMapper.xml b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserMapper.xml
new file mode 100644
index 0000000..300e913
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.userinfo.mapper.SysUserMapper">
+
+</mapper>
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserRoleMapper.xml b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserRoleMapper.xml
new file mode 100644
index 0000000..0fd2be9
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserRoleMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.userinfo.mapper.SysUserRoleMapper">
+
+</mapper>
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserRoleService.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserRoleService.java
new file mode 100644
index 0000000..0992b6c
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserRoleService.java
@@ -0,0 +1,16 @@
+package com.mes.userinfo.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.userinfo.entity.SysUserRole;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysUserRoleService extends IService<SysUserRole> {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserService.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserService.java
new file mode 100644
index 0000000..ca49aa0
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserService.java
@@ -0,0 +1,20 @@
+package com.mes.userinfo.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.userinfo.entity.SysUser;
+import com.mes.utils.Result;
+
+/**
+ * <p>
+ * 鐢ㄦ埛琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysUserService extends IService<SysUser> {
+
+ Result login(SysUser user);
+
+ Result logout();
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserRoleServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserRoleServiceImpl.java
new file mode 100644
index 0000000..baa93c2
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserRoleServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.userinfo.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.userinfo.entity.SysUserRole;
+import com.mes.userinfo.mapper.SysUserRoleMapper;
+import com.mes.userinfo.service.SysUserRoleService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Service
+public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUserRole> implements SysUserRoleService {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java
new file mode 100644
index 0000000..f6207b7
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java
@@ -0,0 +1,89 @@
+package com.mes.userinfo.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.common.utils.JwtUtil;
+import com.mes.common.utils.RedisUtil;
+import com.mes.menu.mapper.SysMenuMapper;
+import com.mes.userinfo.entity.LoginUser;
+import com.mes.userinfo.entity.SysUser;
+import com.mes.userinfo.mapper.SysUserMapper;
+import com.mes.userinfo.service.SysUserService;
+import com.mes.utils.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * <p>
+ * 鐢ㄦ埛琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Service
+public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements SysUserService, UserDetailsService {
+
+ @Autowired
+ private AuthenticationManager authenticationManager;
+ @Autowired
+ private RedisUtil redisUtil;
+
+ @Resource
+ private SysMenuMapper sysMenuMapper;
+
+ @Override
+ public Result login(SysUser user) {
+ UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(user.getUserName(), user.getPassword());
+ Authentication authenticate = authenticationManager.authenticate(authenticationToken);
+ if (Objects.isNull(authenticate)) {
+ throw new RuntimeException("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒");
+ }
+ //浣跨敤userid鐢熸垚token
+ LoginUser loginUser = (LoginUser) authenticate.getPrincipal();
+ String userId = loginUser.getUser().getId().toString();
+ String jwt = JwtUtil.createJWT(userId);
+ //authenticate瀛樺叆redis
+ redisUtil.setCacheObject("login:" + userId, loginUser);
+ //鎶妕oken鍝嶅簲缁欏墠绔�
+ HashMap<String, String> map = new HashMap<>();
+ map.put("token", jwt);
+ return Result.success(map);
+ }
+
+ @Override
+ public Result logout() {
+ Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+ LoginUser loginUser = (LoginUser) authentication.getPrincipal();
+ Long userid = loginUser.getUser().getId();
+ redisUtil.deleteObject("login:" + userid);
+ return Result.success("閫�鍑烘垚鍔�");
+ }
+
+ @Override
+ public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
+ LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<>();
+ lqw.eq(SysUser::getUserName, username);
+ SysUser user = this.baseMapper.selectOne(lqw);
+ //鍒ゆ柇鏄惁涓虹┖
+ if (Objects.isNull(user)) {
+ throw new RuntimeException("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒");
+ }
+ //鏌ヨ鏉冮檺淇℃伅
+ List<String> perms = sysMenuMapper.selectPermsByUserId(user.getId());
+
+ return new LoginUser(user, perms);
+ }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/resources/application.yml b/hangzhoumesParent/common/springsecurity/src/main/resources/application.yml
new file mode 100644
index 0000000..d5978be
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/resources/application.yml
@@ -0,0 +1,25 @@
+server:
+ port: 8089
+spring:
+ datasource:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8&characterEncoding=utf-8&useSSL=false
+ username: root
+ password: beibo.123/
+ cloud:
+ nacos:
+ discovery:
+ server-addr: 10.153.19.150:8848
+ application:
+ name: security
+ redis:
+ database: 0
+ host: 10.153.19.150
+ port: 6379
+ password:
+ session:
+ store-type: redis
+mybatis-plus:
+ mapper-locations: classpath*:mapper/*.xml
+ configuration:
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/src/main/resources/mapper/SysMenuMapper.xml b/hangzhoumesParent/common/springsecurity/src/main/resources/mapper/SysMenuMapper.xml
new file mode 100644
index 0000000..38607e4
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/resources/mapper/SysMenuMapper.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.menu.mapper.SysMenuMapper">
+
+ <select id="selectPermsByUserId" resultType="java.lang.String">
+ SELECT DISTINCT m.perms
+ FROM sys_user_role ur
+ LEFT JOIN sys_role r ON ur.role_id = r.id
+ LEFT JOIN sys_role_menu rm ON ur.role_id = rm.role_id
+ LEFT JOIN sys_menu m ON m.id = rm.menu_id
+ WHERE user_id = #{userid}
+ AND r.status = 0
+ AND m.status = 0
+ </select>
+</mapper>
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingService.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingService.java
index e4b89aa..bac2fa6 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingService.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingService.java
@@ -1,32 +1,36 @@
package com.mes.temperingglass.service;
-import com.mes.temperingglass.entity.GlassInfo;
+//import com.mes.temperingglass.entity.GlassInfo;
+
import com.mes.temperingglass.entity.TemperingGlassInfo;
-import com.mes.tools.S7control;
import com.mes.temperingglass.mapper.TemperingMapper;
-import java.util.List;
+import com.mes.tools.S7control;
import org.springframework.stereotype.Service;
+
+import java.util.List;
@Service
public class TemperingService {
-
+
private final TemperingMapper temperingMapper;
private S7control s7control;
public TemperingService(TemperingMapper temperingMapper) {
- this.temperingMapper =temperingMapper;
+ this.temperingMapper = temperingMapper;
}
- //鎺ユ敹id杩斿洖鍧愭爣鍜屾暟鎹�
- public GlassInfo SelectOutGlass (String glassid) {
- GlassInfo GlassInfo = temperingMapper.SelectGlass(glassid);
- return GlassInfo;
- }
+
+ // //鎺ユ敹id杩斿洖鍧愭爣鍜屾暟鎹�
+// public GlassInfo SelectOutGlass (String glassid) {
+// GlassInfo GlassInfo = temperingMapper.SelectGlass(glassid);
+// return GlassInfo;
+// }
//鍙戦�佸潗鏍囦俊鎭�
- public void SendCoordinate (short glassX,short glassY) {
+ public void SendCoordinate(short glassX, short glassY) {
s7control.WriteWord("DB100.10", glassX);
s7control.WriteWord("DB100.10", glassY);
}
+
//鍒ゆ柇鏄惁鍙互鍙戦�佽繘鐐変俊鍙�
- public int SelectTempering (String glassid) {
+ public int SelectTempering(String glassid) {
int tempering = temperingMapper.SelectTempering(glassid);
if (tempering == 1) {
return 1;
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java
index a99b8ab..4fdb170 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java
@@ -1,8 +1,7 @@
package com.mes.config;
-import com.mes.common.PLCAutoMes;
import com.mes.common.Plchome;
-
+import com.mes.device.PLCAutoMes;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.annotation.Order;
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationMapper.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationMapper.java
index 0ebb1bd..c862190 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationMapper.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationMapper.java
@@ -6,7 +6,6 @@
import com.mes.downglassinfo.entity.DownGlassInfo;
import com.mes.downworkstation.entity.DownWorkstation;
import org.apache.ibatis.annotations.*;
-import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;
import java.util.List;
@@ -23,7 +22,7 @@
@Mapper
@Repository
@InterceptorIgnore(tenantLine = "true")
-@DS("hangzhoumes") // 鎸囧畾浣跨敤 hangzhoumes 鏁版嵁婧�
+@DS("salve_1") // 鎸囧畾浣跨敤 hangzhoumes 鏁版嵁婧�
public interface DownWorkstationMapper extends BaseMapper<DownWorkstation> {
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownGlassLogic.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownGlassLogic.java
index b7cd761..309ac2f 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownGlassLogic.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownGlassLogic.java
@@ -1,12 +1,12 @@
package com.mes.downworkstation.service;
-import com.mes.common.PLCAutoMes;
+import com.mes.device.PLCAutoMes;
+import com.mes.device.PlcParameterObject;
import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downglassinfo.mapper.DownGlassInfoMapper;
import com.mes.downglassinfo.service.DownGlassInfoService;
import com.mes.downstorage.entity.DownStorageCageDetails;
import com.mes.downworkstation.entity.DownWorkstation;
-import com.mes.device.PlcParameterObject;
-import com.mes.downglassinfo.mapper.DownGlassInfoMapper;
import com.mes.downworkstation.mapper.DownWorkstationMapper;
import com.mes.tools.WebSocketServer;
import lombok.Data;
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/TokenTools.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/TokenTools.java
deleted file mode 100644
index 1cb6dc2..0000000
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/TokenTools.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.mes.tools;
-
-import cn.hutool.core.date.DateUtil;
-import com.auth0.jwt.JWT;
-import com.auth0.jwt.algorithms.Algorithm;
-
-import java.util.Date;
-
-public class TokenTools {
-
- /**
- * 鐢熸垚token
- * @return
- */
- public static String getToken(String userid,String sign){
- return JWT.create().withAudience(userid) // 灏� user id 淇濆瓨鍒� token 閲岄潰,浣滀负杞借嵎
- .withExpiresAt(DateUtil.offsetHour(new Date(), 24)) // 2灏忔椂鍚巘oken杩囨湡
- .sign(Algorithm.HMAC256(sign)); // 浠� password 浣滀负 token 鐨勫瘑閽�
-
- }
-}
diff --git a/hangzhoumesParent/moduleService/pom.xml b/hangzhoumesParent/moduleService/pom.xml
index c5d8ab6..1ae04ab 100644
--- a/hangzhoumesParent/moduleService/pom.xml
+++ b/hangzhoumesParent/moduleService/pom.xml
@@ -43,6 +43,17 @@
<version>1.0-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <artifactId>servicebase</artifactId>
+ <groupId>com.mes</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <artifactId>springsecurity</artifactId>
+ <groupId>com.mes</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+
<!--寮�鍙戣�呭伐鍏�-->
<dependency>
<groupId>org.springframework.boot</groupId>
--
Gitblit v1.8.0