From 35f5c33c88f0ed1deceb4a40b243d25a0b30f16b Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Tue, 8 Jul 2025 11:16:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=87=E5=BA=93=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/security/service/TokenService.java | 9 +++- .../com/op/gateway/filter/AuthFilter.java | 11 +++-- .../service/impl/DeviceTaskServiceImpl.java | 43 ++++++++++++++++--- .../mapper/device/EquSpareApplyMapper.xml | 5 ++- .../service/impl/MesPrepareServiceImpl.java | 8 +++- .../impl/QcCheckTaskProduceServiceImpl.java | 10 ++++- .../service/impl/SysUserServiceImpl.java | 2 + 7 files changed, 74 insertions(+), 14 deletions(-) diff --git a/op-common/op-common-security/src/main/java/com/op/common/security/service/TokenService.java b/op-common/op-common-security/src/main/java/com/op/common/security/service/TokenService.java index ea930b02f..2154b6d51 100644 --- a/op-common/op-common-security/src/main/java/com/op/common/security/service/TokenService.java +++ b/op-common/op-common-security/src/main/java/com/op/common/security/service/TokenService.java @@ -19,7 +19,7 @@ import com.op.system.api.model.LoginUser; /** * token验证处理 - * + * * @author OP */ @Component @@ -144,9 +144,14 @@ public class TokenService { // 根据uuid将loginUser缓存 String userKey = getTokenKey(loginUser.getToken()); redisService.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES); + + String username = loginUser.getUsername(); + // 重置过期时间 + String pool = redisService.getCacheObject(CacheConstants.USER_POOL_NAME_CURRENT + username); + redisService.setCacheObject(CacheConstants.USER_POOL_NAME_CURRENT + username, pool, expireTime, TimeUnit.MINUTES); } private String getTokenKey(String token) { return ACCESS_TOKEN + token; } -} \ No newline at end of file +} diff --git a/op-gateway/src/main/java/com/op/gateway/filter/AuthFilter.java b/op-gateway/src/main/java/com/op/gateway/filter/AuthFilter.java index 6f2ef5c70..23616749e 100644 --- a/op-gateway/src/main/java/com/op/gateway/filter/AuthFilter.java +++ b/op-gateway/src/main/java/com/op/gateway/filter/AuthFilter.java @@ -23,7 +23,7 @@ import reactor.core.publisher.Mono; /** * 网关鉴权 - * + * * @author OP */ @Component @@ -57,11 +57,14 @@ public class AuthFilter implements GlobalFilter, Ordered { } String userkey = JwtUtils.getUserKey(claims); boolean islogin = redisService.hasKey(getTokenKey(userkey)); - if (!islogin) { + + String username = JwtUtils.getUserName(claims); + boolean isPoolName = redisService.hasKey(CacheConstants.USER_POOL_NAME_CURRENT + username); + if (!islogin || !isPoolName) { return unauthorizedResponse(exchange, "登录状态已过期"); } String userid = JwtUtils.getUserId(claims); - String username = JwtUtils.getUserName(claims); + if (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username)) { return unauthorizedResponse(exchange, "令牌验证失败"); } @@ -116,4 +119,4 @@ public class AuthFilter implements GlobalFilter, Ordered { public int getOrder() { return -200; } -} \ No newline at end of file +} diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java index 36f686180..ee1a76f75 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java @@ -107,7 +107,15 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { // 加载sf-cloud库的sys_datasource SysUser sysUser = new SysUser(); sysUser.setUserId(1L); - R>> dateSources0 = remoteUserService.getPoolNameList(sysUser); + DynamicDataSourceContextHolder.push("master"); + R>> dateSources0 = new R<>(); + try { + dateSources0 = remoteUserService.getPoolNameList(sysUser); + }finally { + DynamicDataSourceContextHolder.poll(); + } + + List> dateSources = dateSources0.getData(); ExecutorService executorService = new ThreadPoolExecutor( dateSources.size(), @@ -138,7 +146,13 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { // 加载sf-cloud库的sys_datasource SysUser sysUser = new SysUser(); sysUser.setUserId(1L); - R>> dateSources0 = remoteUserService.getPoolNameList(sysUser); + DynamicDataSourceContextHolder.push("master"); + R>> dateSources0 = new R<>(); + try { + dateSources0 = remoteUserService.getPoolNameList(sysUser); + }finally { + DynamicDataSourceContextHolder.poll(); + } List> dateSources = dateSources0.getData(); ExecutorService executorService = new ThreadPoolExecutor( dateSources.size(), @@ -169,7 +183,13 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { // 加载sf-cloud库的sys_datasource SysUser sysUser = new SysUser(); sysUser.setUserId(1L); - R>> dateSources0 = remoteUserService.getPoolNameList(sysUser); + DynamicDataSourceContextHolder.push("master"); + R>> dateSources0 = new R<>(); + try { + dateSources0 = remoteUserService.getPoolNameList(sysUser); + }finally { + DynamicDataSourceContextHolder.poll(); + } List> dateSources = dateSources0.getData(); ExecutorService executorService = new ThreadPoolExecutor( dateSources.size(), @@ -201,7 +221,13 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { // 加载sf-cloud库的sys_datasource SysUser sysUser = new SysUser(); sysUser.setUserId(1L); - R>> dateSources0 = remoteUserService.getPoolNameList(sysUser); + DynamicDataSourceContextHolder.push("master"); + R>> dateSources0 = new R<>(); + try { + dateSources0 = remoteUserService.getPoolNameList(sysUser); + }finally { + DynamicDataSourceContextHolder.poll(); + } List> dateSources = dateSources0.getData(); ExecutorService executorService = new ThreadPoolExecutor( dateSources.size(), @@ -235,7 +261,13 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { // 加载sf-cloud库的sys_datasource SysUser sysUser = new SysUser(); sysUser.setUserId(1L); - R>> dateSources0 = remoteUserService.getPoolNameList(sysUser); + DynamicDataSourceContextHolder.push("master"); + R>> dateSources0 = new R<>(); + try { + dateSources0 = remoteUserService.getPoolNameList(sysUser); + }finally { + DynamicDataSourceContextHolder.poll(); + } List> dateSources = dateSources0.getData(); ExecutorService executorService = new ThreadPoolExecutor( dateSources.size(), @@ -300,6 +332,7 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { } //切线后 创建点检工单 + @Override public AjaxResult createSpotCheckWorkOrder(com.op.system.api.domain.device.WorkOrderTangentDTO workOrderTangentDTO) { DynamicDataSourceContextHolder.push(workOrderTangentDTO.getFactoryCode());// 这是数据源的key logger.info(workOrderTangentDTO.getFactoryCode() + "工厂切线接口传输参数:" + JSONArray.toJSONString(workOrderTangentDTO)); diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquSpareApplyMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquSpareApplyMapper.xml index c136f1b79..23a918102 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquSpareApplyMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquSpareApplyMapper.xml @@ -33,7 +33,10 @@ - select apply_id, apply_code, work_code,parent_code,apply_type,spare_code, spare_name, spare_model, spare_quantity, spare_group_line, spare_use_equipment, apply_time, apply_people, apply_approve_people, attr1, attr2, attr3, del_flag, create_by, create_time, update_by, update_time, factory_code , unit_price , total_price from equ_spare_apply + select apply_id, apply_code, work_code,parent_code,apply_type,spare_code, spare_name, spare_model, + spare_quantity, spare_group_line, spare_use_equipment, apply_time, apply_people, apply_approve_people, + attr1, attr2, attr3, del_flag, create_by, create_time, update_by, update_time, factory_code , + unit_price , total_price from equ_spare_apply