fix: 新增水温站校验

This commit is contained in:
tangwei 2026-08-11 10:10:26 +08:00
parent 5073285d73
commit 11db0be292
21 changed files with 255 additions and 62 deletions

View File

@ -1,9 +1,11 @@
package com.yfd.platform.qgc_base.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.exception.BizException;
import com.yfd.platform.qgc_base.domain.SdAiboxBH;
import com.yfd.platform.qgc_base.mapper.SdAiboxBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
@ -12,6 +14,7 @@ import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.SecurityUtils;
import com.yfd.platform.utils.StcdUniqueValidator;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -31,6 +34,9 @@ public class SdAiboxBHServiceImpl extends ServiceImpl<SdAiboxBHMapper, SdAiboxBH
@Resource
private DictCodeToNameConverter dictCodeToNameConverter;
@Resource
private StcdUniqueValidator stcdUniqueValidator;
/**
* 代码转名称元数据配置列表静态初始化
* <p>
@ -71,6 +77,11 @@ public class SdAiboxBHServiceImpl extends ServiceImpl<SdAiboxBHMapper, SdAiboxBH
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(SdAiboxBH entity, String source) {
if (entity == null || StrUtil.isBlank(entity.getStcd())) {
throw new BizException("站点编码不能为空");
}
// 检查 STCD V_MS_STBPRP_T 视图中是否已存在
stcdUniqueValidator.throwIfExists(entity.getStcd());
boolean result = this.save(entity);
if (result) {
dictCodeToNameConverter.convertCodeToName(entity, CODE_TO_NAME_META_LIST);

View File

@ -1,17 +1,16 @@
package com.yfd.platform.qgc_base.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.exception.BizException;
import com.yfd.platform.qgc_base.domain.SdAimonitorBH;
import com.yfd.platform.qgc_base.mapper.SdAimonitorBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdAimonitorBHService;
import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.SecurityUtils;
import com.yfd.platform.utils.*;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -33,7 +32,8 @@ public class SdAimonitorBHServiceImpl extends ServiceImpl<SdAimonitorBHMapper, S
@Resource
private DictCodeToNameConverter dictCodeToNameConverter;
@Resource
private StcdUniqueValidator stcdUniqueValidator;
private static final List<CodeToNameMetadataBo> CODE_TO_NAME_META_LIST = new ArrayList<>();
static {
@ -57,6 +57,11 @@ public class SdAimonitorBHServiceImpl extends ServiceImpl<SdAimonitorBHMapper, S
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(SdAimonitorBH entity, String source) {
if (entity == null || StrUtil.isBlank(entity.getStcd())) {
throw new BizException("站点编码不能为空");
}
// 检查 STCD V_MS_STBPRP_T 视图中是否已存在
stcdUniqueValidator.throwIfExists(entity.getStcd());
boolean result = this.save(entity);
if (result) {
dictCodeToNameConverter.convertCodeToName(entity, CODE_TO_NAME_META_LIST);

View File

@ -1,8 +1,10 @@
package com.yfd.platform.qgc_base.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.exception.BizException;
import com.yfd.platform.qgc_base.domain.SdArtsgBH;
import com.yfd.platform.qgc_base.mapper.SdArtsgBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
@ -10,6 +12,7 @@ import com.yfd.platform.qgc_base.service.ISdArtsgBHService;
import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.StcdUniqueValidator;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -24,7 +27,8 @@ public class SdArtsgBHServiceImpl extends ServiceImpl<SdArtsgBHMapper, SdArtsgBH
@Resource
private DictCodeToNameConverter dictCodeToNameConverter;
@Resource
private StcdUniqueValidator stcdUniqueValidator;
/**
* 代码转名称元数据配置列表静态初始化
* <p>
@ -64,6 +68,11 @@ public class SdArtsgBHServiceImpl extends ServiceImpl<SdArtsgBHMapper, SdArtsgBH
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(SdArtsgBH entity, String source) {
if (entity == null || StrUtil.isBlank(entity.getStcd())) {
throw new BizException("站点编码不能为空");
}
// 检查 STCD V_MS_STBPRP_T 视图中是否已存在
stcdUniqueValidator.throwIfExists(entity.getStcd());
boolean result = this.save(entity);
if (result) {
dictCodeToNameConverter.convertCodeToName(entity, CODE_TO_NAME_META_LIST);

View File

@ -1,17 +1,16 @@
package com.yfd.platform.qgc_base.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.exception.BizException;
import com.yfd.platform.qgc_base.domain.SdDwBH;
import com.yfd.platform.qgc_base.mapper.SdDwBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdDwBHService;
import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.SecurityUtils;
import com.yfd.platform.utils.*;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -30,7 +29,8 @@ public class SdDwBHServiceImpl extends ServiceImpl<SdDwBHMapper, SdDwBH> impleme
@Resource
private DictCodeToNameConverter dictCodeToNameConverter;
@Resource
private StcdUniqueValidator stcdUniqueValidator;
/**
* 代码转名称元数据配置列表静态初始化
* <p>
@ -66,6 +66,11 @@ public class SdDwBHServiceImpl extends ServiceImpl<SdDwBHMapper, SdDwBH> impleme
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(SdDwBH entity, String source) {
if (entity == null || StrUtil.isBlank(entity.getStcd())) {
throw new BizException("站点编码不能为空");
}
// 检查 STCD V_MS_STBPRP_T 视图中是否已存在
stcdUniqueValidator.throwIfExists(entity.getStcd());
boolean result = this.save(entity);
if (result) {
dictCodeToNameConverter.convertCodeToName(entity, CODE_TO_NAME_META_LIST);

View File

@ -23,6 +23,7 @@ import com.yfd.platform.common.DataSourceResult;
import com.yfd.platform.common.GroupHelper;
import com.yfd.platform.common.GroupingInfo;
import com.yfd.platform.common.MicroservicDynamicSQLMapper;
import com.yfd.platform.common.exception.BizException;
import com.yfd.platform.qgc_base.domain.vo.*;
import com.yfd.platform.qgc_data.domain.SysUserDataScope;
import com.yfd.platform.qgc_data.mapper.SysUserDataScopeMapper;
@ -134,6 +135,9 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
@Resource
private ObjectMapper objectMapper;
@Resource
private StcdUniqueValidator stcdUniqueValidator;
@Resource
private IAdminAuthService adminAuthService;
@ -292,6 +296,11 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
@CacheEvict(cacheNames = "engInfoCache", allEntries = true)
@Transactional(rollbackFor = Exception.class)
public boolean addEngInfo(SdEngInfoBH engInfo, String source) {
if (engInfo == null || StrUtil.isBlank(engInfo.getStcd())) {
throw new BizException("站点编码不能为空");
}
// 检查 STCD V_MS_STBPRP_T 视图中是否已存在
stcdUniqueValidator.throwIfExists(engInfo.getStcd());
// fillRelatedNameFields(engInfo);
boolean result = this.save(engInfo);
if (result) {

View File

@ -1,17 +1,16 @@
package com.yfd.platform.qgc_base.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.exception.BizException;
import com.yfd.platform.qgc_base.domain.SdEqBH;
import com.yfd.platform.qgc_base.mapper.SdEqBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdEqBHService;
import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.SecurityUtils;
import com.yfd.platform.utils.*;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -30,7 +29,8 @@ public class SdEqBHServiceImpl extends ServiceImpl<SdEqBHMapper, SdEqBH> impleme
@Resource
private DictCodeToNameConverter dictCodeToNameConverter;
@Resource
private StcdUniqueValidator stcdUniqueValidator;
/**
* 代码转名称元数据配置列表静态初始化
* <p>
@ -66,6 +66,11 @@ public class SdEqBHServiceImpl extends ServiceImpl<SdEqBHMapper, SdEqBH> impleme
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(SdEqBH entity, String source) {
if (entity == null || StrUtil.isBlank(entity.getStcd())) {
throw new BizException("站点编码不能为空");
}
// 检查 STCD V_MS_STBPRP_T 视图中是否已存在
stcdUniqueValidator.throwIfExists(entity.getStcd());
boolean result = this.save(entity);
if (result) {
dictCodeToNameConverter.convertCodeToName(entity, CODE_TO_NAME_META_LIST);

View File

@ -1,8 +1,10 @@
package com.yfd.platform.qgc_base.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.exception.BizException;
import com.yfd.platform.qgc_base.domain.SdFbrdBH;
import com.yfd.platform.qgc_base.mapper.SdFbrdBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
@ -10,6 +12,7 @@ import com.yfd.platform.qgc_base.service.ISdFbrdBHService;
import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.StcdUniqueValidator;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -27,7 +30,8 @@ public class SdFbrdBHServiceImpl extends ServiceImpl<SdFbrdBHMapper, SdFbrdBH> i
@Resource
private DictCodeToNameConverter dictCodeToNameConverter;
@Resource
private StcdUniqueValidator stcdUniqueValidator;
/**
* 代码转名称元数据配置列表静态初始化
* <p>
@ -63,6 +67,11 @@ public class SdFbrdBHServiceImpl extends ServiceImpl<SdFbrdBHMapper, SdFbrdBH> i
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(SdFbrdBH entity, String source) {
if (entity == null || StrUtil.isBlank(entity.getStcd())) {
throw new BizException("站点编码不能为空");
}
// 检查 STCD V_MS_STBPRP_T 视图中是否已存在
stcdUniqueValidator.throwIfExists(entity.getStcd());
boolean result = this.save(entity);
if (result) {
dictCodeToNameConverter.convertCodeToName(entity, CODE_TO_NAME_META_LIST);

View File

@ -1,17 +1,16 @@
package com.yfd.platform.qgc_base.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.exception.BizException;
import com.yfd.platform.qgc_base.domain.SdFhbtBH;
import com.yfd.platform.qgc_base.mapper.SdFhbtBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdFhbtBHService;
import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.SecurityUtils;
import com.yfd.platform.utils.*;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -30,7 +29,8 @@ public class SdFhbtBHServiceImpl extends ServiceImpl<SdFhbtBHMapper, SdFhbtBH> i
@Resource
private DictCodeToNameConverter dictCodeToNameConverter;
@Resource
private StcdUniqueValidator stcdUniqueValidator;
/**
* 代码转名称元数据配置列表静态初始化
* <p>
@ -67,6 +67,11 @@ public class SdFhbtBHServiceImpl extends ServiceImpl<SdFhbtBHMapper, SdFhbtBH> i
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(SdFhbtBH entity, String source) {
if (entity == null || StrUtil.isBlank(entity.getStcd())) {
throw new BizException("站点编码不能为空");
}
// 检查 STCD V_MS_STBPRP_T 视图中是否已存在
stcdUniqueValidator.throwIfExists(entity.getStcd());
boolean result = this.save(entity);
if (result) {
dictCodeToNameConverter.convertCodeToName(entity, CODE_TO_NAME_META_LIST);

View File

@ -1,10 +1,12 @@
package com.yfd.platform.qgc_base.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.exception.BizException;
import com.yfd.platform.qgc_base.domain.SdEngInfoBH;
import com.yfd.platform.qgc_base.domain.SdFpssBH;
import com.yfd.platform.qgc_base.mapper.SdEngInfoBHMapper;
@ -14,10 +16,7 @@ import com.yfd.platform.qgc_base.service.ISdFpssBHService;
import com.yfd.platform.qgc_data.domain.SysUserDataScope;
import com.yfd.platform.qgc_data.mapper.SysUserDataScopeMapper;
import com.yfd.platform.system.service.IAdminAuthService;
import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.SecurityUtils;
import com.yfd.platform.utils.*;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
@ -42,7 +41,8 @@ public class SdFpssBHServiceImpl extends ServiceImpl<SdFpssBHMapper, SdFpssBH> i
@Resource
private IMsOperationLogService msOperationLogService;
@Resource
private StcdUniqueValidator stcdUniqueValidator;
/**
* 代码转名称元数据配置列表静态初始化
* <p>
@ -213,6 +213,11 @@ public class SdFpssBHServiceImpl extends ServiceImpl<SdFpssBHMapper, SdFpssBH> i
@Override
public boolean add(SdFpssBH entity, String source) {
if (entity == null || StrUtil.isBlank(entity.getStcd())) {
throw new BizException("站点编码不能为空");
}
// 检查 STCD V_MS_STBPRP_T 视图中是否已存在
stcdUniqueValidator.throwIfExists(entity.getStcd());
boolean result = save(entity);
if (result) {
dictCodeToNameConverter.convertCodeToName(entity, CODE_TO_NAME_META_LIST);

View File

@ -1,17 +1,16 @@
package com.yfd.platform.qgc_base.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.exception.BizException;
import com.yfd.platform.qgc_base.domain.SdOpinfoBH;
import com.yfd.platform.qgc_base.mapper.SdOpinfoBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdOpinfoBHService;
import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.SecurityUtils;
import com.yfd.platform.utils.*;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -30,7 +29,8 @@ public class SdOpinfoBHServiceImpl extends ServiceImpl<SdOpinfoBHMapper, SdOpinf
@Resource
private DictCodeToNameConverter dictCodeToNameConverter;
@Resource
private StcdUniqueValidator stcdUniqueValidator;
/**
* 代码转名称元数据配置列表静态初始化
* <p>
@ -67,6 +67,11 @@ public class SdOpinfoBHServiceImpl extends ServiceImpl<SdOpinfoBHMapper, SdOpinf
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(SdOpinfoBH entity, String source) {
if (entity == null || StrUtil.isBlank(entity.getStcd())) {
throw new BizException("站点编码不能为空");
}
// 检查 STCD V_MS_STBPRP_T 视图中是否已存在
stcdUniqueValidator.throwIfExists(entity.getStcd());
boolean result = this.save(entity);
if (result) {
dictCodeToNameConverter.convertCodeToName(entity, CODE_TO_NAME_META_LIST);

View File

@ -1,8 +1,10 @@
package com.yfd.platform.qgc_base.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.exception.BizException;
import com.yfd.platform.qgc_base.domain.SdOtteBH;
import com.yfd.platform.qgc_base.mapper.SdOtteBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
@ -10,6 +12,7 @@ import com.yfd.platform.qgc_base.service.ISdOtteBHService;
import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.StcdUniqueValidator;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -27,7 +30,8 @@ public class SdOtteBHServiceImpl extends ServiceImpl<SdOtteBHMapper, SdOtteBH> i
@Resource
private DictCodeToNameConverter dictCodeToNameConverter;
@Resource
private StcdUniqueValidator stcdUniqueValidator;
/**
* 代码转名称元数据配置列表静态初始化
* <p>
@ -66,6 +70,11 @@ public class SdOtteBHServiceImpl extends ServiceImpl<SdOtteBHMapper, SdOtteBH> i
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(SdOtteBH entity, String source) {
if (entity == null || StrUtil.isBlank(entity.getStcd())) {
throw new BizException("站点编码不能为空");
}
// 检查 STCD V_MS_STBPRP_T 视图中是否已存在
stcdUniqueValidator.throwIfExists(entity.getStcd());
boolean result = this.save(entity);
if (result) {
dictCodeToNameConverter.convertCodeToName(entity, CODE_TO_NAME_META_LIST);

View File

@ -1,8 +1,10 @@
package com.yfd.platform.qgc_base.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.exception.BizException;
import com.yfd.platform.qgc_base.domain.SdOtweBH;
import com.yfd.platform.qgc_base.mapper.SdOtweBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
@ -10,6 +12,7 @@ import com.yfd.platform.qgc_base.service.ISdOtweBHService;
import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.StcdUniqueValidator;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -26,7 +29,8 @@ public class SdOtweBHServiceImpl extends ServiceImpl<SdOtweBHMapper, SdOtweBH> i
private IMsOperationLogService msOperationLogService;
@Resource
private DictCodeToNameConverter dictCodeToNameConverter;
@Resource
private StcdUniqueValidator stcdUniqueValidator;
/**
* 代码转名称元数据配置列表静态初始化
* <p>
@ -64,6 +68,11 @@ public class SdOtweBHServiceImpl extends ServiceImpl<SdOtweBHMapper, SdOtweBH> i
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(SdOtweBH entity, String source) {
if (entity == null || StrUtil.isBlank(entity.getStcd())) {
throw new BizException("站点编码不能为空");
}
// 检查 STCD V_MS_STBPRP_T 视图中是否已存在
stcdUniqueValidator.throwIfExists(entity.getStcd());
boolean result = this.save(entity);
if (result) {
dictCodeToNameConverter.convertCodeToName(entity, CODE_TO_NAME_META_LIST);

View File

@ -1,17 +1,16 @@
package com.yfd.platform.qgc_base.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.exception.BizException;
import com.yfd.platform.qgc_base.domain.SdSonarBH;
import com.yfd.platform.qgc_base.mapper.SdSonarBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdSonarBHService;
import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.SecurityUtils;
import com.yfd.platform.utils.*;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -29,7 +28,8 @@ public class SdSonarBHServiceImpl extends ServiceImpl<SdSonarBHMapper, SdSonarBH
private IMsOperationLogService msOperationLogService;
@Resource
private DictCodeToNameConverter dictCodeToNameConverter;
@Resource
private StcdUniqueValidator stcdUniqueValidator;
/**
* 代码转名称元数据配置列表静态初始化
* <p>
@ -69,6 +69,11 @@ public class SdSonarBHServiceImpl extends ServiceImpl<SdSonarBHMapper, SdSonarBH
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(SdSonarBH entity, String source) {
if (entity == null || StrUtil.isBlank(entity.getStcd())) {
throw new BizException("站点编码不能为空");
}
// 检查 STCD V_MS_STBPRP_T 视图中是否已存在
stcdUniqueValidator.throwIfExists(entity.getStcd());
boolean result = this.save(entity);
if (result) {
dictCodeToNameConverter.convertCodeToName(entity, CODE_TO_NAME_META_LIST);

View File

@ -1,8 +1,10 @@
package com.yfd.platform.qgc_base.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.exception.BizException;
import com.yfd.platform.qgc_base.domain.SdTeBH;
import com.yfd.platform.qgc_base.mapper.SdTeBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
@ -10,6 +12,7 @@ import com.yfd.platform.qgc_base.service.ISdTeBHService;
import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.StcdUniqueValidator;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -26,7 +29,8 @@ public class SdTeBHServiceImpl extends ServiceImpl<SdTeBHMapper, SdTeBH> impleme
private IMsOperationLogService msOperationLogService;
@Resource
private DictCodeToNameConverter dictCodeToNameConverter;
@Resource
private StcdUniqueValidator stcdUniqueValidator;
/**
* 代码转名称元数据配置列表静态初始化
* <p>
@ -64,6 +68,11 @@ public class SdTeBHServiceImpl extends ServiceImpl<SdTeBHMapper, SdTeBH> impleme
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(SdTeBH entity, String source) {
if (entity == null || StrUtil.isBlank(entity.getStcd())) {
throw new BizException("站点编码不能为空");
}
// 检查 STCD V_MS_STBPRP_T 视图中是否已存在
stcdUniqueValidator.throwIfExists(entity.getStcd());
boolean result = this.save(entity);
if (result) {
dictCodeToNameConverter.convertCodeToName(entity, CODE_TO_NAME_META_LIST);

View File

@ -1,17 +1,16 @@
package com.yfd.platform.qgc_base.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.exception.BizException;
import com.yfd.platform.qgc_base.domain.SdVaBH;
import com.yfd.platform.qgc_base.mapper.SdVaBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdVaBHService;
import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.SecurityUtils;
import com.yfd.platform.utils.*;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -29,7 +28,8 @@ public class SdVaBHServiceImpl extends ServiceImpl<SdVaBHMapper, SdVaBH> impleme
private IMsOperationLogService msOperationLogService;
@Resource
private DictCodeToNameConverter dictCodeToNameConverter;
@Resource
private StcdUniqueValidator stcdUniqueValidator;
/**
* 代码转名称元数据配置列表静态初始化
* <p>
@ -65,6 +65,11 @@ public class SdVaBHServiceImpl extends ServiceImpl<SdVaBHMapper, SdVaBH> impleme
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(SdVaBH entity, String source) {
if (entity == null || StrUtil.isBlank(entity.getStcd())) {
throw new BizException("站点编码不能为空");
}
// 检查 STCD V_MS_STBPRP_T 视图中是否已存在
stcdUniqueValidator.throwIfExists(entity.getStcd());
boolean result = this.save(entity);
if (result) {
dictCodeToNameConverter.convertCodeToName(entity, CODE_TO_NAME_META_LIST);

View File

@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.exception.BizException;
import com.yfd.platform.qgc_base.domain.SdVdinfoB;
import com.yfd.platform.qgc_base.mapper.SdVdinfoBMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
@ -11,6 +12,7 @@ import com.yfd.platform.qgc_base.service.ISdVdinfoBService;
import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.StcdUniqueValidator;
import jakarta.annotation.Resource;
import org.checkerframework.checker.units.qual.C;
import org.springframework.stereotype.Service;
@ -28,7 +30,8 @@ public class SdVdinfoBServiceImpl extends ServiceImpl<SdVdinfoBMapper, SdVdinfoB
private IMsOperationLogService msOperationLogService;
@Resource
private DictCodeToNameConverter dictCodeToNameConverter;
@Resource
private StcdUniqueValidator stcdUniqueValidator;
/**
* 代码转名称元数据配置列表静态初始化
* <p>
@ -67,6 +70,11 @@ public class SdVdinfoBServiceImpl extends ServiceImpl<SdVdinfoBMapper, SdVdinfoB
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(SdVdinfoB entity, String source) {
if (entity == null || StrUtil.isBlank(entity.getStcd())) {
throw new BizException("站点编码不能为空");
}
// 检查 STCD V_MS_STBPRP_T 视图中是否已存在
stcdUniqueValidator.throwIfExists(entity.getStcd());
String mntp = entity.getMntp();
if (StrUtil.isBlank(mntp)) {
entity.setMntp("实时视频");

View File

@ -1,17 +1,16 @@
package com.yfd.platform.qgc_base.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.exception.BizException;
import com.yfd.platform.qgc_base.domain.SdVpBH;
import com.yfd.platform.qgc_base.mapper.SdVpBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdVpBHService;
import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.SecurityUtils;
import com.yfd.platform.utils.*;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -29,7 +28,8 @@ public class SdVpBHServiceImpl extends ServiceImpl<SdVpBHMapper, SdVpBH> impleme
private IMsOperationLogService msOperationLogService;
@Resource
private DictCodeToNameConverter dictCodeToNameConverter;
@Resource
private StcdUniqueValidator stcdUniqueValidator;
/**
* 代码转名称元数据配置列表静态初始化
* <p>
@ -65,6 +65,11 @@ public class SdVpBHServiceImpl extends ServiceImpl<SdVpBHMapper, SdVpBH> impleme
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(SdVpBH entity, String source) {
if (entity == null || StrUtil.isBlank(entity.getStcd())) {
throw new BizException("站点编码不能为空");
}
// 检查 STCD V_MS_STBPRP_T 视图中是否已存在
stcdUniqueValidator.throwIfExists(entity.getStcd());
boolean result = this.save(entity);
if (result) {
dictCodeToNameConverter.convertCodeToName(entity, CODE_TO_NAME_META_LIST);

View File

@ -1,8 +1,10 @@
package com.yfd.platform.qgc_base.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.exception.BizException;
import com.yfd.platform.qgc_base.domain.SdWeBH;
import com.yfd.platform.qgc_base.mapper.SdWeBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
@ -10,6 +12,7 @@ import com.yfd.platform.qgc_base.service.ISdWeBHService;
import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.StcdUniqueValidator;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -27,7 +30,8 @@ public class SdWeBHServiceImpl extends ServiceImpl<SdWeBHMapper, SdWeBH> impleme
@Resource
private DictCodeToNameConverter dictCodeToNameConverter;
@Resource
private StcdUniqueValidator stcdUniqueValidator;
/**
* 代码转名称元数据配置列表静态初始化
* <p>
@ -66,6 +70,11 @@ public class SdWeBHServiceImpl extends ServiceImpl<SdWeBHMapper, SdWeBH> impleme
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(SdWeBH entity, String source) {
if (entity == null || StrUtil.isBlank(entity.getStcd())) {
throw new BizException("站点编码不能为空");
}
// 检查 STCD V_MS_STBPRP_T 视图中是否已存在
stcdUniqueValidator.throwIfExists(entity.getStcd());
boolean result = this.save(entity);
if (result) {
dictCodeToNameConverter.convertCodeToName(entity, CODE_TO_NAME_META_LIST);

View File

@ -1,17 +1,16 @@
package com.yfd.platform.qgc_base.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.exception.BizException;
import com.yfd.platform.qgc_base.domain.SdWqBH;
import com.yfd.platform.qgc_base.mapper.SdWqBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdWqBHService;
import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.SecurityUtils;
import com.yfd.platform.utils.*;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -30,7 +29,8 @@ public class SdWqBHServiceImpl extends ServiceImpl<SdWqBHMapper, SdWqBH> impleme
@Resource
private DictCodeToNameConverter dictCodeToNameConverter;
@Resource
private StcdUniqueValidator stcdUniqueValidator;
/**
* 代码转名称元数据配置列表静态初始化
* <p>
@ -68,6 +68,11 @@ public class SdWqBHServiceImpl extends ServiceImpl<SdWqBHMapper, SdWqBH> impleme
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(SdWqBH entity, String source) {
if (entity == null || StrUtil.isBlank(entity.getStcd())) {
throw new BizException("站点编码不能为空");
}
// 检查 STCD V_MS_STBPRP_T 视图中是否已存在
stcdUniqueValidator.throwIfExists(entity.getStcd());
boolean result = this.save(entity);
if (result) {
dictCodeToNameConverter.convertCodeToName(entity, CODE_TO_NAME_META_LIST);

View File

@ -1,18 +1,17 @@
package com.yfd.platform.qgc_base.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.exception.BizException;
import com.yfd.platform.qgc_base.domain.SdWtBH;
import com.yfd.platform.qgc_base.mapper.SdWtBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdWtBHService;
import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.SecurityUtils;
import com.yfd.platform.utils.*;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -32,7 +31,8 @@ public class SdWtBHServiceImpl extends ServiceImpl<SdWtBHMapper, SdWtBH> impleme
@Resource
private DictCodeToNameConverter dictCodeToNameConverter;
@Resource
private StcdUniqueValidator stcdUniqueValidator;
/**
* 代码转名称元数据配置列表静态初始化
* <p>
@ -70,6 +70,11 @@ public class SdWtBHServiceImpl extends ServiceImpl<SdWtBHMapper, SdWtBH> impleme
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(SdWtBH entity, String source) {
if (entity == null || StrUtil.isBlank(entity.getStcd())) {
throw new BizException("站点编码不能为空");
}
// 检查 STCD V_MS_STBPRP_T 视图中是否已存在
stcdUniqueValidator.throwIfExists(entity.getStcd());
boolean result = this.save(entity);
if (result) {
dictCodeToNameConverter.convertCodeToName(entity, CODE_TO_NAME_META_LIST);

View File

@ -0,0 +1,56 @@
package com.yfd.platform.utils;
import com.yfd.platform.common.MicroservicDynamicSQLMapper;
import com.yfd.platform.common.exception.BizException;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* STCD 唯一性校验组件通过 V_MS_STBPRP_T 视图跨所有站点类型校验
* <p>
* 使用方式注入即可
* <pre>
* {@code @Resource private StcdUniqueValidator stcdUniqueValidator;}
* {@code stcdUniqueValidator.throwIfExists(stcd);}
* </pre>
*/
@Component
public class StcdUniqueValidator {
@Resource
private MicroservicDynamicSQLMapper microservicDynamicSQLMapper;
/**
* 校验 STCD 是否已在 V_MS_STBPRP_T 视图中存在存在则抛异常
*
* @param stcd 站点编码
* @throws BizException 站点编码已存在时抛出
*/
public void throwIfExists(String stcd) {
if (exists(stcd)) {
throw new BizException("当前站点编码已存在");
}
}
/**
* 检查 STCD 是否已在 V_MS_STBPRP_T 视图中存在
*
* @param stcd 站点编码
* @return true=已存在
*/
public boolean exists(String stcd) {
String sql = "SELECT COUNT(1) AS cnt FROM V_MS_STBPRP_T WHERE STCD = #{map.stcd}";
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("stcd", stcd);
List<Map<String, Object>> result = microservicDynamicSQLMapper.getAllList(sql, paramMap);
if (result != null && !result.isEmpty()) {
Object cntObj = result.get(0).get("CNT");
return cntObj != null && Long.parseLong(cntObj.toString()) > 0;
}
return false;
}
}