fix: 优化锚点缓存逻辑

This commit is contained in:
tangwei 2026-07-13 14:07:56 +08:00
parent e9633595b7
commit 4329f5c196
4 changed files with 26 additions and 4 deletions

View File

@ -8,6 +8,7 @@ import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.yfd.platform.utils.SecurityUtils;
import org.springframework.cache.CacheManager; import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.EnableCaching; import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.interceptor.KeyGenerator; import org.springframework.cache.interceptor.KeyGenerator;
@ -114,4 +115,9 @@ public class RedisConfig {
public KeyGenerator cacheKeyGenerator() { public KeyGenerator cacheKeyGenerator() {
return (target, method, params) -> target.getClass().getName() + "." + method.getName() + ":" + DigestUtil.md5Hex(JSONUtil.toJsonStr(params)); return (target, method, params) -> target.getClass().getName() + "." + method.getName() + ":" + DigestUtil.md5Hex(JSONUtil.toJsonStr(params));
} }
@Bean("cacheKeyByUserGenerator")
public KeyGenerator cacheKeyByUserGenerator() {
return (target, method, params) -> SecurityUtils.getUserId()+"."+target.getClass().getName() + "." + method.getName() + ":" + DigestUtil.md5Hex(JSONUtil.toJsonStr(params));
}
} }

View File

@ -2839,6 +2839,7 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
} }
@Override @Override
@Cacheable(cacheNames = "engPointCache#3600", keyGenerator = "cacheKeyByUserGenerator")
public DataSourceResult<EngPointVo> getEngPointKendoListCust(DataSourceRequest dataSourceRequest) { public DataSourceResult<EngPointVo> getEngPointKendoListCust(DataSourceRequest dataSourceRequest) {
DataSourceResult<EngPointVo> result = new DataSourceResult<>(); DataSourceResult<EngPointVo> result = new DataSourceResult<>();
result.setAggregates(new HashMap<>()); result.setAggregates(new HashMap<>());
@ -2975,10 +2976,15 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
startTime = yearRange.get("startTime"); startTime = yearRange.get("startTime");
endTime = yearRange.get("endTime"); endTime = yearRange.get("endTime");
} }
DataSourceResult<EngAlarmPointVo> result = new DataSourceResult<>();
Map<String, Object> pointParamMap = new HashMap<>(); Map<String, Object> pointParamMap = new HashMap<>();
StringBuilder pointSql = new StringBuilder(buildAlarmPointBaseSql()); StringBuilder pointSql = new StringBuilder(buildAlarmPointBaseSql());
// DataScopeApplyResult scopeApplyResult = dataScopeFilterService.appendCurrentUserStationScope(pointSql, pointParamMap, "eng.STCD"); DataScopeApplyResult scopeApplyResult = dataScopeFilterService.appendCurrentUserStationScope(pointSql, pointParamMap, "eng.STCD");
if (scopeApplyResult.isEmptyResult()) {
result.setData(new ArrayList<>());
result.setTotal(0L);
return result;
}
List<EngAlarmPointVo> points= microservicDynamicSQLMapper.getAllListWithResultType( List<EngAlarmPointVo> points= microservicDynamicSQLMapper.getAllListWithResultType(
pointSql.toString(), pointSql.toString(),
pointParamMap, pointParamMap,
@ -3004,7 +3010,7 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
List<Map<String, Object>> expressionRows = microservicDynamicSQLMapper.getAllList(buildAlarmPointLegendSql(), new HashMap<>()); List<Map<String, Object>> expressionRows = microservicDynamicSQLMapper.getAllList(buildAlarmPointLegendSql(), new HashMap<>());
List<EngAlarmPointVo> resultList = mergeAlarmPointData(points, qecCountMap, wqCountMap, expressionRows, yyyy); List<EngAlarmPointVo> resultList = mergeAlarmPointData(points, qecCountMap, wqCountMap, expressionRows, yyyy);
DataSourceResult<EngAlarmPointVo> result = new DataSourceResult<>();
result.setData(resultList); result.setData(resultList);
result.setTotal(resultList.size()); result.setTotal(resultList.size());
result.setAggregates(new HashMap<>()); result.setAggregates(new HashMap<>());

View File

@ -4557,7 +4557,7 @@ public class EnvWqDataServiceImpl implements EnvWqDataService {
} }
@Override @Override
// @Cacheable(cacheNames = "weCache#3600", keyGenerator = "cacheKeyGenerator") @Cacheable(cacheNames = "wqCache#3600", keyGenerator = "cacheKeyByUserGenerator")
public DataSourceResult<EnvWqAnchorPointVo> getAnchorPointKendoListCust(DataSourceRequest dataSourceRequest) { public DataSourceResult<EnvWqAnchorPointVo> getAnchorPointKendoListCust(DataSourceRequest dataSourceRequest) {
DataSourceResult<EnvWqAnchorPointVo> dataSourceResult = new DataSourceResult<>(); DataSourceResult<EnvWqAnchorPointVo> dataSourceResult = new DataSourceResult<>();
dataSourceResult.setAggregates(new HashMap<>()); dataSourceResult.setAggregates(new HashMap<>());

View File

@ -34,6 +34,7 @@ import com.yfd.platform.utils.RedisCacheUtil;
import com.yfd.platform.utils.SecurityUtils; import com.yfd.platform.utils.SecurityUtils;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.Data; import lombok.Data;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -2846,6 +2847,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
} }
@Override @Override
@Cacheable(cacheNames = "dwCache#3600", keyGenerator = "cacheKeyByUserGenerator")
public DataSourceResult<DwSlowFacilityMapVO> getFacilityPointKendoListCust(DataSourceRequest dataSourceRequest) { public DataSourceResult<DwSlowFacilityMapVO> getFacilityPointKendoListCust(DataSourceRequest dataSourceRequest) {
DataSourceResult<DwSlowFacilityMapVO> dataSourceResult = new DataSourceResult<>(); DataSourceResult<DwSlowFacilityMapVO> dataSourceResult = new DataSourceResult<>();
dataSourceResult.setAggregates(new HashMap<>()); dataSourceResult.setAggregates(new HashMap<>());
@ -2943,6 +2945,7 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
} }
@Override @Override
@Cacheable(cacheNames = "wtCache#3600", keyGenerator = "cacheKeyByUserGenerator")
public DataSourceResult<WaterTempMapVO> getEngTempPointListKendoListCust(DataSourceRequest dataSourceRequest) { public DataSourceResult<WaterTempMapVO> getEngTempPointListKendoListCust(DataSourceRequest dataSourceRequest) {
DataSourceResult<WaterTempMapVO> dataSourceResult = new DataSourceResult<>(); DataSourceResult<WaterTempMapVO> dataSourceResult = new DataSourceResult<>();
dataSourceResult.setAggregates(new HashMap<>()); dataSourceResult.setAggregates(new HashMap<>());
@ -3016,6 +3019,13 @@ public class SdWtMonitorServiceImpl implements SdWtMonitorService {
// paramMap.put("dtinType", dtinType); // paramMap.put("dtinType", dtinType);
// } // }
DataScopeApplyResult scopeApplyResult = dataScopeFilterService.appendCurrentUserStationScope(sql, paramMap, "t.RSTCD");
if (scopeApplyResult.isEmptyResult()) {
dataSourceResult.setData(new ArrayList<>());
dataSourceResult.setTotal(0L);
return dataSourceResult;
}
List<DataSourceRequest.SortDescriptor> sort = dataSourceRequest.getSort(); List<DataSourceRequest.SortDescriptor> sort = dataSourceRequest.getSort();
if (sort != null && !sort.isEmpty()) { if (sort != null && !sort.isEmpty()) {
sql.append(" ORDER BY "); sql.append(" ORDER BY ");