diff --git a/backend/src/main/java/com/yfd/platform/common/MicroservicDynamicSQLMapper.java b/backend/src/main/java/com/yfd/platform/common/MicroservicDynamicSQLMapper.java index 319f2ffd..ce0c6225 100644 --- a/backend/src/main/java/com/yfd/platform/common/MicroservicDynamicSQLMapper.java +++ b/backend/src/main/java/com/yfd/platform/common/MicroservicDynamicSQLMapper.java @@ -4,6 +4,8 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.copier.CopyOptions; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yfd.platform.datasource.DataSourceKeys; +import com.yfd.platform.datasource.TargetDataSource; import org.apache.ibatis.annotations.Mapper; import java.util.Collections; @@ -30,6 +32,11 @@ public interface MicroservicDynamicSQLMapper { Map getOneBySql(@Param("sql") String sql, @Param("map") Map map); + @Select({""}) + @TargetDataSource(DataSourceKeys.ORACLE_MASTER) + Map getOneOracleBySql(@Param("sql") String sql, @Param("map") Map map); + + default R getOneBySqlWithResultType(String sql, Map map, Class resultType) { diff --git a/backend/src/main/java/com/yfd/platform/config/DynamicPaginationInterceptor.java b/backend/src/main/java/com/yfd/platform/config/DynamicPaginationInterceptor.java new file mode 100644 index 00000000..79598636 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/config/DynamicPaginationInterceptor.java @@ -0,0 +1,41 @@ +package com.yfd.platform.config; + +import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +import com.yfd.platform.datasource.DynamicDataSource; +import org.apache.ibatis.executor.Executor; +import org.apache.ibatis.mapping.BoundSql; +import org.apache.ibatis.mapping.MappedStatement; +import org.apache.ibatis.session.ResultHandler; +import org.apache.ibatis.session.RowBounds; + +import java.sql.SQLException; + +/** + * 动态分页拦截器,根据当前数据源自动切换 Oracle/DM 分页方言 + */ +public class DynamicPaginationInterceptor extends PaginationInnerInterceptor { + + public DynamicPaginationInterceptor() { + super(DbType.DM); + } + + @Override + public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, + RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) { + this.setDbType(resolveDbType()); + super.beforeQuery(executor, ms, parameter, rowBounds, resultHandler, boundSql); + } + + /** + * 根据当前线程绑定的数据源 key 解析数据库类型: + * oracle-* → ORACLE,其他(dm-*、null)→ DM + */ + private DbType resolveDbType() { + String dsKey = DynamicDataSource.getDataSource(); + if (dsKey != null && dsKey.startsWith("oracle")) { + return DbType.ORACLE; + } + return DbType.DM; + } +} diff --git a/backend/src/main/java/com/yfd/platform/config/MybitsPlusConfig.java b/backend/src/main/java/com/yfd/platform/config/MybitsPlusConfig.java index eff73ed2..171503b6 100644 --- a/backend/src/main/java/com/yfd/platform/config/MybitsPlusConfig.java +++ b/backend/src/main/java/com/yfd/platform/config/MybitsPlusConfig.java @@ -1,37 +1,19 @@ package com.yfd.platform.config; -import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; -import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -/****************************** - * 用途说明: - * 作者姓名: pcj - * 创建时间: 2022/10/24 10:50 - ******************************/ +/** + * MyBatis-Plus 配置,使用动态分页拦截器支持 Oracle/达梦 自动切换 + */ @Configuration public class MybitsPlusConfig { -// @Bean -// public MybatisPlusInterceptor mybatisPlusInterceptor() { -// MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor(); -// mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); -// return mybatisPlusInterceptor; -// } - - /** - * 分页插件配置(Oracle 兼容) - */ @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); - // 添加分页拦截器,指定数据库类型为 Oracle -// interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.ORACLE)); - // 添加分页拦截器,指定数据库类型为 Oracle - interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.DM)); + interceptor.addInnerInterceptor(new DynamicPaginationInterceptor()); return interceptor; } - } diff --git a/backend/src/main/java/com/yfd/platform/config/SecurityConfig.java b/backend/src/main/java/com/yfd/platform/config/SecurityConfig.java index 165beccc..3fbb007d 100644 --- a/backend/src/main/java/com/yfd/platform/config/SecurityConfig.java +++ b/backend/src/main/java/com/yfd/platform/config/SecurityConfig.java @@ -61,28 +61,29 @@ public class SecurityConfig { .requestMatchers("/tempFile/**").permitAll() .requestMatchers("/system/user/auditUser").permitAll() .requestMatchers("/register/accessToken").permitAll() - .requestMatchers("/eng/**").permitAll() - .requestMatchers("/eq/**").permitAll() - .requestMatchers("/env/**").permitAll() - .requestMatchers("/warn/**").permitAll() - .requestMatchers("/threedroamb/**").permitAll() - .requestMatchers("/overview/**").permitAll() - .requestMatchers("/wt/**").permitAll() - .requestMatchers("/fb/**").permitAll() - .requestMatchers("/zq/**").permitAll() - .requestMatchers("/wq/**").permitAll() - .requestMatchers("/wte/**").permitAll() - .requestMatchers("/vd/**").permitAll() - .requestMatchers("/vap/**").permitAll() - .requestMatchers("/fp/**").permitAll() - .requestMatchers("/fpr/**").permitAll() - .requestMatchers("/fh/**").permitAll() - .requestMatchers("/data/**").permitAll() - .requestMatchers("/mapLayer/**").permitAll() - .requestMatchers("/mapmodule/**").permitAll() - .requestMatchers("/mapLegend/**").permitAll() - .requestMatchers("/base/msalongb/**").permitAll() - .requestMatchers("/base/msalongdetb/**").permitAll() +// .requestMatchers("/eng/**").permitAll() +// .requestMatchers("/eq/**").permitAll() +// .requestMatchers("/env/**").permitAll() +// .requestMatchers("/warn/**").permitAll() +// .requestMatchers("/threedroamb/**").permitAll() +// .requestMatchers("/overview/**").permitAll() +// .requestMatchers("/wt/**").permitAll() +// .requestMatchers("/fb/**").permitAll() +// .requestMatchers("/base/**").permitAll() +// .requestMatchers("/zq/**").permitAll() +// .requestMatchers("/wq/**").permitAll() +// .requestMatchers("/wte/**").permitAll() +// .requestMatchers("/vd/**").permitAll() +// .requestMatchers("/vap/**").permitAll() +// .requestMatchers("/fp/**").permitAll() +// .requestMatchers("/fpr/**").permitAll() +// .requestMatchers("/fh/**").permitAll() +// .requestMatchers("/data/**").permitAll() +// .requestMatchers("/mapLayer/**").permitAll() +// .requestMatchers("/mapmodule/**").permitAll() +// .requestMatchers("/mapLegend/**").permitAll() +// .requestMatchers("/base/msalongb/**").permitAll() +// .requestMatchers("/base/msalongdetb/**").permitAll() .requestMatchers("/sms/**").permitAll() .requestMatchers(HttpMethod.GET, "/").permitAll() .requestMatchers(HttpMethod.GET, diff --git a/backend/src/main/java/com/yfd/platform/config/SwaggerConfig.java b/backend/src/main/java/com/yfd/platform/config/SwaggerConfig.java index 2e43cdb8..c28488e1 100644 --- a/backend/src/main/java/com/yfd/platform/config/SwaggerConfig.java +++ b/backend/src/main/java/com/yfd/platform/config/SwaggerConfig.java @@ -257,6 +257,14 @@ public class SwaggerConfig { .build(); } + @Bean + public GroupedOpenApi groupCusColumnApi() { + return GroupedOpenApi.builder() + .group("5.4 自定义筛选列") + .packagesToScan("com.yfd.platform.qgc_sys.cuscolumn.controller") + .build(); + } + @Bean public GroupedOpenApi groupLygkApi() { diff --git a/backend/src/main/java/com/yfd/platform/datasource/DataSourceAspect.java b/backend/src/main/java/com/yfd/platform/datasource/DataSourceAspect.java index f20c0f87..33b7fb28 100644 --- a/backend/src/main/java/com/yfd/platform/datasource/DataSourceAspect.java +++ b/backend/src/main/java/com/yfd/platform/datasource/DataSourceAspect.java @@ -1,55 +1,41 @@ package com.yfd.platform.datasource; -import cn.hutool.core.util.StrUtil; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.core.annotation.AnnotationUtils; import org.springframework.stereotype.Component; -import java.lang.reflect.Method; - -/****************************** - * 用途说明: - * 作者姓名: wxy - * 创建时间: 2022/9/23 17:50 - ******************************/ +/** + * 数据源切换切面,处理 @TargetDataSource 注解 + */ @Aspect @Component public class DataSourceAspect { - @Pointcut("@annotation(com.yfd.platform.datasource.DataSource)") + @Pointcut("@annotation(com.yfd.platform.datasource.TargetDataSource)") public void dataSourcePointCut() { - } - private String DataBaseName; - @Around("dataSourcePointCut()") public Object around(ProceedingJoinPoint point) throws Throwable { MethodSignature signature = (MethodSignature) point.getSignature(); - Method method = signature.getMethod(); - if (StrUtil.isNotBlank(DataBaseName)){ - DynamicDataSource.setDataSource(DataBaseName); - }else { - DynamicDataSource.setDataSource("master"); + TargetDataSource annotation = AnnotationUtils.findAnnotation(signature.getMethod(), TargetDataSource.class); + if (annotation == null) { + // 类级别注解 + annotation = AnnotationUtils.findAnnotation(point.getTarget().getClass(), TargetDataSource.class); } + String dsKey = (annotation != null && !annotation.value().isEmpty()) + ? annotation.value() + : DataSourceKeys.DEFAULT; + DynamicDataSource.setDataSource(dsKey); try { return point.proceed(); } finally { DynamicDataSource.clearDataSource(); } } - - public String getDataBase(Integer type){ - if (type == 1){ - DataBaseName="master"; - }else { - DataBaseName="slave"; - } - return DataBaseName; - } - } diff --git a/backend/src/main/java/com/yfd/platform/datasource/DataSourceKeys.java b/backend/src/main/java/com/yfd/platform/datasource/DataSourceKeys.java new file mode 100644 index 00000000..19a8459a --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/datasource/DataSourceKeys.java @@ -0,0 +1,22 @@ +package com.yfd.platform.datasource; + +/** + * 数据源 key 常量 + */ +public interface DataSourceKeys { + + /** 达梦主库 */ + String DM_MASTER = "dm-master"; + + /** 达梦从库 */ + String DM_SLAVE = "dm-slave"; + + /** Oracle 主库 */ + String ORACLE_MASTER = "oracle-master"; + + /** Oracle 从库 */ + String ORACLE_SLAVE = "oracle-slave"; + + /** 默认数据源 */ + String DEFAULT = DM_MASTER; +} diff --git a/backend/src/main/java/com/yfd/platform/datasource/DynamicDataSourceConfig.java b/backend/src/main/java/com/yfd/platform/datasource/DynamicDataSourceConfig.java index f5594437..d9e984ae 100644 --- a/backend/src/main/java/com/yfd/platform/datasource/DynamicDataSourceConfig.java +++ b/backend/src/main/java/com/yfd/platform/datasource/DynamicDataSourceConfig.java @@ -1,28 +1,28 @@ package com.yfd.platform.datasource; +import com.alibaba.druid.pool.DruidDataSource; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; -import org.springframework.stereotype.Component; -import com.alibaba.druid.pool.DruidDataSource; import javax.sql.DataSource; import java.util.HashMap; import java.util.Map; -/****************************** - * 用途说明: - * 作者姓名: wxy - * 创建时间: 2022/9/23 17:45 - ******************************/ +/** + * 动态数据源配置,支持 达梦(DM) 和 Oracle 两种数据库,每种各有主从(master/slave) + * + * @author yfd + */ @Configuration -@Component public class DynamicDataSourceConfig { + // ==================== 达梦(DM) 数据源 ==================== + @Bean - @ConfigurationProperties("spring.datasource.druid.master") - public DataSource wglMasterDataSource(){ + @ConfigurationProperties("spring.datasource.druid.dm-master") + public DataSource dmMasterDataSource() { DruidDataSource dataSource = new DruidDataSource(); dataSource.setBreakAfterAcquireFailure(true); dataSource.setConnectionErrorRetryAttempts(0); @@ -30,22 +30,48 @@ public class DynamicDataSourceConfig { } @Bean - @ConfigurationProperties("spring.datasource.druid.slave") - public DataSource wglSlaveDataSource(){ + @ConfigurationProperties("spring.datasource.druid.dm-slave") + public DataSource dmSlaveDataSource() { DruidDataSource dataSource = new DruidDataSource(); dataSource.setBreakAfterAcquireFailure(true); dataSource.setConnectionErrorRetryAttempts(0); return dataSource; } + // ==================== Oracle 数据源 ==================== + + @Bean + @ConfigurationProperties("spring.datasource.druid.oracle-master") + public DataSource oracleMasterDataSource() { + DruidDataSource dataSource = new DruidDataSource(); + dataSource.setBreakAfterAcquireFailure(true); + dataSource.setConnectionErrorRetryAttempts(0); + return dataSource; + } + + @Bean + @ConfigurationProperties("spring.datasource.druid.oracle-slave") + public DataSource oracleSlaveDataSource() { + DruidDataSource dataSource = new DruidDataSource(); + dataSource.setBreakAfterAcquireFailure(true); + dataSource.setConnectionErrorRetryAttempts(0); + return dataSource; + } + + // ==================== 路由数据源 ==================== + @Bean @Primary - public DynamicDataSource dataSource(DataSource wglMasterDataSource, DataSource wglSlaveDataSource) { + public DynamicDataSource dataSource(DataSource dmMasterDataSource, + DataSource dmSlaveDataSource, + DataSource oracleMasterDataSource, + DataSource oracleSlaveDataSource) { Map targetDataSources = new HashMap<>(); - targetDataSources.put("master",wglMasterDataSource); - targetDataSources.put("slave",wglSlaveDataSource); - return new DynamicDataSource(wglMasterDataSource, targetDataSources); + targetDataSources.put(DataSourceKeys.DM_MASTER, dmMasterDataSource); + targetDataSources.put(DataSourceKeys.DM_SLAVE, dmSlaveDataSource); + targetDataSources.put(DataSourceKeys.ORACLE_MASTER, oracleMasterDataSource); + targetDataSources.put(DataSourceKeys.ORACLE_SLAVE, oracleSlaveDataSource); + // 默认使用达梦主库 + return new DynamicDataSource(dmMasterDataSource, targetDataSources); } - - } diff --git a/backend/src/main/java/com/yfd/platform/datasource/TargetDataSource.java b/backend/src/main/java/com/yfd/platform/datasource/TargetDataSource.java new file mode 100644 index 00000000..b208ff44 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/datasource/TargetDataSource.java @@ -0,0 +1,23 @@ +package com.yfd.platform.datasource; + +import java.lang.annotation.*; + +/** + * 动态数据源注解,用于方法级别切换数据源 + *

+ * 支持的取值: + *

    + *
  • "dm-master" / "dm-slave" — 达梦数据库
  • + *
  • "oracle-master" / "oracle-slave" — Oracle 数据库
  • + *
+ * 默认值为 "dm-master" + * + * @author yfd + */ +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface TargetDataSource { + + String value() default DataSourceKeys.DM_MASTER; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/MsEiaApprovalBController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/MsEiaApprovalBController.java new file mode 100644 index 00000000..5dd44363 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/MsEiaApprovalBController.java @@ -0,0 +1,60 @@ +package com.yfd.platform.qgc_base.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.qgc_base.domain.MsEiaApprovalB; +import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest; +import com.yfd.platform.qgc_base.service.IMsEiaApprovalBService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +/** + * 生态环保批复文件管理 + */ +@RestController +@RequestMapping("/base/eiaApproval") +@Tag(name = "生态环保批复文件管理") +public class MsEiaApprovalBController { + + @Resource + private IMsEiaApprovalBService service; + + @Resource + private ObjectMapper objectMapper; + + @PostMapping("/page") + @Operation(summary = "分页查询") + public ResponseResult queryPageList(@RequestBody DataSourceRequest request) { + Page page = service.queryPageList(request); + return ResponseResult.successData(page); + } + + @PostMapping("/add") + @Operation(summary = "新增") + public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) { + MsEiaApprovalB entity = request == null || request.getEngInfo() == null ? null + : objectMapper.convertValue(request.getEngInfo(), MsEiaApprovalB.class); + boolean result = service.add(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/update") + @Operation(summary = "修改") + public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) { + MsEiaApprovalB entity = request == null || request.getEngInfo() == null ? null + : objectMapper.convertValue(request.getEngInfo(), MsEiaApprovalB.class); + boolean result = service.update(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除") + public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) { + boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource()); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/MsWarnRuleBController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/MsWarnRuleBController.java new file mode 100644 index 00000000..dfa03d7b --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/MsWarnRuleBController.java @@ -0,0 +1,60 @@ +package com.yfd.platform.qgc_base.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.qgc_base.domain.MsWarnRuleB; +import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest; +import com.yfd.platform.qgc_base.service.IMsWarnRuleBService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +/** + * 预警规则配置管理 + */ +@RestController +@RequestMapping("/base/warnRule") +@Tag(name = "预警规则配置管理") +public class MsWarnRuleBController { + + @Resource + private IMsWarnRuleBService service; + + @Resource + private ObjectMapper objectMapper; + + @PostMapping("/page") + @Operation(summary = "分页查询") + public ResponseResult queryPageList(@RequestBody DataSourceRequest request) { + Page page = service.queryPageList(request); + return ResponseResult.successData(page); + } + + @PostMapping("/add") + @Operation(summary = "新增") + public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) { + MsWarnRuleB entity = request == null || request.getEngInfo() == null ? null + : objectMapper.convertValue(request.getEngInfo(), MsWarnRuleB.class); + boolean result = service.add(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/update") + @Operation(summary = "修改") + public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) { + MsWarnRuleB entity = request == null || request.getEngInfo() == null ? null + : objectMapper.convertValue(request.getEngInfo(), MsWarnRuleB.class); + boolean result = service.update(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除") + public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) { + boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource()); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdAiboxBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdAiboxBHController.java new file mode 100644 index 00000000..dee34d42 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdAiboxBHController.java @@ -0,0 +1,55 @@ +package com.yfd.platform.qgc_base.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.qgc_base.domain.SdAiboxBH; +import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest; +import com.yfd.platform.qgc_base.service.ISdAiboxBHService; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/base/aibox") +@Tag(name = "AI边缘计算盒子管理") +public class SdAiboxBHController { + + @Resource + private ISdAiboxBHService service; + + @Resource + private ObjectMapper objectMapper; + + @PostMapping("/page") + @Operation(summary = "分页查询") + public ResponseResult queryPageList(@RequestBody DataSourceRequest request) { + Page page = service.queryPageList(request); + return ResponseResult.successData(page); + } + + @PostMapping("/add") + @Operation(summary = "新增") + public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) { + SdAiboxBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdAiboxBH.class); + boolean result = service.add(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/update") + @Operation(summary = "修改") + public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) { + SdAiboxBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdAiboxBH.class); + boolean result = service.update(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除") + public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) { + boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource()); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdAimonitorBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdAimonitorBHController.java new file mode 100644 index 00000000..6b243a40 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdAimonitorBHController.java @@ -0,0 +1,60 @@ +package com.yfd.platform.qgc_base.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.qgc_base.domain.SdAimonitorBH; +import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest; +import com.yfd.platform.qgc_base.service.ISdAimonitorBHService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +/** + * AI智能监测装置管理 + */ +@RestController +@RequestMapping("/base/aimonitor") +@Tag(name = "AI智能监测装置管理") +public class SdAimonitorBHController { + + @Resource + private ISdAimonitorBHService service; + + @Resource + private ObjectMapper objectMapper; + + @PostMapping("/page") + @Operation(summary = "分页查询") + public ResponseResult queryPageList(@RequestBody DataSourceRequest request) { + Page page = service.queryPageList(request); + return ResponseResult.successData(page); + } + + @PostMapping("/add") + @Operation(summary = "新增") + public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) { + SdAimonitorBH entity = request == null || request.getEngInfo() == null ? null + : objectMapper.convertValue(request.getEngInfo(), SdAimonitorBH.class); + boolean result = service.add(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/update") + @Operation(summary = "修改") + public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) { + SdAimonitorBH entity = request == null || request.getEngInfo() == null ? null + : objectMapper.convertValue(request.getEngInfo(), SdAimonitorBH.class); + boolean result = service.update(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除") + public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) { + boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource()); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdArtsgBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdArtsgBHController.java new file mode 100644 index 00000000..a467ed80 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdArtsgBHController.java @@ -0,0 +1,55 @@ +package com.yfd.platform.qgc_base.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.qgc_base.domain.SdArtsgBH; +import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest; +import com.yfd.platform.qgc_base.service.ISdArtsgBHService; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/base/artsg") +@Tag(name = "人工产卵场管理") +public class SdArtsgBHController { + + @Resource + private ISdArtsgBHService service; + + @Resource + private ObjectMapper objectMapper; + + @PostMapping("/page") + @Operation(summary = "分页查询") + public ResponseResult queryPageList(@RequestBody DataSourceRequest request) { + Page page = service.queryPageList(request); + return ResponseResult.successData(page); + } + + @PostMapping("/add") + @Operation(summary = "新增") + public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) { + SdArtsgBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdArtsgBH.class); + boolean result = service.add(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/update") + @Operation(summary = "修改") + public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) { + SdArtsgBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdArtsgBH.class); + boolean result = service.update(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除") + public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) { + boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource()); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdDwBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdDwBHController.java new file mode 100644 index 00000000..ab2f4f9e --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdDwBHController.java @@ -0,0 +1,55 @@ +package com.yfd.platform.qgc_base.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.qgc_base.domain.SdDwBH; +import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest; +import com.yfd.platform.qgc_base.service.ISdDwBHService; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/base/dw") +@Tag(name = "低温水设施管理") +public class SdDwBHController { + + @Resource + private ISdDwBHService service; + + @Resource + private ObjectMapper objectMapper; + + @PostMapping("/page") + @Operation(summary = "分页查询") + public ResponseResult queryPageList(@RequestBody DataSourceRequest request) { + Page page = service.queryPageList(request); + return ResponseResult.successData(page); + } + + @PostMapping("/add") + @Operation(summary = "新增") + public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) { + SdDwBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdDwBH.class); + boolean result = service.add(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/update") + @Operation(summary = "修改") + public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) { + SdDwBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdDwBH.class); + boolean result = service.update(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除") + public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) { + boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource()); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdEqBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdEqBHController.java new file mode 100644 index 00000000..c303cab1 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdEqBHController.java @@ -0,0 +1,55 @@ +package com.yfd.platform.qgc_base.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.qgc_base.domain.SdEqBH; +import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest; +import com.yfd.platform.qgc_base.service.ISdEqBHService; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/base/eq") +@Tag(name = "生态流量设施管理") +public class SdEqBHController { + + @Resource + private ISdEqBHService service; + + @Resource + private ObjectMapper objectMapper; + + @PostMapping("/page") + @Operation(summary = "分页查询") + public ResponseResult queryPageList(@RequestBody DataSourceRequest request) { + Page page = service.queryPageList(request); + return ResponseResult.successData(page); + } + + @PostMapping("/add") + @Operation(summary = "新增") + public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) { + SdEqBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdEqBH.class); + boolean result = service.add(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/update") + @Operation(summary = "修改") + public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) { + SdEqBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdEqBH.class); + boolean result = service.update(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除") + public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) { + boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource()); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdFbrdBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdFbrdBHController.java new file mode 100644 index 00000000..6bd460f5 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdFbrdBHController.java @@ -0,0 +1,55 @@ +package com.yfd.platform.qgc_base.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.qgc_base.domain.SdFbrdBH; +import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest; +import com.yfd.platform.qgc_base.service.ISdFbrdBHService; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/base/fbrd") +@Tag(name = "鱼类增殖站管理") +public class SdFbrdBHController { + + @Resource + private ISdFbrdBHService service; + + @Resource + private ObjectMapper objectMapper; + + @PostMapping("/page") + @Operation(summary = "分页查询") + public ResponseResult queryPageList(@RequestBody DataSourceRequest request) { + Page page = service.queryPageList(request); + return ResponseResult.successData(page); + } + + @PostMapping("/add") + @Operation(summary = "新增") + public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) { + SdFbrdBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdFbrdBH.class); + boolean result = service.add(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/update") + @Operation(summary = "修改") + public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) { + SdFbrdBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdFbrdBH.class); + boolean result = service.update(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除") + public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) { + boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource()); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdFhbtBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdFhbtBHController.java new file mode 100644 index 00000000..b5b12836 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdFhbtBHController.java @@ -0,0 +1,55 @@ +package com.yfd.platform.qgc_base.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.qgc_base.domain.SdFhbtBH; +import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest; +import com.yfd.platform.qgc_base.service.ISdFhbtBHService; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/base/fhbt") +@Tag(name = "栖息地保护工程管理") +public class SdFhbtBHController { + + @Resource + private ISdFhbtBHService service; + + @Resource + private ObjectMapper objectMapper; + + @PostMapping("/page") + @Operation(summary = "分页查询") + public ResponseResult queryPageList(@RequestBody DataSourceRequest request) { + Page page = service.queryPageList(request); + return ResponseResult.successData(page); + } + + @PostMapping("/add") + @Operation(summary = "新增") + public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) { + SdFhbtBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdFhbtBH.class); + boolean result = service.add(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/update") + @Operation(summary = "修改") + public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) { + SdFhbtBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdFhbtBH.class); + boolean result = service.update(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除") + public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) { + boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource()); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdFpssBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdFpssBHController.java index 9c38b5d1..9089ba20 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdFpssBHController.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdFpssBHController.java @@ -1,8 +1,11 @@ package com.yfd.platform.qgc_base.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.fasterxml.jackson.databind.ObjectMapper; import com.yfd.platform.annotation.Log; +import com.yfd.platform.common.DataSourceRequest; import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest; import com.yfd.platform.qgc_base.domain.SdFpssBH; import com.yfd.platform.qgc_base.service.ISdFpssBHService; import io.swagger.v3.oas.annotations.Operation; @@ -22,6 +25,8 @@ public class SdFpssBHController { @Resource private ISdFpssBHService sdFpssBHService; + @Resource + private ObjectMapper objectMapper; @GetMapping("/queryPageList") @Operation(summary = "分页查询过鱼设施列表") @@ -37,6 +42,13 @@ public class SdFpssBHController { return ResponseResult.successData(result); } + @PostMapping("/page") + @Operation(summary = "分页查询") + public ResponseResult queryPageList(@RequestBody DataSourceRequest request) { + Page page = sdFpssBHService.queryPageList(request); + return ResponseResult.successData(page); + } + @GetMapping("/list") @Operation(summary = "查询所有过鱼设施") public ResponseResult list() { @@ -68,24 +80,33 @@ public class SdFpssBHController { @Log(module = "过鱼设施管理", value = "新增过鱼设施") @PostMapping("/add") @Operation(summary = "新增过鱼设施") - public ResponseResult add(@RequestBody SdFpssBH sdFpssBH) { - boolean result = sdFpssBHService.add(sdFpssBH); + public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) { + SdFpssBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdFpssBH.class); + boolean result = sdFpssBHService.add(entity, request == null ? null : request.getSource()); return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); } @Log(module = "过鱼设施管理", value = "修改过鱼设施") @PostMapping("/update") @Operation(summary = "修改过鱼设施") - public ResponseResult update(@RequestBody SdFpssBH sdFpssBH) { - boolean result = sdFpssBHService.updateById(sdFpssBH); + public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) { + SdFpssBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdFpssBH.class); + boolean result = sdFpssBHService.updateById(entity, request == null ? null : request.getSource()); return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败"); } - @Log(module = "过鱼设施管理", value = "删除过鱼设施") +// @Log(module = "过鱼设施管理", value = "删除过鱼设施") +// @PostMapping("/delete") +// @Operation(summary = "删除过鱼设施") +// public ResponseResult delete(@RequestParam String stcd, @RequestParam String sttp) { +// boolean result = sdFpssBHService.deleteById(stcd, sttp); +// return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); +// } + @PostMapping("/delete") - @Operation(summary = "删除过鱼设施") - public ResponseResult delete(@RequestParam String stcd, @RequestParam String sttp) { - boolean result = sdFpssBHService.deleteById(stcd, sttp); + @Operation(summary = "删除") + public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) { + boolean result = sdFpssBHService.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource()); return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); } } \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdOpinfoBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdOpinfoBHController.java new file mode 100644 index 00000000..4a0f2cd1 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdOpinfoBHController.java @@ -0,0 +1,55 @@ +package com.yfd.platform.qgc_base.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.qgc_base.domain.SdOpinfoBH; +import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest; +import com.yfd.platform.qgc_base.service.ISdOpinfoBHService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/base/opinfo") +@Tag(name = "倾斜摄影管理") +public class SdOpinfoBHController { + + @Resource + private ISdOpinfoBHService service; + + @Resource + private ObjectMapper objectMapper; + + @PostMapping("/page") + @Operation(summary = "分页查询") + public ResponseResult queryPageList(@RequestBody DataSourceRequest request) { + Page page = service.queryPageList(request); + return ResponseResult.successData(page); + } + + @PostMapping("/add") + @Operation(summary = "新增") + public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) { + SdOpinfoBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdOpinfoBH.class); + boolean result = service.add(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/update") + @Operation(summary = "修改") + public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) { + SdOpinfoBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdOpinfoBH.class); + boolean result = service.update(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除") + public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) { + boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource()); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdOtteBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdOtteBHController.java new file mode 100644 index 00000000..c425bca7 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdOtteBHController.java @@ -0,0 +1,55 @@ +package com.yfd.platform.qgc_base.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.qgc_base.domain.SdOtteBH; +import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest; +import com.yfd.platform.qgc_base.service.ISdOtteBHService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/base/otte") +@Tag(name = "陆生生态保护工程管理") +public class SdOtteBHController { + + @Resource + private ISdOtteBHService service; + + @Resource + private ObjectMapper objectMapper; + + @PostMapping("/page") + @Operation(summary = "分页查询") + public ResponseResult queryPageList(@RequestBody DataSourceRequest request) { + Page page = service.queryPageList(request); + return ResponseResult.successData(page); + } + + @PostMapping("/add") + @Operation(summary = "新增") + public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) { + SdOtteBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdOtteBH.class); + boolean result = service.add(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/update") + @Operation(summary = "修改") + public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) { + SdOtteBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdOtteBH.class); + boolean result = service.update(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除") + public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) { + boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource()); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdOtweBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdOtweBHController.java new file mode 100644 index 00000000..5311661f --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdOtweBHController.java @@ -0,0 +1,55 @@ +package com.yfd.platform.qgc_base.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.qgc_base.domain.SdOtweBH; +import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest; +import com.yfd.platform.qgc_base.service.ISdOtweBHService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/base/otwe") +@Tag(name = "水生生态保护工程管理") +public class SdOtweBHController { + + @Resource + private ISdOtweBHService service; + + @Resource + private ObjectMapper objectMapper; + + @PostMapping("/page") + @Operation(summary = "分页查询") + public ResponseResult queryPageList(@RequestBody DataSourceRequest request) { + Page page = service.queryPageList(request); + return ResponseResult.successData(page); + } + + @PostMapping("/add") + @Operation(summary = "新增") + public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) { + SdOtweBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdOtweBH.class); + boolean result = service.add(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/update") + @Operation(summary = "修改") + public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) { + SdOtweBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdOtweBH.class); + boolean result = service.update(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除") + public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) { + boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource()); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdSonarBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdSonarBHController.java new file mode 100644 index 00000000..4c325387 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdSonarBHController.java @@ -0,0 +1,55 @@ +package com.yfd.platform.qgc_base.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.qgc_base.domain.SdSonarBH; +import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest; +import com.yfd.platform.qgc_base.service.ISdSonarBHService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/base/sonar") +@Tag(name = "声呐及水下摄像管理") +public class SdSonarBHController { + + @Resource + private ISdSonarBHService service; + + @Resource + private ObjectMapper objectMapper; + + @PostMapping("/page") + @Operation(summary = "分页查询") + public ResponseResult queryPageList(@RequestBody DataSourceRequest request) { + Page page = service.queryPageList(request); + return ResponseResult.successData(page); + } + + @PostMapping("/add") + @Operation(summary = "新增") + public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) { + SdSonarBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdSonarBH.class); + boolean result = service.add(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/update") + @Operation(summary = "修改") + public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) { + SdSonarBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdSonarBH.class); + boolean result = service.update(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除") + public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) { + boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource()); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdTeBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdTeBHController.java new file mode 100644 index 00000000..ac1c4f52 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdTeBHController.java @@ -0,0 +1,55 @@ +package com.yfd.platform.qgc_base.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.qgc_base.domain.SdTeBH; +import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest; +import com.yfd.platform.qgc_base.service.ISdTeBHService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/base/te") +@Tag(name = "陆生生态调查断面管理") +public class SdTeBHController { + + @Resource + private ISdTeBHService service; + + @Resource + private ObjectMapper objectMapper; + + @PostMapping("/page") + @Operation(summary = "分页查询") + public ResponseResult queryPageList(@RequestBody DataSourceRequest request) { + Page page = service.queryPageList(request); + return ResponseResult.successData(page); + } + + @PostMapping("/add") + @Operation(summary = "新增") + public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) { + SdTeBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdTeBH.class); + boolean result = service.add(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/update") + @Operation(summary = "修改") + public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) { + SdTeBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdTeBH.class); + boolean result = service.update(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除") + public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) { + boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource()); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdVaBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdVaBHController.java new file mode 100644 index 00000000..d9b79767 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdVaBHController.java @@ -0,0 +1,55 @@ +package com.yfd.platform.qgc_base.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.qgc_base.domain.SdVaBH; +import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest; +import com.yfd.platform.qgc_base.service.ISdVaBHService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/base/va") +@Tag(name = "动物救助站管理") +public class SdVaBHController { + + @Resource + private ISdVaBHService service; + + @Resource + private ObjectMapper objectMapper; + + @PostMapping("/page") + @Operation(summary = "分页查询") + public ResponseResult queryPageList(@RequestBody DataSourceRequest request) { + Page page = service.queryPageList(request); + return ResponseResult.successData(page); + } + + @PostMapping("/add") + @Operation(summary = "新增") + public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) { + SdVaBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdVaBH.class); + boolean result = service.add(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/update") + @Operation(summary = "修改") + public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) { + SdVaBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdVaBH.class); + boolean result = service.update(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除") + public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) { + boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource()); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdVdinfoBController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdVdinfoBController.java new file mode 100644 index 00000000..c6063d42 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdVdinfoBController.java @@ -0,0 +1,55 @@ +package com.yfd.platform.qgc_base.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.qgc_base.domain.SdVdinfoB; +import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest; +import com.yfd.platform.qgc_base.service.ISdVdinfoBService; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/base/vdinfo") +@Tag(name = "视频站管理") +public class SdVdinfoBController { + + @Resource + private ISdVdinfoBService service; + + @Resource + private ObjectMapper objectMapper; + + @PostMapping("/page") + @Operation(summary = "分页查询") + public ResponseResult queryPageList(@RequestBody DataSourceRequest request) { + Page page = service.queryPageList(request); + return ResponseResult.successData(page); + } + + @PostMapping("/add") + @Operation(summary = "新增") + public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) { + SdVdinfoB entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdVdinfoB.class); + boolean result = service.add(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/update") + @Operation(summary = "修改") + public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) { + SdVdinfoB entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdVdinfoB.class); + boolean result = service.update(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除") + public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) { + boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource()); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdVpBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdVpBHController.java new file mode 100644 index 00000000..879820a8 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdVpBHController.java @@ -0,0 +1,55 @@ +package com.yfd.platform.qgc_base.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.qgc_base.domain.SdVpBH; +import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest; +import com.yfd.platform.qgc_base.service.ISdVpBHService; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/base/vp") +@Tag(name = "珍稀植物保护工程管理") +public class SdVpBHController { + + @Resource + private ISdVpBHService service; + + @Resource + private ObjectMapper objectMapper; + + @PostMapping("/page") + @Operation(summary = "分页查询") + public ResponseResult queryPageList(@RequestBody DataSourceRequest request) { + Page page = service.queryPageList(request); + return ResponseResult.successData(page); + } + + @PostMapping("/add") + @Operation(summary = "新增") + public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) { + SdVpBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdVpBH.class); + boolean result = service.add(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/update") + @Operation(summary = "修改") + public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) { + SdVpBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdVpBH.class); + boolean result = service.update(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除") + public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) { + boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource()); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdWeBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdWeBHController.java new file mode 100644 index 00000000..84d45831 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdWeBHController.java @@ -0,0 +1,55 @@ +package com.yfd.platform.qgc_base.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.qgc_base.domain.SdWeBH; +import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest; +import com.yfd.platform.qgc_base.service.ISdWeBHService; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/base/we") +@Tag(name = "水生生态调查断面管理") +public class SdWeBHController { + + @Resource + private ISdWeBHService service; + + @Resource + private ObjectMapper objectMapper; + + @PostMapping("/page") + @Operation(summary = "分页查询") + public ResponseResult queryPageList(@RequestBody DataSourceRequest request) { + Page page = service.queryPageList(request); + return ResponseResult.successData(page); + } + + @PostMapping("/add") + @Operation(summary = "新增") + public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) { + SdWeBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdWeBH.class); + boolean result = service.add(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/update") + @Operation(summary = "修改") + public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) { + SdWeBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdWeBH.class); + boolean result = service.update(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除") + public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) { + boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource()); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdWqBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdWqBHController.java new file mode 100644 index 00000000..c185b9ef --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdWqBHController.java @@ -0,0 +1,55 @@ +package com.yfd.platform.qgc_base.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.qgc_base.domain.SdWqBH; +import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest; +import com.yfd.platform.qgc_base.service.ISdWqBHService; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/base/wq") +@Tag(name = "水质站管理") +public class SdWqBHController { + + @Resource + private ISdWqBHService service; + + @Resource + private ObjectMapper objectMapper; + + @PostMapping("/page") + @Operation(summary = "分页查询") + public ResponseResult queryPageList(@RequestBody DataSourceRequest request) { + Page page = service.queryPageList(request); + return ResponseResult.successData(page); + } + + @PostMapping("/add") + @Operation(summary = "新增") + public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) { + SdWqBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdWqBH.class); + boolean result = service.add(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/update") + @Operation(summary = "修改") + public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) { + SdWqBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdWqBH.class); + boolean result = service.update(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除") + public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) { + boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource()); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdWtBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdWtBHController.java new file mode 100644 index 00000000..996cab76 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdWtBHController.java @@ -0,0 +1,55 @@ +package com.yfd.platform.qgc_base.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.qgc_base.domain.SdWtBH; +import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest; +import com.yfd.platform.qgc_base.service.ISdWtBHService; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/base/wt") +@Tag(name = "水温站管理") +public class SdWtBHController { + + @Resource + private ISdWtBHService service; + + @Resource + private ObjectMapper objectMapper; + + @PostMapping("/page") + @Operation(summary = "分页查询") + public ResponseResult queryPageList(@RequestBody DataSourceRequest request) { + Page page = service.queryPageList(request); + return ResponseResult.successData(page); + } + + @PostMapping("/add") + @Operation(summary = "新增") + public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) { + SdWtBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdWtBH.class); + boolean result = service.add(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败"); + } + + @PostMapping("/update") + @Operation(summary = "修改") + public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) { + SdWtBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdWtBH.class); + boolean result = service.update(entity, request == null ? null : request.getSource()); + return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败"); + } + + @PostMapping("/delete") + @Operation(summary = "删除") + public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) { + boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource()); + return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败"); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/MsEiaApprovalB.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/MsEiaApprovalB.java new file mode 100644 index 00000000..485aa4fb --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/MsEiaApprovalB.java @@ -0,0 +1,148 @@ +package com.yfd.platform.qgc_base.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 生态环保批复文件表 + * + * @author migration + */ +@Data +@TableName("MS_EIAAPPROVAL_B") +public class MsEiaApprovalB implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(type = IdType.ASSIGN_UUID) + private String id; + + /** 电站编码 */ + @TableField("STCD") + private String stcd; + + /** 电站名称 */ + @TableField("ENNM") + private String ennm; + + /** 所属流域 */ + @TableField("BASIN") + private String basin; + + /** 所属河流 */ + @TableField("RIVER") + private String river; + + /** 所属水电基地 */ + @TableField("BASEID") + private String baseid; + + /** 所属水电基地流域 */ + @TableField("HBRVCD") + private String hbrvcd; + + /** 批复文号 */ + @TableField("APPROVAL_FILE_NO") + private String approvalFileNo; + + /** 批复文件标题 */ + @TableField("APPROVAL_FILE_TITLE") + private String approvalFileTitle; + + /** 文件名 */ + @TableField("FILE_NAME") + private String fileName; + + /** 附件下载地址 */ + @TableField("FLPATH") + private String flpath; + + /** 生态流量 */ + @TableField("ECOLOGICAL_FLOW") + private String ecologicalFlow; + + /** 水环境保护措施 */ + @TableField("WATER_ENV_PROTECTION") + private String waterEnvProtection; + + /** 低温水减缓措施 */ + @TableField("COLD_WATER_MITIGATION") + private String coldWaterMitigation; + + /** 栖息地保护 */ + @TableField("HABITAT_PROTECTION") + private String habitatProtection; + + /** 过鱼措施 */ + @TableField("FISH_PASSAGE_MEASURES") + private String fishPassageMeasures; + + /** 鱼类增殖放流 */ + @TableField("FISH_STOCKING") + private String fishStocking; + + /** 陆生生态保护/水土保持措施 */ + @TableField("TERRESTRIAL_ECO_SOIL_CONS") + private String terrestrialEcoSoilCons; + + /** 珍稀植物保护措施 */ + @TableField("RARE_PLANT_PROTECTION") + private String rarePlantProtection; + + /** 动物救助 */ + @TableField("ANIMAL_RESCUE") + private String animalRescue; + + /** 移民安置 */ + @TableField("RESETTLEMENT_MEASURES") + private String resettlementMeasures; + + /** 施工期防治措施或其他环境保护措施 */ + @TableField("CONSTRUCTION_POLLUTION_CTRL") + private String constructionPollutionCtrl; + + /** 地下水及地质环境保护措施 */ + @TableField("GROUNDWATER_GEO_PROTECT") + private String groundwaterGeoProtect; + + /** 风景名胜区保护措施 */ + @TableField("SCENIC_AREA_PROTECTION") + private String scenicAreaProtection; + + /** 环境监测要求 */ + @TableField("ENV_MONITORING_REQUIRE") + private String envMonitoringRequire; + + /** 附件ID */ + @TableField("FLID") + private String flid; + + // ---------- 审计字段 ---------- + + @TableField("RECORD_USER") + private String recordUser; + + @TableField("RECORD_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date recordTime; + + @TableField("MODIFY_USER") + private String modifyUser; + + @TableField("MODIFY_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date modifyTime; + + @TableField("IS_DELETED") + private Integer isDeleted; + + @TableField("DELETE_USER") + private String deleteUser; + + @TableField("DELETE_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date deleteTime; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/MsWarnRuleB.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/MsWarnRuleB.java new file mode 100644 index 00000000..f3e806e8 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/MsWarnRuleB.java @@ -0,0 +1,85 @@ +package com.yfd.platform.qgc_base.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 预警规则配置基础表 + * + * @author migration + */ +@Data +@TableName("MS_WARN_RULE_B") +public class MsWarnRuleB implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(type = IdType.ASSIGN_UUID) + private String id; + + /** 预警规则类型:WQLVL=水质预警 EQMN=电站生态流量(环保部) EQMNMWR=电站生态流量(水利部) RSVRFSR=水位预警 */ + @TableField("RULE_TYPE") + private String ruleType; + + /** 预警规则名称 */ + @TableField("RULE_NAME") + private String ruleName; + + /** 规则编码 global=全局规则 common=通用告警规则 custom=自定义告警规则 */ + @TableField("RULE_CODE") + private String ruleCode; + + /** 自定义规则时,标识规则所属测站 */ + @TableField("STCD") + private String stcd; + + /** 备注 */ + @TableField("DESCRIPTION") + private String description; + + /** 是否展示告警等级 0=不展示 1=展示 */ + @TableField("IS_SHOW") + private Integer isShow; + + /** 隔离ID */ + @TableField("ISOLATE_ID") + private String isolateId; + + /** 数据来源 */ + @TableField("VLSR") + private String vlsr; + + /** 数据来源时间 */ + @TableField("VLSR_TM") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date vlsrTm; + + // ---------- 审计字段 ---------- + + @TableField("RECORD_USER") + private String recordUser; + + @TableField("RECORD_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date recordTime; + + @TableField("MODIFY_USER") + private String modifyUser; + + @TableField("MODIFY_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date modifyTime; + + @TableField("IS_DELETED") + private Integer isDeleted; + + @TableField("DELETE_USER") + private String deleteUser; + + @TableField("DELETE_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date deleteTime; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdAddvcdDic.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdAddvcdDic.java index 69223c3e..813addef 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdAddvcdDic.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdAddvcdDic.java @@ -7,6 +7,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serializable; +import java.math.BigDecimal; /** *

@@ -54,12 +55,12 @@ public class SdAddvcdDic implements Serializable { /** * 中心经度 */ - private Double lgtd; + private BigDecimal lgtd; /** * 中心纬度 */ - private Double lttd; + private BigDecimal lttd; /** * 面积 diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdAiboxBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdAiboxBH.java new file mode 100644 index 00000000..8edd3ef0 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdAiboxBH.java @@ -0,0 +1,268 @@ +package com.yfd.platform.qgc_base.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + *

+ * AI边缘计算盒子基本属性表 + *

+ */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("SD_AIBOX_B_H") +public class SdAiboxBH implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 测站编码 + */ + @TableId(type = IdType.INPUT) + private String stcd; + + /** + * 测站名称 + */ + private String stnm; + + /** + * 测站类型 + */ + private String sttp; + + @TableField(exist = false) + private String sttpName; + + /** + * 数据时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date tm; + + /** + * 位置经度 + */ + private BigDecimal lgtd; + + /** + * 位置纬度 + */ + private BigDecimal lttd; + + /** + * 高程 + */ + private BigDecimal elev; + + /** + * 站址 + */ + private String stlc; + + /** + * 建成日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date jcdt; + + /** + * 退役/拆除日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date wddt; + + /** + * 建设状态代码 + */ + private Integer bldsttCode; + + @TableField(exist = false) + private String bldsttCodeName; + + /** + * 是否启用 + */ + private Integer usfl; + + /** + * 数据是否接入 + */ + private Integer dtin; + + @TableField(exist = false) + private String dtinName; + + /** + * 数据接入时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date dtinTm; + + /** + * 监测方式 + */ + private Integer mway; + + @TableField(exist = false) + private String mwayName; + + /** + * 站索引 + */ + private String stindx; + + /** + * 排序 + */ + private Integer orderIndex; + + /** + * 关联测站编码 + */ + private String rstcd; + + @TableField(exist = false) + private String ennm; + + /** + * 所属基地编码 + */ + private String baseId; + + @TableField(exist = false) + private String baseName; + + /** + * 所属基地流域编码 + */ + private String hbrvcd; + + /** + * 所属流域代码 + */ + private String rvcd; + + @TableField(exist = false) + private String rvnm; + + /** + * 简介 + */ + private String introduce; + + /** + * LOGO + */ + private String logo; + + /** + * 介绍文件 + */ + private String inffile; + + /** + * 服务对象 + */ + private String fwdx; + + /** + * 供电方式 + */ + private String gdfs; + + /** + * AI配置 + */ + private String aipz; + + /** + * 模型版本 + */ + private String mxbb; + + /** + * IP地址 + */ + private String ipaddr; + + /** + * SIM卡信息 + */ + private String siminfo; + + /** + * 联系人 + */ + private String lxr; + + /** + * 用途 + */ + private String purpose; + + /** + * 数据频率 + */ + private String dtfrqcy; + + /** + * 备注 + */ + private String remark; + + /** + * 植被覆盖类型 + */ + private String vlsr; + + /** + * 植被覆盖调查时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date vlsrTm; + + /** + * 创建人 + */ + private String recordUser; + + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date recordTime; + + /** + * 更新人 + */ + private String modifyUser; + + /** + * 更新时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date modifyTime; + + /** + * 是否已删除 + */ + private Integer isDeleted; + + /** + * 删除人 + */ + private String deleteUser; + + /** + * 删除时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date deleteTime; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdAimonitorBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdAimonitorBH.java new file mode 100644 index 00000000..1a976bf0 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdAimonitorBH.java @@ -0,0 +1,171 @@ +package com.yfd.platform.qgc_base.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * AI智能监测装置基本属性表 + * + * @author migration + */ +@Data +@TableName("SD_AIMONITOR_B_H") +public class SdAimonitorBH implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(type = IdType.INPUT) + private String stcd; + + private String stnm; + + private String sttp; + + @TableField(exist = false) + private String sttpName; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date tm; + + private BigDecimal lgtd; + + private BigDecimal lttd; + + private BigDecimal elev; + + private String stlc; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date jcdt; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date wddt; + + @TableField("BLDSTT_CODE") + private Integer bldsttCode; + + @TableField(exist = false) + private String bldsttCodeName; + + private Integer usfl; + + private Integer dtin; + + @TableField(exist = false) + private String dtinName; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @TableField("DTIN_TM") + private Date dtinTm; + + private Integer mway; + + @TableField(exist = false) + private String mwayName; + + @TableField("STINDX") + private String stindx; + + @TableField("ORDER_INDEX") + private Integer orderIndex; + + private String rstcd; + + @TableField(exist = false) + private String ennm; + + @TableField("BASE_ID") + private String baseId; + + @TableField(exist = false) + private String baseName; + + private String hbrvcd; + + private String rvcd; + + @TableField(exist = false) + private String rvnm; + + private String introduce; + + private String logo; + + private String inffile; + + private Integer dtfrqcy; + + private String remark; + + private String vlsr; + + @TableField("VLSR_TM") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date vlsrTm; + + /** 服务对象 */ + @TableField("FWDX") + private String fwdx; + + /** 供电方式 */ + @TableField("GDFS") + private String gdfs; + + /** AI盒子配置 */ + @TableField("AIPZ") + private String aipz; + + /** 模型版本 */ + @TableField("MXBB") + private String mxbb; + + /** IP地址 */ + @TableField("IPADDR") + private String ipaddr; + + /** SIM卡信息 */ + @TableField("SIMINFO") + private String siminfo; + + /** 用途 */ + @TableField("PURPOSE") + private String purpose; + + /** 观察方式 */ + @TableField("OBSERVE") + private String observe; + + /** 地形裁剪范围 */ + @TableField("BOX") + private String box; + + // ---------- 审计字段 ---------- + + @TableField("RECORD_USER") + private String recordUser; + + @TableField("RECORD_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date recordTime; + + @TableField("MODIFY_USER") + private String modifyUser; + + @TableField("MODIFY_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date modifyTime; + + @TableField("IS_DELETED") + private Integer isDeleted; + + @TableField("DELETE_USER") + private String deleteUser; + + @TableField("DELETE_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date deleteTime; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdArtsgBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdArtsgBH.java new file mode 100644 index 00000000..5bdeb096 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdArtsgBH.java @@ -0,0 +1,240 @@ +package com.yfd.platform.qgc_base.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + *

+ * 人工产卵场工程信息表 + *

+ */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("SD_ARTSG_B_H") +public class SdArtsgBH implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 测站编码 + */ + @TableId(type = IdType.INPUT) + private String stcd; + + /** + * 测站名称 + */ + private String stnm; + + /** + * 测站类型 + */ + private String sttp; + + @TableField(exist = false) + private String sttpName; + + /** + * 数据时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date tm; + + /** + * 位置经度 + */ + private BigDecimal lgtd; + + /** + * 位置纬度 + */ + private BigDecimal lttd; + + /** + * 高程 + */ + private BigDecimal elev; + + /** + * 站址 + */ + private String stlc; + + /** + * 是否启用 + */ + private Integer usfl; + + /** + * 数据是否接入 + */ + private Integer dtin; + + @TableField(exist = false) + private String dtinName; + + /** + * 数据接入时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date dtinTm; + + /** + * 排序 + */ + private Integer orderIndex; + + /** + * 关联测站编码 + */ + private String rstcd; + + @TableField(exist = false) + private String ennm; + + /** + * 所属基地编码 + */ + private String baseId; + + @TableField(exist = false) + private String baseName; + + /** + * 所属基地流域编码 + */ + private String hbrvcd; + + /** + * 所属流域代码 + */ + private String rvcd; + + @TableField(exist = false) + private String rvnm; + + /** + * 所属行政区编码 + */ + private String addvcd; + + /** + * 规划设计日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date stdsdt; + + /** + * 计划开工日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date pststdt; + + /** + * 计划完工日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date pesstdt; + + /** + * 开工日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date swdt; + + /** + * 建成日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date jcdt; + + /** + * 退役/拆除日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date wddt; + + /** + * 建设状态代码 + */ + private Integer bldsttCode; + + private String bldsttCodeName; + + /** + * 简介 + */ + private String introduce; + + /** + * LOGO + */ + private String logo; + + /** + * 介绍文件 + */ + private String inffile; + + /** + * 投资 + */ + private BigDecimal inv; + + /** + * 投资金额 + */ + private Integer invinmn; + + /** + * 保护措施 + */ + private String prtcts; + + /** + * 数量 + */ + private Integer cnt; + + /** + * 面积 + */ + private BigDecimal ar; + + /** + * 类型 + */ + private String tp; + + /** + * 附件 + */ + private String attm; + + /** + * 数据频率 + */ + private String dtfrqcy; + + /** + * 备注 + */ + private String remark; + + /** + * 植被覆盖类型 + */ + private String vlsr; + + /** + * 植被覆盖调查时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date vlsrTm; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdDwBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdDwBH.java new file mode 100644 index 00000000..81adf7a5 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdDwBH.java @@ -0,0 +1,361 @@ +package com.yfd.platform.qgc_base.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + *

+ * 低温水减缓设施信息表 + *

+ */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("SD_DW_B_H") +public class SdDwBH implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 测站编码 + */ + @TableId(type = IdType.INPUT) + private String stcd; + + /** + * 数据时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date tm; + + /** + * 测站名称 + */ + private String stnm; + + /** + * 测站类型 + */ + private String sttp; + + @TableField(exist = false) + private String sttpName; + + /** + * 位置经度 + */ + private BigDecimal lgtd; + + /** + * 位置纬度 + */ + private BigDecimal lttd; + + /** + * 高程 + */ + private BigDecimal elev; + + /** + * 站址 + */ + private String stlc; + + /** + * 是否启用 + */ + private Integer usfl; + + /** + * 数据是否接入 + */ + private Integer dtin; + + @TableField(exist = false) + private String dtinName; + + /** + * 数据接入时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date dtinTm; + + /** + * 排序 + */ + private Integer orderIndex; + + /** + * 所属基地编码 + */ + private String baseId; + + @TableField(exist = false) + private String baseName; + + /** + * 所属基地流域编码 + */ + private String hbrvcd; + + /** + * 关联测站编码 + */ + private String rstcd; + + @TableField(exist = false) + private String ennm; + + /** + * 规划设计日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date stdsdt; + + /** + * 计划开工日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date pststdt; + + /** + * 计划完工日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date pesstdt; + + /** + * 开工日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date swdt; + + /** + * 建成日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date jcdt; + + /** + * 退役/拆除日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date wddt; + + /** + * 建设状态代码 + */ + private Integer bldsttCode; + + @TableField(exist = false) + private String bldsttCodeName; + + /** + * 简介 + */ + private String introduce; + + /** + * LOGO + */ + private String logo; + + /** + * 介绍文件 + */ + private String inffile; + + /** + * 投资 + */ + private BigDecimal inv; + + /** + * 投资金额 + */ + private Integer invinmn; + + /** + * 调度方式 + */ + private Integer dispatch; + + /** + * 调度描述 + */ + private String dispatchDes; + + /** + * 调度文件 + */ + private String dispatchFile; + + /** + * 叠梁门层数高度 + */ + private BigDecimal dcshg; + + /** + * 叠梁门单层取水口个数 + */ + private BigDecimal dcsqskgs; + + /** + * 叠梁门层数 + */ + private Integer dlmcnt; + + /** + * 叠梁门高度 + */ + private BigDecimal dlmhg; + + /** + * 叠梁门底部高程 + */ + private BigDecimal dlmdbgc; + + /** + * 叠梁门最大温度梯度 + */ + private BigDecimal dlmmxwdp; + + /** + * 梯级电站台数 + */ + private Integer ttscnt; + + /** + * 梯级电站高度 + */ + private BigDecimal ttshg; + + /** + * 梯级电站最低死水位 + */ + private BigDecimal ttszdss; + + /** + * 取水口段结构 + */ + private String qzdqjg; + + /** + * 取水口段高度 + */ + private BigDecimal qzdqhg; + + /** + * 隔水幕墙长度 + */ + private BigDecimal gsmqcd; + + /** + * 隔水幕墙宽度 + */ + private BigDecimal gsmqkd; + + /** + * 隔水幕墙材料 + */ + private BigDecimal gsmqcl; + + /** + * 其他设施具体型式 + */ + private String qtssjbtx; + + /** + * 天然河流平均水温 + */ + private BigDecimal nravwt; + + /** + * 天然河流最高温月份多年平均水温 + */ + private BigDecimal nrmxavwt; + + /** + * 天然河流最低温月份多年平均水温 + */ + private BigDecimal nrmnavwt; + + /** + * 建成后坝下平均水温 + */ + private BigDecimal dnavwt; + + /** + * 建成后坝下最高温月份多年平均水温 + */ + private BigDecimal dnmxavwt; + + /** + * 建成后坝下最低温月份多年平均水温 + */ + private BigDecimal dnmnavwt; + + /** + * 数据频率 + */ + private String dtfrqcy; + + /** + * 备注 + */ + private String remark; + + /** + * 植被覆盖类型 + */ + private String vlsr; + + /** + * 植被覆盖调查时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date vlsrTm; + + /** + * 创建人 + */ + private String recordUser; + + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date recordTime; + + /** + * 更新人 + */ + private String modifyUser; + + /** + * 更新时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date modifyTime; + + /** + * 是否已删除 + */ + private Integer isDeleted; + + /** + * 删除人 + */ + private String deleteUser; + + /** + * 删除时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date deleteTime; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdEngInfoBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdEngInfoBH.java index a34a36ae..464ddc2f 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdEngInfoBH.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdEngInfoBH.java @@ -6,6 +6,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; /** @@ -48,12 +49,12 @@ public class SdEngInfoBH implements Serializable { /** * 位置经度。单位:(°) */ - private Double lgtd; + private BigDecimal lgtd; /** * 位置纬度。单位:(°) */ - private Double lttd; + private BigDecimal lttd; /** * 高程。单位:m diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdEqBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdEqBH.java new file mode 100644 index 00000000..1bfffc83 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdEqBH.java @@ -0,0 +1,316 @@ +package com.yfd.platform.qgc_base.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + *

+ * 生态流量泄放设施信息表 + *

+ */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("SD_EQ_B_H") +public class SdEqBH implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 测站编码 + */ + @TableId(type = IdType.INPUT) + private String stcd; + + /** + * 测站名称 + */ + private String stnm; + + /** + * 数据时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date tm; + + /** + * 测站类型 + */ + private String sttp; + + @TableField(exist = false) + private String sttpName; + + /** + * 所属建设阶段 + */ + private Integer blprd; + + /** + * 位置经度 + */ + private BigDecimal lgtd; + + /** + * 位置纬度 + */ + private BigDecimal lttd; + + /** + * 高程 + */ + private BigDecimal elev; + + /** + * 站址 + */ + private String stlc; + + /** + * 是否启用 + */ + private Integer usfl; + + /** + * 数据是否接入 + */ + private Integer dtin; + + @TableField(exist = false) + private String dtinName; + + /** + * 数据接入时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date dtinTm; + + /** + * 排序 + */ + private Integer orderIndex; + + /** + * 关联测站编码 + */ + private String rstcd; + + @TableField(exist = false) + private String ennm; + + /** + * 所属基地编码 + */ + private String baseId; + + @TableField(exist = false) + private String baseName; + + /** + * 所属基地流域编码 + */ + private String hbrvcd; + + /** + * 规划设计日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date stdsdt; + + /** + * 计划开工日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date pststdt; + + /** + * 计划完工日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date pesstdt; + + /** + * 开工日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date swdt; + + /** + * 建成日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date jcdt; + + /** + * 退役/拆除日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date wddt; + + /** + * 建设状态代码 + */ + private Integer bldsttCode; + + @TableField(exist = false) + private String bldsttCodeName; + + /** + * 简介 + */ + private String introduce; + + /** + * LOGO + */ + private String logo; + + /** + * 介绍文件 + */ + private String inffile; + + /** + * 投资 + */ + private BigDecimal inv; + + /** + * 投资金额 + */ + private Integer invinmn; + + /** + * 泄放孔结构 + */ + private String flkjg; + + /** + * 泄放孔尺寸 + */ + private String flksz; + + /** + * 单独泄放管渠 + */ + private String ddzgq; + + /** + * 泄放孔口 + */ + private String flkq; + + /** + * 进水口底板高程 + */ + private BigDecimal jskdbgc; + + /** + * 出水口底板高程 + */ + private BigDecimal cskdbgc; + + /** + * 检修放空管道 + */ + private String jhfdgk; + + /** + * 泄放流量 + */ + private BigDecimal fdll; + + /** + * 生态机组装机容量 + */ + private BigDecimal stjzzjrl; + + /** + * 生态机组引水渠道 + */ + private BigDecimal stjzysq; + + /** + * 数据频率 + */ + private String dtfrqcy; + + /** + * 评估方法 + */ + private String assessMethod; + + /** + * 是否计算器 + */ + private Integer isJsq; + + /** + * 是否流量 + */ + private String isFlow; + + /** + * 最小流量 + */ + private BigDecimal minFlow; + + /** + * 备注 + */ + private String remark; + + /** + * 植被覆盖类型 + */ + private String vlsr; + + /** + * 植被覆盖调查时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date vlsrTm; + + /** + * 创建人 + */ + private String recordUser; + + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date recordTime; + + /** + * 更新人 + */ + private String modifyUser; + + /** + * 更新时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date modifyTime; + + /** + * 是否已删除 + */ + private Integer isDeleted; + + /** + * 删除人 + */ + private String deleteUser; + + /** + * 删除时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date deleteTime; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFbrdBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFbrdBH.java new file mode 100644 index 00000000..139ddff5 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFbrdBH.java @@ -0,0 +1,269 @@ +package com.yfd.platform.qgc_base.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + *

+ * 鱼类增殖设施保护工程信息表 + *

+ */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("SD_FBRD_B_H") +public class SdFbrdBH implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 测站编码 + */ + @TableId(type = IdType.INPUT) + private String stcd; + + /** + * 测站名称 + */ + private String stnm; + + /** + * 测站类型 + */ + private String sttp; + + @TableField(exist = false) + private String sttpName; + + /** + * 数据时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date tm; + + /** + * 所属建设阶段 + */ + private Integer blprd; + + /** + * 位置经度 + */ + private BigDecimal lgtd; + + /** + * 位置纬度 + */ + private BigDecimal lttd; + + /** + * 高程 + */ + private BigDecimal elev; + + /** + * 站址 + */ + private String stlc; + + /** + * 是否启用 + */ + private Integer usfl; + + /** + * 数据是否接入 + */ + private Integer dtin; + + @TableField(exist = false) + private String dtinName; + + /** + * 数据接入时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date dtinTm; + + /** + * 排序 + */ + private Integer orderIndex; + + /** + * 关联测站编码 + */ + private String rstcd; + + @TableField(exist = false) + private String ennm; + + /** + * 所属基地编码 + */ + private String baseId; + + @TableField(exist = false) + private String baseName; + + /** + * 所属基地流域编码 + */ + private String hbrvcd; + + /** + * 环评单位 + */ + private String rengcd; + + /** + * 规划设计日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date stdsdt; + + /** + * 计划开工日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date pststdt; + + /** + * 计划完工日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date pesstdt; + + /** + * 开工日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date swdt; + + /** + * 建成日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date jcdt; + + /** + * 退役/拆除日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date wddt; + + /** + * 建设状态代码 + */ + private Integer bldsttCode; + + @TableField(exist = false) + private String bldsttCodeName; + + /** + * 简介 + */ + private String introduce; + + /** + * LOGO + */ + private String logo; + + /** + * 介绍文件 + */ + private String inffile; + + /** + * 投资 + */ + private BigDecimal inv; + + /** + * 投资金额 + */ + private Integer invinmn; + + /** + * 增殖放流面积 + */ + private BigDecimal zzflar; + + /** + * 增殖放流工艺 + */ + private String zzflgy; + + /** + * 增殖放流鱼种描述 + */ + private String zzflyzms; + + /** + * 增殖放流标记方式 + */ + private String zzflbjfs; + + /** + * 增殖放流对象 + */ + private String zzfldx; + + /** + * 增殖放流数量 + */ + private Integer zzflcnt; + + /** + * 增殖放流放流流程 + */ + private String zzflfllc; + + /** + * 增殖放流时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date zzfltm; + + /** + * 增殖放流任务 + */ + private String zzflrw; + + /** + * 设计单位 + */ + private String dsun; + + /** + * 基本特性参数 + */ + private String jbtxcs; + + /** + * 数据频率 + */ + private String dtfrqcy; + + /** + * 备注 + */ + private String remark; + + /** + * 植被覆盖类型 + */ + private String vlsr; + + /** + * 植被覆盖调查时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date vlsrTm; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFhbtBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFhbtBH.java new file mode 100644 index 00000000..b42b0282 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFhbtBH.java @@ -0,0 +1,272 @@ +package com.yfd.platform.qgc_base.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + *

+ * 栖息地保护工程信息表 + *

+ */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("SD_FHBT_B_H") +public class SdFhbtBH implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 测站编码 + */ + @TableId(type = IdType.INPUT) + private String stcd; + + /** + * 测站名称 + */ + private String stnm; + + /** + * 数据时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date tm; + + /** + * 所属建设阶段 + */ + private Integer blprd; + + /** + * 位置经度 + */ + private BigDecimal lgtd; + + /** + * 位置纬度 + */ + private BigDecimal lttd; + + /** + * 高程 + */ + private BigDecimal elev; + + /** + * 站址 + */ + private String stlc; + + /** + * 是否启用 + */ + private Integer usfl; + + /** + * 数据是否接入 + */ + private Integer dtin; + + @TableField(exist = false) + private String dtinName; + + /** + * 数据接入时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date dtinTm; + + /** + * 排序 + */ + private Integer orderIndex; + + /** + * 关联测站编码 + */ + private String rstcd; + + @TableField(exist = false) + private String ennm; + + /** + * 所属基地编码 + */ + private String baseId; + + @TableField(exist = false) + private String baseName; + + /** + * 所属基地流域编码 + */ + private String hbrvcd; + + /** + * 所属流域代码 + */ + private String rvcd; + + @TableField(exist = false) + private String rvnm; + + /** + * 所属行政区编码 + */ + private String addvcd; + + /** + * 河段描述 + */ + private String reachdes; + + /** + * 经度纬度列表 + */ + private String lglttd; + + /** + * 简介 + */ + private String introduce; + + /** + * LOGO + */ + private String logo; + + /** + * 介绍文件 + */ + private String inffile; + + /** + * 投资 + */ + private BigDecimal inv; + + /** + * 投资金额 + */ + private Integer invinmn; + + /** + * 保护对象 + */ + private String bhdx; + + /** + * 保护范围 + */ + private String bhfw; + + /** + * 保护措施 + */ + private String bhcd; + + /** + * 保护面积 + */ + private BigDecimal bhmj; + + /** + * 保护河流 + */ + private String bhhl; + + /** + * 保护河道 + */ + private String bhhd; + + /** + * 保护措施 + */ + private String bhcs; + + /** + * 保护方式 + */ + private String bhfs; + + /** + * 附件 + */ + private String attm; + + /** + * 保护水文参数 + */ + private String bhwwcd; + + /** + * 保护河相关系 + */ + private String bhhxcd; + + /** + * 数据频率 + */ + private String dtfrqcy; + + /** + * 备注 + */ + private String remark; + + /** + * 植被覆盖类型 + */ + private String vlsr; + + /** + * 植被覆盖调查时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date vlsrTm; + + /** + * 创建人 + */ + private String recordUser; + + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date recordTime; + + /** + * 更新人 + */ + private String modifyUser; + + /** + * 更新时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date modifyTime; + + /** + * 是否已删除 + */ + private Integer isDeleted; + + /** + * 删除人 + */ + private String deleteUser; + + /** + * 删除时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date deleteTime; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFpssBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFpssBH.java index 66d4e2e9..0faae642 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFpssBH.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFpssBH.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.io.Serializable; @@ -32,9 +33,15 @@ public class SdFpssBH implements Serializable { */ private String stnm; + /** + * 所属水电基地流域编码 + */ + private String hbrvcd; + /** * 数据时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date tm; /** @@ -43,6 +50,17 @@ public class SdFpssBH implements Serializable { */ private String sttp; + @TableField(exist = false) + private String sttpName; + + /** + * 所属基地编码 + */ + private String baseId; + + @TableField(exist = false) + private String baseName; + /** * 所属建设阶段 字典编码:common.blprd * 1001000=规划 1002000=预可研 1003000=环评 1004000=可研 1005000=在建 1006000=招标设计 @@ -80,9 +98,13 @@ public class SdFpssBH implements Serializable { */ private Integer dtin; + @TableField(exist = false) + private String dtinName; + /** * 数据接入时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date dtinTm; /** @@ -95,34 +117,43 @@ public class SdFpssBH implements Serializable { */ private String rstcd; + @TableField(exist = false) + private String ennm; + /** * 规划设计日期 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date stdsdt; /** * 计划开工日期 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date pststdt; /** * 计划完工日期 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date pesstdt; /** * 开工日期 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date swdt; /** * 建成日期 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date jcdt; /** * 退役/拆除日期 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date wddt; /** @@ -130,6 +161,9 @@ public class SdFpssBH implements Serializable { */ private Integer bldsttCode; + @TableField(exist = false) + private String bldsttCodeName; + /** * 简介 */ @@ -335,6 +369,11 @@ public class SdFpssBH implements Serializable { */ private String gytm; + /** + * 所属测站编码 + */ + private String stCode; + /** * 运行时间 */ @@ -360,11 +399,27 @@ public class SdFpssBH implements Serializable { */ private Integer isUp; + @TableField(exist = false) + private String isUpName; + /** * 设施是否实现鱼类下行 0=否 1=是 */ private Integer isDown; + @TableField(exist = false) + private String isDownName; + + /** + * 监测方式:1=人工 2=自动 + */ + private Integer mway; + + + @TableField(exist = false) + private String mwayName; + + /** * 备注 */ @@ -378,5 +433,44 @@ public class SdFpssBH implements Serializable { /** * 数据来源时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date vlsrTm; + + /** + * 创建人 + */ + private String recordUser; + + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date recordTime; + + /** + * 更新人 + */ + private String modifyUser; + + /** + * 更新时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date modifyTime; + + /** + * 是否已删除 + */ + private Integer isDeleted; + + /** + * 删除人 + */ + private String deleteUser; + + /** + * 删除时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date deleteTime; } \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOpinfoBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOpinfoBH.java new file mode 100644 index 00000000..b71e9983 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOpinfoBH.java @@ -0,0 +1,241 @@ +package com.yfd.platform.qgc_base.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yfd.platform.annotation.UserIdField; +import com.yfd.platform.annotation.UserNameField; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +@Data +@TableName("SD_OPINFO_B_H") +public class SdOpinfoBH implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(type = IdType.INPUT) + private String stcd; + + private String stnm; + + private String sttp; + + @TableField(exist = false) + private String sttpName; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date tm; + + private Integer blprd; + + private BigDecimal lgtd; + + private BigDecimal lttd; + + private BigDecimal elev; + + private String stlc; + + private Integer usfl; + + private Integer dtin; + + @TableField(exist = false) + private String dtinName; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @TableField("DTIN_TM") + private Date dtinTm; + + @TableField("ORDER_INDEX") + private Integer orderIndex; + + private String rstcd; + + @TableField(exist = false) + private String ennm; + + @TableField("BASE_ID") + private String baseId; + + @TableField(exist = false) + private String baseName; + + private String hbrvcd; + + @TableField(exist = false) + private String hbrvcdName; + + private String rvcd; + + @TableField(exist = false) + private String rvnm; + + private String addvcd; + + @TableField("STDSDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date stdsdt; + + @TableField("PSTSTDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date pststdt; + + @TableField("PESSTDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date pesstdt; + + @TableField("SWDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date swdt; + + @TableField("JCDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date jcdt; + + @TableField("WDDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date wddt; + + @TableField("BLDSTT_CODE") + private Integer bldsttCode; + + @TableField(exist = false) + private String bldsttCodeName; + + private String introduce; + + private String logo; + + private String inffile; + + private String url; + + private BigDecimal height; + + private String boundary; + + @TableField("CENTER_LGTD") + private BigDecimal centerLgtd; + + @TableField("CENTER_LTTD") + private BigDecimal centerLttd; + + @TableField("CENTER_ELEV") + private BigDecimal centerElev; + + private String description; + + @TableField("CENTER1_LGTD") + private BigDecimal center1Lgtd; + + @TableField("CENTER1_LTTD") + private BigDecimal center1Lttd; + + @TableField("CENTER1_ELEV") + private BigDecimal center1Elev; + + @TableField("CLIPPING_PLANES") + private String clippingPlanes; + + @TableField("DESTINATION_TYPE") + private String destinationType; + + @TableField("DESTINATION_LGTD") + private BigDecimal destinationLgtd; + + @TableField("DESTINATION_LTTD") + private BigDecimal destinationLttd; + + @TableField("DESTINATION_ELEV") + private BigDecimal destinationElev; + + @TableField("ORIENTATION_ROLL") + private BigDecimal orientationRoll; + + @TableField("ORIENTATION_HEADING") + private BigDecimal orientationHeading; + + @TableField("ORIENTATION_PITCH") + private BigDecimal orientationPitch; + + @TableField("REVISE_SITE_ELEV") + private BigDecimal reviseSiteElev; + + @TableField("REVISE_SITE_ELEV_FACTOR") + private BigDecimal reviseSiteElevFactor; + + @TableField("DESTINATION_LGTD_WCS") + private BigDecimal destinationLgtdWcs; + + @TableField("DESTINATION_LTTD_WCS") + private BigDecimal destinationLttdWcs; + + @TableField("DESTINATION_ELEV_WCS") + private BigDecimal destinationElevWcs; + + @TableField("DESTINATION_LGTD_WGS84") + private BigDecimal destinationLgtdWgs84; + + @TableField("DESTINATION_LTTD_WGS84") + private BigDecimal destinationLttdWgs84; + + @TableField("DESTINATION_ELEV_WGS84") + private BigDecimal destinationElevWgs84; + + private String location; + + private String accuracy; + + @TableField("STNM_ALIAS") + private String stnmAlias; + + private String remark; + + private String vlsr; + + @TableField("VLSR_TM") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date vlsrTm; + + @TableField("RECORD_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date recordTime; + + @TableField("MODIFY_USER") + private String modifyUser; + + @TableField("MODIFY_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date modifyTime; + + @TableField("IS_DELETED") + private Integer isDeleted; + + @TableField("DELETE_USER") + private String deleteUser; + + @TableField("DELETE_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date deleteTime; + + /** 所属站类全路径(非数据库字段) */ + @TableField(exist = false) + private String sttpFullPath; + + /** 所属站类层级(非数据库字段) */ + @TableField(exist = false) + private Integer sttpTreeLevel; + + /** 创建人 */ + @TableField("RECORD_USER") + @UserIdField + private String recordUser; + + /** 创建人名称(非数据库字段) */ + @TableField(exist = false) + @UserNameField + private String recordUserName; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOtteBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOtteBH.java new file mode 100644 index 00000000..f38789f6 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOtteBH.java @@ -0,0 +1,122 @@ +package com.yfd.platform.qgc_base.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +@Data +@TableName("SD_OTTE_B_H") +public class SdOtteBH implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(type = IdType.INPUT) + private String stcd; + + private String stnm; + + private String sttp; + + @TableField(exist = false) + private String sttpName; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date tm; + + private Integer blprd; + + private BigDecimal lgtd; + + private BigDecimal lttd; + + private BigDecimal elev; + + private String stlc; + + private Integer usfl; + + private Integer dtin; + + @TableField(exist = false) + private String dtinName; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @TableField("DTIN_TM") + private Date dtinTm; + + @TableField("ORDER_INDEX") + private Integer orderIndex; + + private String rstcd; + + @TableField(exist = false) + private String ennm; + + @TableField("BASE_ID") + private String baseId; + + @TableField(exist = false) + private String baseName; + + private String hbrvcd; + + private String rvcd; + + @TableField(exist = false) + private String rvnm; + + private String addvcd; + + @TableField("STDSDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date stdsdt; + + @TableField("PSTSTDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date pststdt; + + @TableField("PESSTDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date pesstdt; + + @TableField("SWDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date swdt; + + @TableField("JCDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date jcdt; + + @TableField("WDDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date wddt; + + @TableField("BLDSTT_CODE") + private Integer bldsttCode; + + @TableField(exist = false) + private String bldsttCodeName; + + private String introduce; + + private String logo; + + private String inffile; + + private BigDecimal inv; + + private String jbtxcs; + + private String dtfrqcy; + + private String remark; + + private String vlsr; + + @TableField("VLSR_TM") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date vlsrTm; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOtweBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOtweBH.java new file mode 100644 index 00000000..7c162c2e --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOtweBH.java @@ -0,0 +1,124 @@ +package com.yfd.platform.qgc_base.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +@Data +@TableName("SD_OTWE_B_H") +public class SdOtweBH implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(type = IdType.INPUT) + private String stcd; + + private String stnm; + + private String sttp; + + @TableField(exist = false) + private String sttpName; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date tm; + + private Integer blprd; + + private BigDecimal lgtd; + + private BigDecimal lttd; + + private BigDecimal elev; + + private String stlc; + + private Integer usfl; + + private Integer dtin; + + @TableField(exist = false) + private String dtinName; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @TableField("DTIN_TM") + private Date dtinTm; + + @TableField("ORDER_INDEX") + private Integer orderIndex; + + private String rstcd; + + @TableField(exist = false) + private String ennm; + + @TableField("BASE_ID") + private String baseId; + + @TableField(exist = false) + private String baseName; + + private String hbrvcd; + + private String rvcd; + + @TableField(exist = false) + private String rvnm; + + private String addvcd; + + @TableField("STDSDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date stdsdt; + + @TableField("PSTSTDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date pststdt; + + @TableField("PESSTDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date pesstdt; + + @TableField("SWDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date swdt; + + @TableField("JCDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date jcdt; + + @TableField("WDDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date wddt; + + @TableField("BLDSTT_CODE") + private Integer bldsttCode; + + @TableField(exist = false) + private String bldsttCodeName; + + private String introduce; + + private String logo; + + private String inffile; + + private BigDecimal inv; + + private Integer invinmn; + + private String jbtxcs; + + private String dtfrqcy; + + private String remark; + + private String vlsr; + + @TableField("VLSR_TM") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date vlsrTm; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdRvcdDic.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdRvcdDic.java index 53178c88..4ceb5cb2 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdRvcdDic.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdRvcdDic.java @@ -5,6 +5,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -54,12 +55,12 @@ public class SdRvcdDic implements Serializable { /** * 经度 */ - private Double lgtd; + private BigDecimal lgtd; /** * 纬度 */ - private Double lttd; + private BigDecimal lttd; /** * 面积 diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdSonarBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdSonarBH.java new file mode 100644 index 00000000..a775f3ab --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdSonarBH.java @@ -0,0 +1,140 @@ +package com.yfd.platform.qgc_base.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +@Data +@TableName("SD_SONAR_B_H") +public class SdSonarBH implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(type = IdType.INPUT) + private String stcd; + + private String stnm; + + private String mntp; + + private String sttp; + + @TableField(exist = false) + private String sttpName; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date tm; + + private BigDecimal lgtd; + + private BigDecimal lttd; + + private BigDecimal elev; + + private String stlc; + + @TableField("JCDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date jcdt; + + @TableField("WDDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date wddt; + + @TableField("BLDSTT_CODE") + private Integer bldsttCode; + + @TableField(exist = false) + private String bldsttCodeName; + + private Integer usfl; + + private Integer dtin; + + @TableField(exist = false) + private String dtinName; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @TableField("DTIN_TM") + private Date dtinTm; + + private Integer mway; + + @TableField(exist = false) + private String mwayName; + + private String stindx; + + @TableField("ORDER_INDEX") + private Integer orderIndex; + + private String rstcd; + + @TableField(exist = false) + private String ennm; + + @TableField("BASE_ID") + private String baseId; + + @TableField(exist = false) + private String baseName; + + private String hbrvcd; + + private String rvcd; + + @TableField(exist = false) + private String rvnm; + + private String addvcd; + + private String introduce; + + private String logo; + + private String inffile; + + private String fwdx; + + private String gcfs; + + private String dtfrqcy; + + private String remark; + + private String vlsr; + + @TableField("VLSR_TM") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date vlsrTm; + + @TableField("RECORD_USER") + private String recordUser; + + @TableField("RECORD_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date recordTime; + + @TableField("MODIFY_USER") + private String modifyUser; + + @TableField("MODIFY_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date modifyTime; + + @TableField("IS_DELETED") + private Integer isDeleted; + + @TableField("DELETE_USER") + private String deleteUser; + + @TableField("DELETE_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date deleteTime; + + @TableField("WARN_STATE") + private String warnState; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdTeBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdTeBH.java new file mode 100644 index 00000000..ebf5402b --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdTeBH.java @@ -0,0 +1,120 @@ +package com.yfd.platform.qgc_base.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +@Data +@TableName("SD_TE_B_H") +public class SdTeBH implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(type = IdType.INPUT) + private String stcd; + + private String stnm; + + private String sttp; + + @TableField(exist = false) + private String sttpName; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date tm; + + private BigDecimal lgtd; + + private BigDecimal lttd; + + private BigDecimal elev; + + private String stlc; + + private Integer usfl; + + private Integer dtin; + + @TableField(exist = false) + private String dtinName; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @TableField("DTIN_TM") + private Date dtinTm; + + @TableField("ORDER_INDEX") + private Integer orderIndex; + + private String rstcd; + + @TableField(exist = false) + private String ennm; + + @TableField("BASE_ID") + private String baseId; + + @TableField(exist = false) + private String baseName; + + private String hbrvcd; + + private String rvcd; + + @TableField(exist = false) + private String rvnm; + + private String addvcd; + + @TableField("STDSDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date stdsdt; + + @TableField("PSTSTDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date pststdt; + + @TableField("PESSTDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date pesstdt; + + @TableField("SWDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date swdt; + + @TableField("JCDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date jcdt; + + @TableField("WDDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date wddt; + + @TableField("BLDSTT_CODE") + private Integer bldsttCode; + + @TableField(exist = false) + private String bldsttCodeName; + + private String introduce; + + private String logo; + + private String inffile; + + private BigDecimal inv; + + private Integer invinmn; + + private String dtfrqcy; + + private String remark; + + private String vlsr; + + @TableField("VLSR_TM") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date vlsrTm; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVaBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVaBH.java new file mode 100644 index 00000000..3b0d445a --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVaBH.java @@ -0,0 +1,150 @@ +package com.yfd.platform.qgc_base.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +@Data +@TableName("SD_VA_B_H") +public class SdVaBH implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(type = IdType.INPUT) + private String stcd; + + private String stnm; + + private String sttp; + + @TableField(exist = false) + private String sttpName; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date tm; + + private Integer blprd; + + private BigDecimal lgtd; + + private BigDecimal lttd; + + private BigDecimal elev; + + private String stlc; + + private Integer usfl; + + private Integer dtin; + @TableField(exist = false) + private String dtinName; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @TableField("DTIN_TM") + private Date dtinTm; + + @TableField("ORDER_INDEX") + private Integer orderIndex; + + private String rstcd; + + @TableField(exist = false) + private String ennm; + + @TableField("BASE_ID") + private String baseId; + + @TableField(exist = false) + private String baseName; + + private String hbrvcd; + + private String rstcdmap; + + @TableField("STDSDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date stdsdt; + + @TableField("PSTSTDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date pststdt; + + @TableField("PESSTDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date pesstdt; + + @TableField("SWDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date swdt; + + @TableField("JCDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date jcdt; + + @TableField("WDDT") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date wddt; + + @TableField("BLDSTT_CODE") + private Integer bldsttCode; + + @TableField(exist = false) + private String bldsttCodeName; + + private String introduce; + + private String logo; + + private String inffile; + + private BigDecimal inv; + + private BigDecimal area; + + private String place; + + private String bhfs; + + private String bhyy; + + private String bhdx; + + private String bhdxlb; + + private String dtfrqcy; + + private String remark; + + private String vlsr; + + @TableField("VLSR_TM") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date vlsrTm; + + @TableField("RECORD_USER") + private String recordUser; + + @TableField("RECORD_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date recordTime; + + @TableField("MODIFY_USER") + private String modifyUser; + + @TableField("MODIFY_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date modifyTime; + + @TableField("IS_DELETED") + private Integer isDeleted; + + @TableField("DELETE_USER") + private String deleteUser; + + @TableField("DELETE_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date deleteTime; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVdinfoB.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVdinfoB.java new file mode 100644 index 00000000..3865d5c1 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVdinfoB.java @@ -0,0 +1,197 @@ +package com.yfd.platform.qgc_base.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +@Data +@TableName("SD_VDINFO_B") +public class SdVdinfoB implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(type = IdType.INPUT) + private String stcd; + + private String stnm; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date tm; + + private String mntp; + + private String sttp; + + @TableField(exist = false) + private String sttpName; + + private BigDecimal lgtd; + + private BigDecimal lttd; + + private BigDecimal elev; + + private String stlc; + + private String stindx; + + private String description; + + private String rstcd; + + @TableField(exist = false) + private String ennm; + + private String cstcd; + + private String rvcd; + + @TableField(exist = false) + private String rvnm; + + private String addvcd; + + private String hycd; + + @TableField("BASE_ID") + private String baseId; + + @TableField(exist = false) + private String baseName; + + private String hbrvcd; + + private String fhstcd; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date swdt; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date jcdt; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date wddt; + + @TableField("BLDSTT_CODE") + private Integer bldsttCode; + + @TableField(exist = false) + private String bldsttCodeName; + + private Integer usfl; + + private Integer dtin; + + @TableField(exist = false) + private String dtinName; + + @TableField("DTIN_SRC") + private String dtinSrc; + + @TableField("DTIN_TM") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date dtinTm; + + @TableField("DEVICE_INFO") + private String deviceInfo; + + @TableField("ACCESS_WAY") + private String accessWay; + + @TableField("DEVICE_SERIAL") + private String deviceSerial; + + @TableField("CHANNEL_NO") + private String channelNo; + + @TableField("CHANNEL_NAME") + private String channelName; + + private String gbchannel; + + private String protocol; + + private String quality; + + private String transmode; + + @TableField("IS_VD_CONTROL") + private Integer isVdControl; + + @TableField("CONTROL_MODE") + private String controlMode; + + private String url; + + @TableField("INTRANET_URL") + private String intranetUrl; + + private String vduser; + + private String vdpwd; + + @TableField("STORAGE_WAY") + private String storageWay; + + private String frequency; + + @TableField("CUT_TIME") + private String cutTime; + + @TableField("FRAME_RATE") + private String frameRate; + + @TableField("TS_DURATION") + private String tsDuration; + + @TableField("OCR_WAY") + private String ocrWay; + + private String eqreviewm; + + private Integer jwupdate; + + @TableField("AI_ENABLED") + private Integer aiEnabled; + + @TableField("AI_FREQUENCY") + private String aiFrequency; + + @TableField("AI_EXT_CODE") + private String aiExtCode; + + @TableField("AI_EXT_NAME") + private String aiExtName; + + @TableField("LIVE_ADDRESS") + private String liveAddress; + + private Integer vdhisday; + + @TableField("DELAY_TIME") + private String delayTime; + + @TableField("DELAY_NUM") + private Integer delayNum; + + private String project; + + private String dtfrqcy; + + private String remark; + + private String vlsr; + + @TableField("VLSR_TM") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date vlsrTm; + + @TableField("WARN_STATE") + private String warnState; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVpBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVpBH.java new file mode 100644 index 00000000..fdb7b945 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVpBH.java @@ -0,0 +1,151 @@ +package com.yfd.platform.qgc_base.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +@Data +@TableName("SD_VP_B_H") +public class SdVpBH implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(type = IdType.INPUT) + private String stcd; + + private String stnm; + + private String sttp; + + @TableField(exist = false) + private String sttpName; + + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date tm; + + private Integer blprd; + + private BigDecimal lgtd; + + private BigDecimal lttd; + + private BigDecimal elev; + + private String stlc; + + private Integer usfl; + + private Integer dtin; + + @TableField(exist = false) + private String dtinName; + + @TableField("DTIN_TM") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date dtinTm; + + @TableField("ORDER_INDEX") + private Integer orderIndex; + + private String rstcd; + + @TableField(exist = false) + private String ennm; + + @TableField("BASE_ID") + private String baseId; + + @TableField(exist = false) + private String baseName; + + private String hbrvcd; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date stdsdt; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date pststdt; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date pesstdt; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date swdt; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date jcdt; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date wddt; + + @TableField("BLDSTT_CODE") + private Integer bldsttCode; + + @TableField(exist = false) + private String bldsttCodeName; + + private String introduce; + + private String logo; + + private String inffile; + + private BigDecimal inv; + + private Integer aptl; + + private BigDecimal area; + + private String place; + + private String bhdx; + + private String bhdxlb; + + private String bhfs; + + private String bhyy; + + private Integer iscaec; + + private String dtfrqcy; + + private String remark; + + private String vlsr; + + @TableField("VLSR_TM") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date vlsrTm; + + @TableField("RECORD_USER") + private String recordUser; + + @TableField("RECORD_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date recordTime; + + @TableField("MODIFY_USER") + private String modifyUser; + + @TableField("MODIFY_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date modifyTime; + + @TableField("IS_DELETED") + private Integer isDeleted; + + @TableField("DELETE_USER") + private String deleteUser; + + @TableField("DELETE_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date deleteTime; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWeBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWeBH.java new file mode 100644 index 00000000..f3014353 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWeBH.java @@ -0,0 +1,117 @@ +package com.yfd.platform.qgc_base.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +@Data +@TableName("SD_WE_B_H") +public class SdWeBH implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(type = IdType.INPUT) + private String stcd; + + private String stnm; + + private String sttp; + + @TableField(exist = false) + private String sttpName; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date tm; + + private BigDecimal lgtd; + + private BigDecimal lttd; + + private BigDecimal elev; + + private String stlc; + + private Integer usfl; + + private Integer dtin; + + @TableField(exist = false) + private String dtinName; + + @TableField("DTIN_TM") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date dtinTm; + + @TableField("ORDER_INDEX") + private Integer orderIndex; + + private String rstcd; + + @TableField(exist = false) + private String ennm; + + @TableField("BASE_ID") + private String baseId; + + @TableField(exist = false) + private String baseName; + + private String hbrvcd; + + private String rvcd; + + @TableField(exist = false) + private String rvnm; + + private String addvcd; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date stdsdt; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date pststdt; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date pesstdt; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date swdt; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date jcdt; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date wddt; + + @TableField("BLDSTT_CODE") + private Integer bldsttCode; + + @TableField(exist = false) + private String bldsttCodeName; + + private String introduce; + + private String logo; + + private String inffile; + + private BigDecimal inv; + + private Integer invinmn; + + private String dtfrqcy; + + private String remark; + + private String vlsr; + + @TableField("VLSR_TM") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date vlsrTm; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWqBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWqBH.java new file mode 100644 index 00000000..043e6df2 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWqBH.java @@ -0,0 +1,148 @@ +package com.yfd.platform.qgc_base.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +@Data +@TableName("SD_WQ_B_H") +public class SdWqBH implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(type = IdType.INPUT) + private String stcd; + + private String stnm; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date tm; + + private String sttp; + + @TableField(exist = false) + private String sttpName; + + private BigDecimal lgtd; + + private BigDecimal lttd; + + private BigDecimal elev; + + private String stlc; + + private String wwqtg; + + @TableField(exist = false) + private String wwqtgName; + + private String wqtype; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date jcdt; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date wddt; + + @TableField("BLDSTT_CODE") + private Integer bldsttCode; + + @TableField(exist = false) + private String bldsttCodeName; + + private String introduce; + + private String logo; + + private String inffile; + + private Integer usfl; + + private Integer dtin; + + @TableField(exist = false) + private String dtinName; + + @TableField("DTIN_SRC") + private String dtinSrc; + + @TableField("DTIN_TYPE") + private Integer dtinType; + + @TableField(exist = false) + private String dtinTypeName; + + @TableField("DTIN_TM") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date dtinTm; + + private Integer mway; + + @TableField(exist = false) + private Integer mwayName; + + private String stindx; + + @TableField("ORDER_INDEX") + private Integer orderIndex; + + private String rstcd; + + @TableField(exist = false) + private String ennm; + + @TableField("BASE_ID") + private String baseId; + + @TableField(exist = false) + private String baseName; + + private String hbrvcd; + + private String fhstcd; + + private Integer ispro; + + private String dtfrqcy; + + private String remark; + + private String vlsr; + + @TableField("VLSR_TM") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date vlsrTm; + + @TableField("RECORD_USER") + private String recordUser; + + @TableField("RECORD_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date recordTime; + + @TableField("MODIFY_USER") + private String modifyUser; + + @TableField("MODIFY_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date modifyTime; + + @TableField("IS_DELETED") + private Integer isDeleted; + + @TableField("DELETE_USER") + private String deleteUser; + + @TableField("DELETE_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date deleteTime; + + @TableField("WARN_STATE") + private String warnState; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWtBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWtBH.java new file mode 100644 index 00000000..8bef14a8 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWtBH.java @@ -0,0 +1,171 @@ +package com.yfd.platform.qgc_base.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +@Data +@TableName("SD_WT_B_H") +public class SdWtBH implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(type = IdType.INPUT) + private String stcd; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date tm; + + private String stnm; + + private String sttp; + + @TableField(exist = false) + private String sttpName; + + private BigDecimal lgtd; + + private BigDecimal lttd; + + private BigDecimal elev; + + private String stlc; + + private String stsr; + + @TableField("WT_DEVICE_TYPE") + private Integer wtDeviceType; + + @TableField("WT_TYPE") + private String wtType; + + private String wts; + + @TableField("WT_HGT_TYPE") + private Integer wtHgtType; + + @TableField("WT_FIRST_HGT") + private BigDecimal wtFirstHgt; + + @TableField("WT_DIST") + private String wtDist; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date jcdt; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date wddt; + + @TableField("BLDSTT_CODE") + private Integer bldsttCode; + + @TableField(exist = false) + private String bldsttCodeName; + + private BigDecimal inv; + + private Integer invinmn; + + private String introduce; + + private String logo; + + private String inffile; + + private Integer usfl; + + private Integer dtin; + + @TableField(exist = false) + private String dtinName; + + @TableField("DTIN_SRC") + private String dtinSrc; + + @TableField("DTIN_TYPE") + private Integer dtinType; + + @TableField(exist = false) + private String dtinTypeName; + + @TableField("DTIN_TM") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date dtinTm; + + private Integer mway; + + @TableField(exist = false) + private String mwayName; + + private String stindx; + + @TableField("ORDER_INDEX") + private Integer orderIndex; + + private String dmstcd; + + private String rstcd; + + @TableField(exist = false) + private String ennm; + + private String fhstcd; + + private Integer ispro; + + private String project; + + private String dtfrqcy; + + private String remark; + + private String vlsr; + + @TableField("VLSR_TM") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date vlsrTm; + + @TableField("RECORD_USER") + private String recordUser; + + @TableField("RECORD_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date recordTime; + + @TableField("MODIFY_USER") + private String modifyUser; + + @TableField("MODIFY_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date modifyTime; + + @TableField("IS_DELETED") + private Integer isDeleted; + + @TableField("DELETE_USER") + private String deleteUser; + + @TableField("DELETE_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date deleteTime; + + @TableField("BASE_ID") + private String baseId; + + @TableField(exist = false) + private String baseName; + + private String hbrvcd; + + @TableField("WARN_STATE") + private String warnState; + + @TableField("IS_PUSH") + private Integer isPush; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/vo/EngRsvrcscdBVo.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/vo/EngRsvrcscdBVo.java index 4ccc4736..ca7f29c1 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/vo/EngRsvrcscdBVo.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/vo/EngRsvrcscdBVo.java @@ -2,6 +2,7 @@ package com.yfd.platform.qgc_base.domain.vo; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; @Data @@ -35,9 +36,9 @@ public class EngRsvrcscdBVo { private Integer isDeleted; - private Double lgtd; + private BigDecimal lgtd; - private Double lttd; + private BigDecimal lttd; private String stlc; } \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/vo/EngVmsstbprptVo.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/vo/EngVmsstbprptVo.java index 28c657ee..0554dae5 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/vo/EngVmsstbprptVo.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/vo/EngVmsstbprptVo.java @@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; @Data @@ -32,8 +33,8 @@ public class EngVmsstbprptVo implements Serializable { private String hycd; private String topHycd; private String stlc; - private Double lgtd; - private Double lttd; + private BigDecimal lgtd; + private BigDecimal lttd; private Date jcdt; private Date piodt; private Date aiodt; diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/MsEiaApprovalBMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/MsEiaApprovalBMapper.java new file mode 100644 index 00000000..b0922ca0 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/MsEiaApprovalBMapper.java @@ -0,0 +1,7 @@ +package com.yfd.platform.qgc_base.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.qgc_base.domain.MsEiaApprovalB; + +public interface MsEiaApprovalBMapper extends BaseMapper { +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/MsWarnRuleBMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/MsWarnRuleBMapper.java new file mode 100644 index 00000000..65897007 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/MsWarnRuleBMapper.java @@ -0,0 +1,7 @@ +package com.yfd.platform.qgc_base.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.qgc_base.domain.MsWarnRuleB; + +public interface MsWarnRuleBMapper extends BaseMapper { +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdAiboxBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdAiboxBHMapper.java new file mode 100644 index 00000000..c3906e84 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdAiboxBHMapper.java @@ -0,0 +1,13 @@ +package com.yfd.platform.qgc_base.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.qgc_base.domain.SdAiboxBH; + +/** + *

+ * AI边缘计算盒子基本属性表 Mapper 接口 + *

+ */ +public interface SdAiboxBHMapper extends BaseMapper { + +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdAimonitorBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdAimonitorBHMapper.java new file mode 100644 index 00000000..5262360b --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdAimonitorBHMapper.java @@ -0,0 +1,7 @@ +package com.yfd.platform.qgc_base.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.qgc_base.domain.SdAimonitorBH; + +public interface SdAimonitorBHMapper extends BaseMapper { +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdArtsgBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdArtsgBHMapper.java new file mode 100644 index 00000000..d095091d --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdArtsgBHMapper.java @@ -0,0 +1,13 @@ +package com.yfd.platform.qgc_base.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.qgc_base.domain.SdArtsgBH; + +/** + *

+ * 人工产卵场工程信息表 Mapper 接口 + *

+ */ +public interface SdArtsgBHMapper extends BaseMapper { + +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdDwBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdDwBHMapper.java new file mode 100644 index 00000000..534c5dd5 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdDwBHMapper.java @@ -0,0 +1,13 @@ +package com.yfd.platform.qgc_base.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.qgc_base.domain.SdDwBH; + +/** + *

+ * 低温水减缓设施信息表 Mapper 接口 + *

+ */ +public interface SdDwBHMapper extends BaseMapper { + +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdEqBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdEqBHMapper.java new file mode 100644 index 00000000..c019ae00 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdEqBHMapper.java @@ -0,0 +1,13 @@ +package com.yfd.platform.qgc_base.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.qgc_base.domain.SdEqBH; + +/** + *

+ * 生态流量泄放设施信息表 Mapper 接口 + *

+ */ +public interface SdEqBHMapper extends BaseMapper { + +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdFbrdBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdFbrdBHMapper.java new file mode 100644 index 00000000..841098dc --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdFbrdBHMapper.java @@ -0,0 +1,13 @@ +package com.yfd.platform.qgc_base.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.qgc_base.domain.SdFbrdBH; + +/** + *

+ * 鱼类增殖设施保护工程信息表 Mapper 接口 + *

+ */ +public interface SdFbrdBHMapper extends BaseMapper { + +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdFhbtBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdFhbtBHMapper.java new file mode 100644 index 00000000..8122b2f1 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdFhbtBHMapper.java @@ -0,0 +1,13 @@ +package com.yfd.platform.qgc_base.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.qgc_base.domain.SdFhbtBH; + +/** + *

+ * 栖息地保护工程信息表 Mapper 接口 + *

+ */ +public interface SdFhbtBHMapper extends BaseMapper { + +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdOpinfoBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdOpinfoBHMapper.java new file mode 100644 index 00000000..19611176 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdOpinfoBHMapper.java @@ -0,0 +1,7 @@ +package com.yfd.platform.qgc_base.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.qgc_base.domain.SdOpinfoBH; + +public interface SdOpinfoBHMapper extends BaseMapper { +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdOtteBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdOtteBHMapper.java new file mode 100644 index 00000000..80904d11 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdOtteBHMapper.java @@ -0,0 +1,7 @@ +package com.yfd.platform.qgc_base.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.qgc_base.domain.SdOtteBH; + +public interface SdOtteBHMapper extends BaseMapper { +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdOtweBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdOtweBHMapper.java new file mode 100644 index 00000000..a6248676 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdOtweBHMapper.java @@ -0,0 +1,7 @@ +package com.yfd.platform.qgc_base.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.qgc_base.domain.SdOtweBH; + +public interface SdOtweBHMapper extends BaseMapper { +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdSonarBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdSonarBHMapper.java new file mode 100644 index 00000000..197bf37f --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdSonarBHMapper.java @@ -0,0 +1,7 @@ +package com.yfd.platform.qgc_base.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.qgc_base.domain.SdSonarBH; + +public interface SdSonarBHMapper extends BaseMapper { +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdTeBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdTeBHMapper.java new file mode 100644 index 00000000..e04fa61a --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdTeBHMapper.java @@ -0,0 +1,7 @@ +package com.yfd.platform.qgc_base.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.qgc_base.domain.SdTeBH; + +public interface SdTeBHMapper extends BaseMapper { +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdVaBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdVaBHMapper.java new file mode 100644 index 00000000..29a32bbd --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdVaBHMapper.java @@ -0,0 +1,7 @@ +package com.yfd.platform.qgc_base.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.qgc_base.domain.SdVaBH; + +public interface SdVaBHMapper extends BaseMapper { +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdVdinfoBMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdVdinfoBMapper.java new file mode 100644 index 00000000..9c9c2a41 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdVdinfoBMapper.java @@ -0,0 +1,9 @@ +package com.yfd.platform.qgc_base.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.qgc_base.domain.SdVdinfoB; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SdVdinfoBMapper extends BaseMapper { +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdVpBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdVpBHMapper.java new file mode 100644 index 00000000..22f8b59f --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdVpBHMapper.java @@ -0,0 +1,9 @@ +package com.yfd.platform.qgc_base.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.qgc_base.domain.SdVpBH; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SdVpBHMapper extends BaseMapper { +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdWeBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdWeBHMapper.java new file mode 100644 index 00000000..2228a21a --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdWeBHMapper.java @@ -0,0 +1,9 @@ +package com.yfd.platform.qgc_base.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.qgc_base.domain.SdWeBH; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SdWeBHMapper extends BaseMapper { +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdWqBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdWqBHMapper.java new file mode 100644 index 00000000..eea9eb26 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdWqBHMapper.java @@ -0,0 +1,9 @@ +package com.yfd.platform.qgc_base.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.qgc_base.domain.SdWqBH; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SdWqBHMapper extends BaseMapper { +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdWtBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdWtBHMapper.java new file mode 100644 index 00000000..659c3679 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdWtBHMapper.java @@ -0,0 +1,9 @@ +package com.yfd.platform.qgc_base.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.qgc_base.domain.SdWtBH; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SdWtBHMapper extends BaseMapper { +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/IMsEiaApprovalBService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/IMsEiaApprovalBService.java new file mode 100644 index 00000000..cb282c90 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/IMsEiaApprovalBService.java @@ -0,0 +1,18 @@ +package com.yfd.platform.qgc_base.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.qgc_base.domain.MsEiaApprovalB; + +import java.util.List; + +/** + * 生态环保批复文件 Service 接口 + */ +public interface IMsEiaApprovalBService extends IService { + Page queryPageList(DataSourceRequest request); + boolean add(MsEiaApprovalB entity, String source); + boolean update(MsEiaApprovalB entity, String source); + boolean delete(List ids, String source); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/IMsOperationLogService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/IMsOperationLogService.java index f9edde52..203aae65 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/service/IMsOperationLogService.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/IMsOperationLogService.java @@ -9,4 +9,53 @@ public interface IMsOperationLogService { void recordEngUpdateLog(SdEngInfoBH before, SdEngInfoBH changeSet, String source); void recordEngDeleteLog(SdEngInfoBH engInfo, String source); + + /** + * 通用操作日志记录 + * @param tableName 表名 + * @param recordId 记录ID(stcd) + * @param operation 操作类型(新增/修改/删除) + * @param source 操作来源 + */ + void recordOperationLog(String tableName, String recordId, String operation, String source); + + /** + * 通用修改操作详情日志(含字段级变更详情) + *

+ * 通过反射遍历实体所有字段,对比修改前后的值差异, + * 将每个变更字段记录为一条操作日志详情。 + *

+ * @param tableName 表名 + * @param before 修改前的实体 + * @param after 修改后的实体 + * @param source 操作来源 + * @param 实体类型 + */ + void recordModifyDetailLog(String tableName, T before, T after, String source); + + /** + * 通用新增操作详情日志(含字段级详情) + *

+ * 通过反射遍历实体所有非空字段,将每个字段值 + * 记录为一条操作日志详情。 + *

+ * @param tableName 表名 + * @param entity 新增的实体 + * @param source 操作来源 + * @param 实体类型 + */ + void recordAddDetailLog(String tableName, T entity, String source); + + /** + * 通用删除操作详情日志(含字段级详情) + *

+ * 通过反射遍历实体所有非空字段,将每个被删除的字段值 + * 记录为一条操作日志详情。 + *

+ * @param tableName 表名 + * @param entity 被删除的实体 + * @param source 操作来源 + * @param 实体类型 + */ + void recordDeleteDetailLog(String tableName, T entity, String source); } diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/IMsWarnRuleBService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/IMsWarnRuleBService.java new file mode 100644 index 00000000..d15d8d16 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/IMsWarnRuleBService.java @@ -0,0 +1,18 @@ +package com.yfd.platform.qgc_base.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.qgc_base.domain.MsWarnRuleB; + +import java.util.List; + +/** + * 预警规则配置 Service 接口 + */ +public interface IMsWarnRuleBService extends IService { + Page queryPageList(DataSourceRequest request); + boolean add(MsWarnRuleB entity, String source); + boolean update(MsWarnRuleB entity, String source); + boolean delete(List ids, String source); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdAiboxBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdAiboxBHService.java new file mode 100644 index 00000000..0999c581 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdAiboxBHService.java @@ -0,0 +1,36 @@ +package com.yfd.platform.qgc_base.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.qgc_base.domain.SdAiboxBH; + +import java.util.List; + +/** + *

+ * AI边缘计算盒子基本属性表 服务类 + *

+ */ +public interface ISdAiboxBHService extends IService { + + /** + * 分页查询 + */ + Page queryPageList(DataSourceRequest request); + + /** + * 新增 + */ + boolean add(SdAiboxBH entity, String source); + + /** + * 修改 + */ + boolean update(SdAiboxBH entity, String source); + + /** + * 删除 + */ + boolean delete(List stcds, String source); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdAimonitorBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdAimonitorBHService.java new file mode 100644 index 00000000..8450be92 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdAimonitorBHService.java @@ -0,0 +1,18 @@ +package com.yfd.platform.qgc_base.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.qgc_base.domain.SdAimonitorBH; + +import java.util.List; + +/** + * AI智能监测装置 Service 接口 + */ +public interface ISdAimonitorBHService extends IService { + Page queryPageList(DataSourceRequest request); + boolean add(SdAimonitorBH entity, String source); + boolean update(SdAimonitorBH entity, String source); + boolean delete(List stcds, String source); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdArtsgBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdArtsgBHService.java new file mode 100644 index 00000000..11a57f77 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdArtsgBHService.java @@ -0,0 +1,36 @@ +package com.yfd.platform.qgc_base.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.qgc_base.domain.SdArtsgBH; + +import java.util.List; + +/** + *

+ * 人工产卵场工程信息表 服务类 + *

+ */ +public interface ISdArtsgBHService extends IService { + + /** + * 分页查询 + */ + Page queryPageList(DataSourceRequest request); + + /** + * 新增 + */ + boolean add(SdArtsgBH entity, String source); + + /** + * 修改 + */ + boolean update(SdArtsgBH entity, String source); + + /** + * 删除 + */ + boolean delete(List stcds, String source); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdDwBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdDwBHService.java new file mode 100644 index 00000000..9a793cc2 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdDwBHService.java @@ -0,0 +1,36 @@ +package com.yfd.platform.qgc_base.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.qgc_base.domain.SdDwBH; + +import java.util.List; + +/** + *

+ * 低温水减缓设施信息表 服务类 + *

+ */ +public interface ISdDwBHService extends IService { + + /** + * 分页查询 + */ + Page queryPageList(DataSourceRequest request); + + /** + * 新增 + */ + boolean add(SdDwBH entity, String source); + + /** + * 修改 + */ + boolean update(SdDwBH entity, String source); + + /** + * 删除 + */ + boolean delete(List stcds, String source); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdEqBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdEqBHService.java new file mode 100644 index 00000000..8d7f5cc5 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdEqBHService.java @@ -0,0 +1,36 @@ +package com.yfd.platform.qgc_base.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.qgc_base.domain.SdEqBH; + +import java.util.List; + +/** + *

+ * 生态流量泄放设施信息表 服务类 + *

+ */ +public interface ISdEqBHService extends IService { + + /** + * 分页查询 + */ + Page queryPageList(DataSourceRequest request); + + /** + * 新增 + */ + boolean add(SdEqBH entity, String source); + + /** + * 修改 + */ + boolean update(SdEqBH entity, String source); + + /** + * 删除 + */ + boolean delete(List stcds, String source); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdFbrdBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdFbrdBHService.java new file mode 100644 index 00000000..70b074f4 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdFbrdBHService.java @@ -0,0 +1,36 @@ +package com.yfd.platform.qgc_base.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.qgc_base.domain.SdFbrdBH; + +import java.util.List; + +/** + *

+ * 鱼类增殖设施保护工程信息表 服务类 + *

+ */ +public interface ISdFbrdBHService extends IService { + + /** + * 分页查询 + */ + Page queryPageList(DataSourceRequest request); + + /** + * 新增 + */ + boolean add(SdFbrdBH entity, String source); + + /** + * 修改 + */ + boolean update(SdFbrdBH entity, String source); + + /** + * 删除 + */ + boolean delete(List stcds, String source); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdFhbtBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdFhbtBHService.java new file mode 100644 index 00000000..118de1c9 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdFhbtBHService.java @@ -0,0 +1,36 @@ +package com.yfd.platform.qgc_base.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.qgc_base.domain.SdFhbtBH; + +import java.util.List; + +/** + *

+ * 栖息地保护工程信息表 服务类 + *

+ */ +public interface ISdFhbtBHService extends IService { + + /** + * 分页查询 + */ + Page queryPageList(DataSourceRequest request); + + /** + * 新增 + */ + boolean add(SdFhbtBH entity, String source); + + /** + * 修改 + */ + boolean update(SdFhbtBH entity, String source); + + /** + * 删除 + */ + boolean delete(List stcds, String source); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdFpssBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdFpssBHService.java index f9960352..d3009d7f 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdFpssBHService.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdFpssBHService.java @@ -2,6 +2,8 @@ package com.yfd.platform.qgc_base.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.qgc_base.domain.SdFhbtBH; import com.yfd.platform.qgc_base.domain.SdFpssBH; import java.util.List; @@ -20,11 +22,15 @@ public interface ISdFpssBHService extends IService { Set getUserAuthorizedStationCodes(); - boolean add(SdFpssBH sdFpssBH); + boolean add(SdFpssBH sdFpssBH, String source); - boolean updateById(SdFpssBH sdFpssBH); + boolean updateById(SdFpssBH sdFpssBH, String source); boolean deleteById(String stcd, String sttp); SdFpssBH getDetail(String stcd, String sttp); + + Page queryPageList(DataSourceRequest request); + + boolean delete(List stcds, String source); } \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdOpinfoBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdOpinfoBHService.java new file mode 100644 index 00000000..cbd0ead2 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdOpinfoBHService.java @@ -0,0 +1,15 @@ +package com.yfd.platform.qgc_base.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.qgc_base.domain.SdOpinfoBH; + +import java.util.List; + +public interface ISdOpinfoBHService extends IService { + Page queryPageList(DataSourceRequest request); + boolean add(SdOpinfoBH entity, String source); + boolean update(SdOpinfoBH entity, String source); + boolean delete(List stcds, String source); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdOtteBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdOtteBHService.java new file mode 100644 index 00000000..09e162aa --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdOtteBHService.java @@ -0,0 +1,15 @@ +package com.yfd.platform.qgc_base.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.qgc_base.domain.SdOtteBH; + +import java.util.List; + +public interface ISdOtteBHService extends IService { + Page queryPageList(DataSourceRequest request); + boolean add(SdOtteBH entity, String source); + boolean update(SdOtteBH entity, String source); + boolean delete(List stcds, String source); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdOtweBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdOtweBHService.java new file mode 100644 index 00000000..6009911c --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdOtweBHService.java @@ -0,0 +1,15 @@ +package com.yfd.platform.qgc_base.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.qgc_base.domain.SdOtweBH; + +import java.util.List; + +public interface ISdOtweBHService extends IService { + Page queryPageList(DataSourceRequest request); + boolean add(SdOtweBH entity, String source); + boolean update(SdOtweBH entity, String source); + boolean delete(List stcds, String source); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdSonarBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdSonarBHService.java new file mode 100644 index 00000000..4ebbe192 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdSonarBHService.java @@ -0,0 +1,15 @@ +package com.yfd.platform.qgc_base.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.qgc_base.domain.SdSonarBH; + +import java.util.List; + +public interface ISdSonarBHService extends IService { + Page queryPageList(DataSourceRequest request); + boolean add(SdSonarBH entity, String source); + boolean update(SdSonarBH entity, String source); + boolean delete(List stcds, String source); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdTeBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdTeBHService.java new file mode 100644 index 00000000..32beac3c --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdTeBHService.java @@ -0,0 +1,15 @@ +package com.yfd.platform.qgc_base.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.qgc_base.domain.SdTeBH; + +import java.util.List; + +public interface ISdTeBHService extends IService { + Page queryPageList(DataSourceRequest request); + boolean add(SdTeBH entity, String source); + boolean update(SdTeBH entity, String source); + boolean delete(List stcds, String source); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdVaBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdVaBHService.java new file mode 100644 index 00000000..334768f5 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdVaBHService.java @@ -0,0 +1,15 @@ +package com.yfd.platform.qgc_base.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.qgc_base.domain.SdVaBH; + +import java.util.List; + +public interface ISdVaBHService extends IService { + Page queryPageList(DataSourceRequest request); + boolean add(SdVaBH entity, String source); + boolean update(SdVaBH entity, String source); + boolean delete(List stcds, String source); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdVdinfoBService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdVdinfoBService.java new file mode 100644 index 00000000..10513b62 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdVdinfoBService.java @@ -0,0 +1,15 @@ +package com.yfd.platform.qgc_base.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.qgc_base.domain.SdVdinfoB; + +import java.util.List; + +public interface ISdVdinfoBService extends IService { + Page queryPageList(DataSourceRequest request); + boolean add(SdVdinfoB entity, String source); + boolean update(SdVdinfoB entity, String source); + boolean delete(List stcds, String source); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdVpBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdVpBHService.java new file mode 100644 index 00000000..b0f81587 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdVpBHService.java @@ -0,0 +1,15 @@ +package com.yfd.platform.qgc_base.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.qgc_base.domain.SdVpBH; + +import java.util.List; + +public interface ISdVpBHService extends IService { + Page queryPageList(DataSourceRequest request); + boolean add(SdVpBH entity, String source); + boolean update(SdVpBH entity, String source); + boolean delete(List stcds, String source); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdWeBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdWeBHService.java new file mode 100644 index 00000000..252776cd --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdWeBHService.java @@ -0,0 +1,15 @@ +package com.yfd.platform.qgc_base.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.qgc_base.domain.SdWeBH; + +import java.util.List; + +public interface ISdWeBHService extends IService { + Page queryPageList(DataSourceRequest request); + boolean add(SdWeBH entity, String source); + boolean update(SdWeBH entity, String source); + boolean delete(List stcds, String source); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdWqBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdWqBHService.java new file mode 100644 index 00000000..4576c188 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdWqBHService.java @@ -0,0 +1,15 @@ +package com.yfd.platform.qgc_base.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.qgc_base.domain.SdWqBH; + +import java.util.List; + +public interface ISdWqBHService extends IService { + Page queryPageList(DataSourceRequest request); + boolean add(SdWqBH entity, String source); + boolean update(SdWqBH entity, String source); + boolean delete(List stcds, String source); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdWtBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdWtBHService.java new file mode 100644 index 00000000..6d4fe773 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdWtBHService.java @@ -0,0 +1,15 @@ +package com.yfd.platform.qgc_base.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.common.DataSourceRequest; +import com.yfd.platform.qgc_base.domain.SdWtBH; + +import java.util.List; + +public interface ISdWtBHService extends IService { + Page queryPageList(DataSourceRequest request); + boolean add(SdWtBH entity, String source); + boolean update(SdWtBH entity, String source); + boolean delete(List stcds, String source); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/MsEiaApprovalBServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/MsEiaApprovalBServiceImpl.java new file mode 100644 index 00000000..f2df0ee4 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/MsEiaApprovalBServiceImpl.java @@ -0,0 +1,76 @@ +package com.yfd.platform.qgc_base.service.impl; + +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.qgc_base.domain.MsEiaApprovalB; +import com.yfd.platform.qgc_base.mapper.MsEiaApprovalBMapper; +import com.yfd.platform.qgc_base.service.IMsEiaApprovalBService; +import com.yfd.platform.qgc_base.service.IMsOperationLogService; +import com.yfd.platform.utils.DataSourceRequestUtil; +import com.yfd.platform.utils.SecurityUtils; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; + +/** + * 生态环保批复文件 Service 实现类 + */ +@Service +public class MsEiaApprovalBServiceImpl extends ServiceImpl implements IMsEiaApprovalBService { + + private static final String TABLE_NAME = "MS_EIAAPPROVAL_B"; + + @Resource + private IMsOperationLogService msOperationLogService; + + @Override + public Page queryPageList(DataSourceRequest request) { + return DataSourceRequestUtil.executeQuery(request, MsEiaApprovalB.class, this); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean add(MsEiaApprovalB entity, String source) { + boolean result = this.save(entity); + if (result) { + msOperationLogService.recordAddDetailLog(TABLE_NAME, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean update(MsEiaApprovalB entity, String source) { + MsEiaApprovalB before = this.getById(entity.getId()); + boolean result = this.updateById(entity); + if (result && before != null) { + msOperationLogService.recordModifyDetailLog(TABLE_NAME, before, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delete(List ids, String source) { + if (ids == null || ids.isEmpty()) return false; + int count = 0; + for (String id : ids) { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(MsEiaApprovalB::getId, id); + wrapper.set(MsEiaApprovalB::getIsDeleted, 1); + wrapper.set(MsEiaApprovalB::getDeleteUser, SecurityUtils.getCurrentUsername()); + wrapper.set(MsEiaApprovalB::getDeleteTime, new Date()); + if (this.update(wrapper)) { + MsEiaApprovalB entity = this.getById(id); + msOperationLogService.recordDeleteDetailLog(TABLE_NAME, entity, source); + count++; + } + } + return count > 0; + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/MsOperationLogServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/MsOperationLogServiceImpl.java index a915ff1d..9067a8dd 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/MsOperationLogServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/MsOperationLogServiceImpl.java @@ -379,16 +379,128 @@ public class MsOperationLogServiceImpl implements IMsOperationLogService { } private MsOperationLog buildMainLog(String recordId,String remark, String source) { + return buildMainLog(ENG_TABLE_NAME, recordId, remark, source); + } + + private MsOperationLog buildMainLog(String tableName, String recordId, String remark, String source) { MsOperationLog log = new MsOperationLog(); log.setOperator(resolveOperator()); log.setOperateTime(new Date()); - log.setTableName(ENG_TABLE_NAME); + log.setTableName(tableName); log.setRecordId(recordId); log.setSource(StrUtil.trimToNull(source)); log.setRemark(remark); return log; } + @Override + public void recordOperationLog(String tableName, String recordId, String operation, String source) { + MsOperationLog log = buildMainLog(tableName, recordId, operation, source); + msOperationLogMapper.insert(log); + } + + @Override + public void recordModifyDetailLog(String tableName, T before, T after, String source) { + if (before == null || after == null) { + return; + } + String recordId = getStcd(before); + MsOperationLog mainLog = buildMainLog(tableName, recordId, "修改", source); + msOperationLogMapper.insert(mainLog); + + List details = new ArrayList<>(); + Set processedColumns = new HashSet<>(); + Class entityClass = before.getClass(); + + for (Field field : entityClass.getDeclaredFields()) { + if (shouldSkipField(field)) { + continue; + } + field.setAccessible(true); + String columnName = resolveColumnName(field); + if (processedColumns.contains(columnName)) { + continue; + } + Object oldValue = getFieldValue(field, before); + Object newValue = getFieldValue(field, after); + + //如果新值是null,则不记录 + if(newValue == null){ + continue; + } + if (equalsValue(oldValue, newValue)) { + continue; + } + details.add(buildGenericDetail(mainLog.getId(), tableName, recordId, columnName, + oldValue, newValue, "修改字段值")); + processedColumns.add(columnName); + } + batchInsertDetails(details); + } + + @Override + public void recordAddDetailLog(String tableName, T entity, String source) { + if (entity == null) { + return; + } + String recordId = getStcd(entity); + MsOperationLog mainLog = buildMainLog(tableName, recordId, "新增", source); + msOperationLogMapper.insert(mainLog); + + List details = new ArrayList<>(); + Set processedColumns = new HashSet<>(); + Class entityClass = entity.getClass(); + + for (Field field : entityClass.getDeclaredFields()) { + if (shouldSkipField(field)) { + continue; + } + field.setAccessible(true); + String columnName = resolveColumnName(field); + if (processedColumns.contains(columnName)) { + continue; + } + Object newValue = getFieldValue(field, entity); + details.add(buildGenericDetail(mainLog.getId(), tableName, recordId, columnName, + null, newValue, "新增字段值")); + processedColumns.add(columnName); + } + batchInsertDetails(details); + } + + @Override + public void recordDeleteDetailLog(String tableName, T entity, String source) { + if (entity == null) { + return; + } + String recordId = getStcd(entity); + MsOperationLog mainLog = buildMainLog(tableName, recordId, "删除", source); + msOperationLogMapper.insert(mainLog); + + List details = new ArrayList<>(); + Set processedColumns = new HashSet<>(); + Class entityClass = entity.getClass(); + + for (Field field : entityClass.getDeclaredFields()) { + if (shouldSkipField(field)) { + continue; + } + field.setAccessible(true); + String columnName = resolveColumnName(field); + if (processedColumns.contains(columnName)) { + continue; + } + Object oldValue = getFieldValue(field, entity); +// if (oldValue == null) { +// continue; +// } + details.add(buildGenericDetail(mainLog.getId(), tableName, recordId, columnName, + oldValue, null, "删除字段值")); + processedColumns.add(columnName); + } + batchInsertDetails(details); + } + private MsOperationLogDetail buildDetail(String mainId, String stationCode, String fieldCode, @@ -412,9 +524,41 @@ public class MsOperationLogServiceImpl implements IMsOperationLogService { } private void batchInsertDetails(List details) { + if (details == null || details.isEmpty()) { + return; + } msOperationLogDetailMapper.insert(details); } + /** + * 通过反射获取实体的 stcd(记录ID) + */ + private String getStcd(T entity) { + try { + return (String) entity.getClass().getMethod("getStcd").invoke(entity); + } catch (Exception e) { + return null; + } + } + + /** + * 构建通用的操作日志详情(不含字典名称解析) + */ + private MsOperationLogDetail buildGenericDetail(String mainId, String tableName, + String stationCode, String fieldCode, + Object oldValue, Object newValue, String remark) { + MsOperationLogDetail detail = new MsOperationLogDetail(); + detail.setMainId(mainId); + detail.setTableName(tableName); + detail.setStationCode(stationCode); + detail.setFieldCode(fieldCode); + detail.setFieldMeaning(fieldCode); + detail.setOldValueCode(formatValue(oldValue)); + detail.setNewValueCode(formatValue(newValue)); + detail.setRemark(remark); + return detail; + } + private boolean shouldSkipField(Field field) { if (Modifier.isStatic(field.getModifiers())) { return true; diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/MsWarnRuleBServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/MsWarnRuleBServiceImpl.java new file mode 100644 index 00000000..08d10876 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/MsWarnRuleBServiceImpl.java @@ -0,0 +1,76 @@ +package com.yfd.platform.qgc_base.service.impl; + +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.qgc_base.domain.MsWarnRuleB; +import com.yfd.platform.qgc_base.mapper.MsWarnRuleBMapper; +import com.yfd.platform.qgc_base.service.IMsOperationLogService; +import com.yfd.platform.qgc_base.service.IMsWarnRuleBService; +import com.yfd.platform.utils.DataSourceRequestUtil; +import com.yfd.platform.utils.SecurityUtils; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; + +/** + * 预警规则配置 Service 实现类 + */ +@Service +public class MsWarnRuleBServiceImpl extends ServiceImpl implements IMsWarnRuleBService { + + private static final String TABLE_NAME = "MS_WARN_RULE_B"; + + @Resource + private IMsOperationLogService msOperationLogService; + + @Override + public Page queryPageList(DataSourceRequest request) { + return DataSourceRequestUtil.executeQuery(request, MsWarnRuleB.class, this); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean add(MsWarnRuleB entity, String source) { + boolean result = this.save(entity); + if (result) { + msOperationLogService.recordAddDetailLog(TABLE_NAME, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean update(MsWarnRuleB entity, String source) { + MsWarnRuleB before = this.getById(entity.getId()); + boolean result = this.updateById(entity); + if (result && before != null) { + msOperationLogService.recordModifyDetailLog(TABLE_NAME, before, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delete(List ids, String source) { + if (ids == null || ids.isEmpty()) return false; + int count = 0; + for (String id : ids) { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(MsWarnRuleB::getId, id); + wrapper.set(MsWarnRuleB::getIsDeleted, 1); + wrapper.set(MsWarnRuleB::getDeleteUser, SecurityUtils.getCurrentUsername()); + wrapper.set(MsWarnRuleB::getDeleteTime, new Date()); + if (this.update(wrapper)) { + MsWarnRuleB entity = this.getById(id); + msOperationLogService.recordDeleteDetailLog(TABLE_NAME, entity, source); + count++; + } + } + return count > 0; + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdAiboxBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdAiboxBHServiceImpl.java new file mode 100644 index 00000000..37e13342 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdAiboxBHServiceImpl.java @@ -0,0 +1,108 @@ +package com.yfd.platform.qgc_base.service.impl; + +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.qgc_base.domain.SdAiboxBH; +import com.yfd.platform.qgc_base.mapper.SdAiboxBHMapper; +import com.yfd.platform.qgc_base.service.IMsOperationLogService; +import com.yfd.platform.qgc_base.service.ISdAiboxBHService; +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 jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Service +public class SdAiboxBHServiceImpl extends ServiceImpl implements ISdAiboxBHService { + + private static final String TABLE_NAME = "SD_AIBOX_B_H"; + + @Resource + private IMsOperationLogService msOperationLogService; + + @Resource + private DictCodeToNameConverter dictCodeToNameConverter; + + /** + * 代码转名称元数据配置列表(静态初始化) + *

+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList, + * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList) + * 即可自动将 code 字段转为对应的 name 字段。 + *

+ * + *
+     * 使用示例:
+     * // 在查询方法末尾调用:
+     * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+     * 
+ */ + private static final List CODE_TO_NAME_META_LIST = new ArrayList<>(); + + static { + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("mway").modifyProperty("mwayName").dictType("STATIC").dictSource("MWAY").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build()); +// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rstcd").modifyProperty("ennm").dictType("DYNAMIC").dictSource("SD_ENGINFO_B_H").codeColumn("STCD").nameColumn("ENNM").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rvcd").modifyProperty("rvnm").dictType("DYNAMIC").dictSource("V_SD_RVCD_DIC_TREE").codeColumn("RVCD").nameColumn("RVNM").build()); + + } + + @Override + public Page queryPageList(DataSourceRequest request) { + Page sdAiboxBHPage = DataSourceRequestUtil.executeQuery(request, SdAiboxBH.class, this); + dictCodeToNameConverter.convertCodeToName(sdAiboxBHPage, CODE_TO_NAME_META_LIST); + return sdAiboxBHPage; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean add(SdAiboxBH entity, String source) { + boolean result = this.save(entity); + if (result) { + msOperationLogService.recordAddDetailLog(TABLE_NAME, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean update(SdAiboxBH entity, String source) { + SdAiboxBH before = this.getById(entity.getStcd()); + boolean result = this.updateById(entity); + if (result && before != null) { + msOperationLogService.recordModifyDetailLog(TABLE_NAME, before, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delete(List stcds, String source) { + if (stcds == null || stcds.isEmpty()) return false; + int count = 0; + for (String stcd : stcds) { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(SdAiboxBH::getStcd, stcd); + wrapper.set(SdAiboxBH::getIsDeleted, 1); + wrapper.set(SdAiboxBH::getDeleteUser, SecurityUtils.getCurrentUsername()); + wrapper.set(SdAiboxBH::getDeleteTime, new Date()); + if (this.update(wrapper)) { + SdAiboxBH entity = this.getById(stcd); + msOperationLogService.recordDeleteDetailLog(TABLE_NAME, entity, source); count++; + } + } + return count > 0; + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdAimonitorBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdAimonitorBHServiceImpl.java new file mode 100644 index 00000000..1d31a321 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdAimonitorBHServiceImpl.java @@ -0,0 +1,97 @@ +package com.yfd.platform.qgc_base.service.impl; + +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.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 jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * AI智能监测装置 Service 实现类 + */ +@Service +public class SdAimonitorBHServiceImpl extends ServiceImpl implements ISdAimonitorBHService { + + private static final String TABLE_NAME = "SD_AIMONITOR_B_H"; + + @Resource + private IMsOperationLogService msOperationLogService; + + @Resource + private DictCodeToNameConverter dictCodeToNameConverter; + + private static final List CODE_TO_NAME_META_LIST = new ArrayList<>(); + + static { + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("mway").modifyProperty("mwayName").dictType("STATIC").dictSource("MWAY").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rstcd").modifyProperty("ennm").dictType("DYNAMIC").dictSource("SD_ENGINFO_B_H").codeColumn("STCD").nameColumn("ENNM").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rvcd").modifyProperty("rvnm").dictType("DYNAMIC").dictSource("V_SD_RVCD_DIC_TREE").codeColumn("RVCD").nameColumn("RVNM").build()); + + } + + @Override + public Page queryPageList(DataSourceRequest request) { + Page page = DataSourceRequestUtil.executeQuery(request, SdAimonitorBH.class, this); + dictCodeToNameConverter.convertCodeToName(page, CODE_TO_NAME_META_LIST); + return page; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean add(SdAimonitorBH entity, String source) { + boolean result = this.save(entity); + if (result) { + msOperationLogService.recordAddDetailLog(TABLE_NAME, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean update(SdAimonitorBH entity, String source) { + SdAimonitorBH before = this.getById(entity.getStcd()); + boolean result = this.updateById(entity); + if (result && before != null) { + msOperationLogService.recordModifyDetailLog(TABLE_NAME, before, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delete(List stcds, String source) { + if (stcds == null || stcds.isEmpty()) return false; + int count = 0; + for (String stcd : stcds) { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(SdAimonitorBH::getStcd, stcd); + wrapper.set(SdAimonitorBH::getIsDeleted, 1); + wrapper.set(SdAimonitorBH::getDeleteUser, SecurityUtils.getCurrentUsername()); + wrapper.set(SdAimonitorBH::getDeleteTime, new Date()); + if (this.update(wrapper)) { + SdAimonitorBH entity = this.getById(stcd); + msOperationLogService.recordDeleteDetailLog(TABLE_NAME, entity, source); + count++; + } + } + return count > 0; + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdArtsgBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdArtsgBHServiceImpl.java new file mode 100644 index 00000000..9c25ab10 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdArtsgBHServiceImpl.java @@ -0,0 +1,98 @@ +package com.yfd.platform.qgc_base.service.impl; + +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.qgc_base.domain.SdArtsgBH; +import com.yfd.platform.qgc_base.mapper.SdArtsgBHMapper; +import com.yfd.platform.qgc_base.service.IMsOperationLogService; +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 jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class SdArtsgBHServiceImpl extends ServiceImpl implements ISdArtsgBHService { + + private static final String TABLE_NAME = "SD_ARTSG_B_H"; + + @Resource + private DictCodeToNameConverter dictCodeToNameConverter; + + /** + * 代码转名称元数据配置列表(静态初始化) + *

+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList, + * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList) + * 即可自动将 code 字段转为对应的 name 字段。 + *

+ * + *
+     * 使用示例:
+     * // 在查询方法末尾调用:
+     * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+     * 
+ */ + private static final List CODE_TO_NAME_META_LIST = new ArrayList<>(); + + static { + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build()); +// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rstcd").modifyProperty("ennm").dictType("DYNAMIC").dictSource("SD_ENGINFO_B_H").codeColumn("STCD").nameColumn("ENNM").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rvcd").modifyProperty("rvnm").dictType("DYNAMIC").dictSource("V_SD_RVCD_DIC_TREE").codeColumn("RVCD").nameColumn("RVNM").build()); + } + + @Resource + private IMsOperationLogService msOperationLogService; + + @Override + public Page queryPageList(DataSourceRequest request) { + Page sdArtsgBHPage = DataSourceRequestUtil.executeQuery(request, SdArtsgBH.class, this); + dictCodeToNameConverter.convertCodeToName(sdArtsgBHPage, CODE_TO_NAME_META_LIST); + return sdArtsgBHPage; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean add(SdArtsgBH entity, String source) { + boolean result = this.save(entity); + if (result) { + msOperationLogService.recordAddDetailLog(TABLE_NAME, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean update(SdArtsgBH entity, String source) { + SdArtsgBH before = this.getById(entity.getStcd()); + boolean result = this.updateById(entity); + if (result && before != null) { + msOperationLogService.recordModifyDetailLog(TABLE_NAME, before, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delete(List stcds, String source) { + if (stcds == null || stcds.isEmpty()) return false; + int count = 0; + for (String stcd : stcds) { + if (this.removeById(stcd)) { + SdArtsgBH entity = this.getById(stcd); + msOperationLogService.recordDeleteDetailLog(TABLE_NAME, entity, source); count++; + } + } + return count > 0; + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdDwBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdDwBHServiceImpl.java new file mode 100644 index 00000000..04109a2f --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdDwBHServiceImpl.java @@ -0,0 +1,105 @@ +package com.yfd.platform.qgc_base.service.impl; + +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.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 jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Service +public class SdDwBHServiceImpl extends ServiceImpl implements ISdDwBHService { + + private static final String TABLE_NAME = "SD_DW_B_H"; + + @Resource + private IMsOperationLogService msOperationLogService; + + @Resource + private DictCodeToNameConverter dictCodeToNameConverter; + + /** + * 代码转名称元数据配置列表(静态初始化) + *

+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList, + * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList) + * 即可自动将 code 字段转为对应的 name 字段。 + *

+ * + *
+     * 使用示例:
+     * // 在查询方法末尾调用:
+     * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+     * 
+ */ + private static final List CODE_TO_NAME_META_LIST = new ArrayList<>(); + + static { + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build()); +// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rstcd").modifyProperty("ennm").dictType("DYNAMIC").dictSource("SD_ENGINFO_B_H").codeColumn("STCD").nameColumn("ENNM").filter("NVL(IS_DELETED, 0) = 0 ").build()); + } + + @Override + public Page queryPageList(DataSourceRequest request) { + Page sdDwBHPage = DataSourceRequestUtil.executeQuery(request, SdDwBH.class, this); + dictCodeToNameConverter.convertCodeToName(sdDwBHPage, CODE_TO_NAME_META_LIST); + return sdDwBHPage; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean add(SdDwBH entity, String source) { + boolean result = this.save(entity); + if (result) { + msOperationLogService.recordAddDetailLog(TABLE_NAME, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean update(SdDwBH entity, String source) { + SdDwBH before = this.getById(entity.getStcd()); + boolean result = this.updateById(entity); + if (result && before != null) { + msOperationLogService.recordModifyDetailLog(TABLE_NAME, before, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delete(List stcds, String source) { + if (stcds == null || stcds.isEmpty()) return false; + int count = 0; + for (String stcd : stcds) { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(SdDwBH::getStcd, stcd); + wrapper.set(SdDwBH::getIsDeleted, 1); + wrapper.set(SdDwBH::getDeleteUser, SecurityUtils.getCurrentUsername()); + wrapper.set(SdDwBH::getDeleteTime, new Date()); + if (this.update(wrapper)) { + SdDwBH entity = this.getById(stcd); + msOperationLogService.recordDeleteDetailLog(TABLE_NAME, entity, source); count++; + } + } + return count > 0; + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdEqBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdEqBHServiceImpl.java new file mode 100644 index 00000000..bda41c3b --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdEqBHServiceImpl.java @@ -0,0 +1,105 @@ +package com.yfd.platform.qgc_base.service.impl; + +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.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 jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Service +public class SdEqBHServiceImpl extends ServiceImpl implements ISdEqBHService { + + private static final String TABLE_NAME = "SD_EQ_B_H"; + + @Resource + private IMsOperationLogService msOperationLogService; + + @Resource + private DictCodeToNameConverter dictCodeToNameConverter; + + /** + * 代码转名称元数据配置列表(静态初始化) + *

+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList, + * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList) + * 即可自动将 code 字段转为对应的 name 字段。 + *

+ * + *
+     * 使用示例:
+     * // 在查询方法末尾调用:
+     * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+     * 
+ */ + private static final List CODE_TO_NAME_META_LIST = new ArrayList<>(); + + static { + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build()); +// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rstcd").modifyProperty("ennm").dictType("DYNAMIC").dictSource("SD_ENGINFO_B_H").codeColumn("STCD").nameColumn("ENNM").filter("NVL(IS_DELETED, 0) = 0 ").build()); + } + + @Override + public Page queryPageList(DataSourceRequest request) { + Page sdEqBHPage = DataSourceRequestUtil.executeQuery(request, SdEqBH.class, this); + dictCodeToNameConverter.convertCodeToName(sdEqBHPage, CODE_TO_NAME_META_LIST); + return sdEqBHPage; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean add(SdEqBH entity, String source) { + boolean result = this.save(entity); + if (result) { + msOperationLogService.recordAddDetailLog(TABLE_NAME, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean update(SdEqBH entity, String source) { + SdEqBH before = this.getById(entity.getStcd()); + boolean result = this.updateById(entity); + if (result && before != null) { + msOperationLogService.recordModifyDetailLog(TABLE_NAME, before, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delete(List stcds, String source) { + if (stcds == null || stcds.isEmpty()) return false; + int count = 0; + for (String stcd : stcds) { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(SdEqBH::getStcd, stcd); + wrapper.set(SdEqBH::getIsDeleted, 1); + wrapper.set(SdEqBH::getDeleteUser, SecurityUtils.getCurrentUsername()); + wrapper.set(SdEqBH::getDeleteTime, new Date()); + if (this.update(wrapper)) { + SdEqBH entity = this.getById(stcd); + msOperationLogService.recordDeleteDetailLog(TABLE_NAME, entity, source); count++; + } + } + return count > 0; + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFbrdBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFbrdBHServiceImpl.java new file mode 100644 index 00000000..36f8caa5 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFbrdBHServiceImpl.java @@ -0,0 +1,98 @@ +package com.yfd.platform.qgc_base.service.impl; + +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.qgc_base.domain.SdFbrdBH; +import com.yfd.platform.qgc_base.mapper.SdFbrdBHMapper; +import com.yfd.platform.qgc_base.service.IMsOperationLogService; +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 jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class SdFbrdBHServiceImpl extends ServiceImpl implements ISdFbrdBHService { + + private static final String TABLE_NAME = "SD_FBRD_B_H"; + + @Resource + private IMsOperationLogService msOperationLogService; + + @Resource + private DictCodeToNameConverter dictCodeToNameConverter; + + /** + * 代码转名称元数据配置列表(静态初始化) + *

+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList, + * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList) + * 即可自动将 code 字段转为对应的 name 字段。 + *

+ * + *
+     * 使用示例:
+     * // 在查询方法末尾调用:
+     * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+     * 
+ */ + private static final List CODE_TO_NAME_META_LIST = new ArrayList<>(); + + static { + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build()); +// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rstcd").modifyProperty("ennm").dictType("DYNAMIC").dictSource("SD_ENGINFO_B_H").codeColumn("STCD").nameColumn("ENNM").filter("NVL(IS_DELETED, 0) = 0 ").build()); + } + + @Override + public Page queryPageList(DataSourceRequest request) { + Page sdFbrdBHPage = DataSourceRequestUtil.executeQuery(request, SdFbrdBH.class, this); + dictCodeToNameConverter.convertCodeToName(sdFbrdBHPage, CODE_TO_NAME_META_LIST); + return sdFbrdBHPage; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean add(SdFbrdBH entity, String source) { + boolean result = this.save(entity); + if (result) { + msOperationLogService.recordAddDetailLog(TABLE_NAME, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean update(SdFbrdBH entity, String source) { + SdFbrdBH before = this.getById(entity.getStcd()); + boolean result = this.updateById(entity); + if (result && before != null) { + msOperationLogService.recordModifyDetailLog(TABLE_NAME, before, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delete(List stcds, String source) { + if (stcds == null || stcds.isEmpty()) return false; + int count = 0; + for (String stcd : stcds) { + if (this.removeById(stcd)) { + SdFbrdBH entity = this.getById(stcd); + msOperationLogService.recordDeleteDetailLog(TABLE_NAME, entity, source); + count++; + } + } + return count > 0; + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFhbtBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFhbtBHServiceImpl.java new file mode 100644 index 00000000..c61dd69a --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFhbtBHServiceImpl.java @@ -0,0 +1,106 @@ +package com.yfd.platform.qgc_base.service.impl; + +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.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 jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Service +public class SdFhbtBHServiceImpl extends ServiceImpl implements ISdFhbtBHService { + + private static final String TABLE_NAME = "SD_FHBT_B_H"; + + @Resource + private IMsOperationLogService msOperationLogService; + + @Resource + private DictCodeToNameConverter dictCodeToNameConverter; + + /** + * 代码转名称元数据配置列表(静态初始化) + *

+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList, + * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList) + * 即可自动将 code 字段转为对应的 name 字段。 + *

+ * + *
+     * 使用示例:
+     * // 在查询方法末尾调用:
+     * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+     * 
+ */ + private static final List CODE_TO_NAME_META_LIST = new ArrayList<>(); + + static { + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build()); +// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build()); +// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build()); +// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rstcd").modifyProperty("ennm").dictType("DYNAMIC").dictSource("SD_ENGINFO_B_H").codeColumn("STCD").nameColumn("ENNM").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rvcd").modifyProperty("rvnm").dictType("DYNAMIC").dictSource("V_SD_RVCD_DIC_TREE").codeColumn("RVCD").nameColumn("RVNM").build()); + } + + @Override + public Page queryPageList(DataSourceRequest request) { + Page sdFhbtBHPage = DataSourceRequestUtil.executeQuery(request, SdFhbtBH.class, this); + dictCodeToNameConverter.convertCodeToName(sdFhbtBHPage, CODE_TO_NAME_META_LIST); + return sdFhbtBHPage; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean add(SdFhbtBH entity, String source) { + boolean result = this.save(entity); + if (result) { + msOperationLogService.recordAddDetailLog(TABLE_NAME, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean update(SdFhbtBH entity, String source) { + SdFhbtBH before = this.getById(entity.getStcd()); + boolean result = this.updateById(entity); + if (result && before != null) { + msOperationLogService.recordModifyDetailLog(TABLE_NAME, before, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delete(List stcds, String source) { + if (stcds == null || stcds.isEmpty()) return false; + int count = 0; + for (String stcd : stcds) { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(SdFhbtBH::getStcd, stcd); + wrapper.set(SdFhbtBH::getIsDeleted, 1); + wrapper.set(SdFhbtBH::getDeleteUser, SecurityUtils.getCurrentUsername()); + wrapper.set(SdFhbtBH::getDeleteTime, new Date()); + if (this.update(wrapper)) { + SdFhbtBH entity = this.getById(stcd); + msOperationLogService.recordDeleteDetailLog(TABLE_NAME, entity, source); count++; + } + } + return count > 0; + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFpssBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFpssBHServiceImpl.java index c85ffa59..99528a60 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFpssBHServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFpssBHServiceImpl.java @@ -1,30 +1,34 @@ package com.yfd.platform.qgc_base.service.impl; 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.qgc_data.domain.SysUserDataScope; -import com.yfd.platform.qgc_data.mapper.SysUserDataScopeMapper; +import com.yfd.platform.common.DataSourceRequest; import com.yfd.platform.qgc_base.domain.SdEngInfoBH; import com.yfd.platform.qgc_base.domain.SdFpssBH; import com.yfd.platform.qgc_base.mapper.SdEngInfoBHMapper; import com.yfd.platform.qgc_base.mapper.SdFpssBHMapper; +import com.yfd.platform.qgc_base.service.IMsOperationLogService; 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 jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; @Service public class SdFpssBHServiceImpl extends ServiceImpl implements ISdFpssBHService { + private static final String TABLE_NAME = "SD_FPSS_B_H"; @Resource private SysUserDataScopeMapper sysUserDataScopeMapper; @Resource @@ -33,6 +37,41 @@ public class SdFpssBHServiceImpl extends ServiceImpl i @Resource private IAdminAuthService adminAuthService; + @Resource + private DictCodeToNameConverter dictCodeToNameConverter; + + @Resource + private IMsOperationLogService msOperationLogService; + + /** + * 代码转名称元数据配置列表(静态初始化) + *

+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList, + * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList) + * 即可自动将 code 字段转为对应的 name 字段。 + *

+ * + *
+     * 使用示例:
+     * // 在查询方法末尾调用:
+     * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+     * 
+ */ + private static final List CODE_TO_NAME_META_LIST = new ArrayList<>(); + + static { + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build()); +// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rstcd").modifyProperty("ennm").dictType("DYNAMIC").dictSource("SD_ENGINFO_B_H").codeColumn("STCD").nameColumn("ENNM").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rvcd").modifyProperty("rvnm").dictType("DYNAMIC").dictSource("V_SD_RVCD_DIC_TREE").codeColumn("RVCD").nameColumn("RVNM").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("mway").modifyProperty("mwayName").dictType("STATIC").dictSource("MWAY").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("isUp").modifyProperty("isUpName").dictType("STATIC").dictSource("TY_SF").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("isDown").modifyProperty("isDownName").dictType("STATIC").dictSource("TY_SF").build()); + + } @Override public Page selectPage(String stcd, String sttp, String rstcd, Integer usfl, Page page) { @@ -173,16 +212,23 @@ public class SdFpssBHServiceImpl extends ServiceImpl i } @Override - public boolean add(SdFpssBH sdFpssBH) { - return save(sdFpssBH); + public boolean add(SdFpssBH entity, String source) { + boolean result = save(entity); + if (result) { +// msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "新增", source); + msOperationLogService.recordAddDetailLog(TABLE_NAME, entity, source); + } + return result; } @Override - public boolean updateById(SdFpssBH sdFpssBH) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(SdFpssBH::getStcd, sdFpssBH.getStcd()) - .eq(SdFpssBH::getSttp, sdFpssBH.getSttp()); - return update(sdFpssBH, wrapper); + public boolean updateById(SdFpssBH entity, String source) { + SdFpssBH before = this.getById(entity.getStcd()); + boolean result = this.updateById(entity); + if (result && before != null) { + msOperationLogService.recordModifyDetailLog(TABLE_NAME, before, entity, source); + } + return result; } @Override @@ -200,4 +246,29 @@ public class SdFpssBHServiceImpl extends ServiceImpl i .eq(SdFpssBH::getSttp, sttp); return getOne(wrapper); } + + @Override + public Page queryPageList(DataSourceRequest request) { + Page sdFpssBHPage = DataSourceRequestUtil.executeQuery(request, SdFpssBH.class, this); + dictCodeToNameConverter.convertCodeToName(sdFpssBHPage, CODE_TO_NAME_META_LIST); + return sdFpssBHPage; + } + + @Override + public boolean delete(List stcds, String source) { + if (stcds == null || stcds.isEmpty()) return false; + int count = 0; + for (String stcd : stcds) { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(SdFpssBH::getStcd, stcd); + wrapper.set(SdFpssBH::getIsDeleted, 1); + wrapper.set(SdFpssBH::getDeleteUser, SecurityUtils.getCurrentUsername()); + wrapper.set(SdFpssBH::getDeleteTime, new Date()); + if (this.update(wrapper)) { + SdFpssBH entity = this.getById(stcd); + msOperationLogService.recordDeleteDetailLog(TABLE_NAME, entity, source); count++; + } + } + return count > 0; + } } diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOpinfoBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOpinfoBHServiceImpl.java new file mode 100644 index 00000000..c6eb7fc2 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOpinfoBHServiceImpl.java @@ -0,0 +1,107 @@ +package com.yfd.platform.qgc_base.service.impl; + +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.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 jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Service +public class SdOpinfoBHServiceImpl extends ServiceImpl implements ISdOpinfoBHService { + + private static final String TABLE_NAME = "SD_OPINFO_B_H"; + + @Resource + private IMsOperationLogService msOperationLogService; + + @Resource + private DictCodeToNameConverter dictCodeToNameConverter; + + /** + * 代码转名称元数据配置列表(静态初始化) + *

+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList, + * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList) + * 即可自动将 code 字段转为对应的 name 字段。 + *

+ * + *
+     * 使用示例:
+     * // 在查询方法末尾调用:
+     * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+     * 
+ */ + private static final List CODE_TO_NAME_META_LIST = new ArrayList<>(); + + static { + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build()); +// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rstcd").modifyProperty("ennm").dictType("DYNAMIC").dictSource("SD_ENGINFO_B_H").codeColumn("STCD").nameColumn("ENNM").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rvcd").modifyProperty("rvnm").dictType("DYNAMIC").dictSource("V_SD_RVCD_DIC_TREE").codeColumn("RVCD").nameColumn("RVNM").build()); + } + + @Override + public Page queryPageList(DataSourceRequest request) { + Page sdOpinfoBHPage = DataSourceRequestUtil.executeQuery(request, SdOpinfoBH.class, this); + dictCodeToNameConverter.convertCodeToName(sdOpinfoBHPage, CODE_TO_NAME_META_LIST); + return sdOpinfoBHPage; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean add(SdOpinfoBH entity, String source) { + boolean result = this.save(entity); + if (result) { + msOperationLogService.recordAddDetailLog(TABLE_NAME, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean update(SdOpinfoBH entity, String source) { + SdOpinfoBH before = this.getById(entity.getStcd()); + boolean result = this.updateById(entity); + if (result && before != null) { + msOperationLogService.recordModifyDetailLog(TABLE_NAME, before, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delete(List stcds, String source) { + if (stcds == null || stcds.isEmpty()) return false; + int count = 0; + for (String stcd : stcds) { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(SdOpinfoBH::getStcd, stcd); + wrapper.set(SdOpinfoBH::getIsDeleted, 1); + wrapper.set(SdOpinfoBH::getDeleteUser, SecurityUtils.getCurrentUsername()); + wrapper.set(SdOpinfoBH::getDeleteTime, new Date()); + if (this.update(wrapper)) { + SdOpinfoBH entity = this.getById(stcd); + msOperationLogService.recordDeleteDetailLog(TABLE_NAME, entity, source); + count++; + } + } + return count > 0; + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOtteBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOtteBHServiceImpl.java new file mode 100644 index 00000000..bca1e8ea --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOtteBHServiceImpl.java @@ -0,0 +1,100 @@ +package com.yfd.platform.qgc_base.service.impl; + +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.qgc_base.domain.SdOtteBH; +import com.yfd.platform.qgc_base.mapper.SdOtteBHMapper; +import com.yfd.platform.qgc_base.service.IMsOperationLogService; +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 jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class SdOtteBHServiceImpl extends ServiceImpl implements ISdOtteBHService { + + private static final String TABLE_NAME = "SD_OTTE_B_H"; + + @Resource + private IMsOperationLogService msOperationLogService; + + @Resource + private DictCodeToNameConverter dictCodeToNameConverter; + + /** + * 代码转名称元数据配置列表(静态初始化) + *

+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList, + * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList) + * 即可自动将 code 字段转为对应的 name 字段。 + *

+ * + *
+     * 使用示例:
+     * // 在查询方法末尾调用:
+     * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+     * 
+ */ + private static final List CODE_TO_NAME_META_LIST = new ArrayList<>(); + + static { + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build()); +// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rstcd").modifyProperty("ennm").dictType("DYNAMIC").dictSource("SD_ENGINFO_B_H").codeColumn("STCD").nameColumn("ENNM").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rvcd").modifyProperty("rvnm").dictType("DYNAMIC").dictSource("V_SD_RVCD_DIC_TREE").codeColumn("RVCD").nameColumn("RVNM").build()); + + } + + @Override + public Page queryPageList(DataSourceRequest request) { + Page sdOtteBHPage = DataSourceRequestUtil.executeQuery(request, SdOtteBH.class, this); + dictCodeToNameConverter.convertCodeToName(sdOtteBHPage, CODE_TO_NAME_META_LIST); + return sdOtteBHPage; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean add(SdOtteBH entity, String source) { + boolean result = this.save(entity); + if (result) { + msOperationLogService.recordAddDetailLog(TABLE_NAME, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean update(SdOtteBH entity, String source) { + SdOtteBH before = this.getById(entity.getStcd()); + boolean result = this.updateById(entity); + if (result && before != null) { + msOperationLogService.recordModifyDetailLog(TABLE_NAME, before, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delete(List stcds, String source) { + if (stcds == null || stcds.isEmpty()) return false; + int count = 0; + for (String stcd : stcds) { + if (this.removeById(stcd)) { + SdOtteBH entity = this.getById(stcd); + msOperationLogService.recordDeleteDetailLog(TABLE_NAME, entity, source); + count++; + } + } + return count > 0; + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOtweBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOtweBHServiceImpl.java new file mode 100644 index 00000000..4a3a4516 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOtweBHServiceImpl.java @@ -0,0 +1,99 @@ +package com.yfd.platform.qgc_base.service.impl; + +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.qgc_base.domain.SdOtweBH; +import com.yfd.platform.qgc_base.mapper.SdOtweBHMapper; +import com.yfd.platform.qgc_base.service.IMsOperationLogService; +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 jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class SdOtweBHServiceImpl extends ServiceImpl implements ISdOtweBHService { + + private static final String TABLE_NAME = "SD_OTWE_B_H"; + + @Resource + private IMsOperationLogService msOperationLogService; + @Resource + private DictCodeToNameConverter dictCodeToNameConverter; + + /** + * 代码转名称元数据配置列表(静态初始化) + *

+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList, + * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList) + * 即可自动将 code 字段转为对应的 name 字段。 + *

+ * + *
+     * 使用示例:
+     * // 在查询方法末尾调用:
+     * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+     * 
+ */ + private static final List CODE_TO_NAME_META_LIST = new ArrayList<>(); + + static { + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build()); +// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rstcd").modifyProperty("ennm").dictType("DYNAMIC").dictSource("SD_ENGINFO_B_H").codeColumn("STCD").nameColumn("ENNM").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rvcd").modifyProperty("rvnm").dictType("DYNAMIC").dictSource("V_SD_RVCD_DIC_TREE").codeColumn("RVCD").nameColumn("RVNM").build()); + + } + + @Override + public Page queryPageList(DataSourceRequest request) { + Page sdOtweBHPage = DataSourceRequestUtil.executeQuery(request, SdOtweBH.class, this); + dictCodeToNameConverter.convertCodeToName(sdOtweBHPage, CODE_TO_NAME_META_LIST); + return sdOtweBHPage; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean add(SdOtweBH entity, String source) { + boolean result = this.save(entity); + if (result) { + msOperationLogService.recordAddDetailLog(TABLE_NAME, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean update(SdOtweBH entity, String source) { + SdOtweBH before = this.getById(entity.getStcd()); + boolean result = this.updateById(entity); + if (result && before != null) { + msOperationLogService.recordModifyDetailLog(TABLE_NAME, before, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delete(List stcds, String source) { + if (stcds == null || stcds.isEmpty()) return false; + int count = 0; + for (String stcd : stcds) { + if (this.removeById(stcd)) { + SdOtweBH entity = this.getById(stcd); + msOperationLogService.recordDeleteDetailLog(TABLE_NAME, entity, source); + count++; + } + } + return count > 0; + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdSonarBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdSonarBHServiceImpl.java new file mode 100644 index 00000000..4b48a182 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdSonarBHServiceImpl.java @@ -0,0 +1,108 @@ +package com.yfd.platform.qgc_base.service.impl; + +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.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 jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Service +public class SdSonarBHServiceImpl extends ServiceImpl implements ISdSonarBHService { + + private static final String TABLE_NAME = "SD_SONAR_B_H"; + + @Resource + private IMsOperationLogService msOperationLogService; + @Resource + private DictCodeToNameConverter dictCodeToNameConverter; + + /** + * 代码转名称元数据配置列表(静态初始化) + *

+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList, + * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList) + * 即可自动将 code 字段转为对应的 name 字段。 + *

+ * + *
+     * 使用示例:
+     * // 在查询方法末尾调用:
+     * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+     * 
+ */ + private static final List CODE_TO_NAME_META_LIST = new ArrayList<>(); + + static { + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("mway").modifyProperty("mwayName").dictType("STATIC").dictSource("MWAY").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build()); +// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rstcd").modifyProperty("ennm").dictType("DYNAMIC").dictSource("SD_ENGINFO_B_H").codeColumn("STCD").nameColumn("ENNM").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rvcd").modifyProperty("rvnm").dictType("DYNAMIC").dictSource("V_SD_RVCD_DIC_TREE").codeColumn("RVCD").nameColumn("RVNM").build()); + + } + + @Override + public Page queryPageList(DataSourceRequest request) { + Page sdSonarBHPage = DataSourceRequestUtil.executeQuery(request, SdSonarBH.class, this); + dictCodeToNameConverter.convertCodeToName(sdSonarBHPage, CODE_TO_NAME_META_LIST); + return sdSonarBHPage; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean add(SdSonarBH entity, String source) { + boolean result = this.save(entity); + if (result) { + msOperationLogService.recordAddDetailLog(TABLE_NAME, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean update(SdSonarBH entity, String source) { + SdSonarBH before = this.getById(entity.getStcd()); + boolean result = this.updateById(entity); + if (result && before != null) { + msOperationLogService.recordModifyDetailLog(TABLE_NAME, before, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delete(List stcds, String source) { + if (stcds == null || stcds.isEmpty()) return false; + int count = 0; + for (String stcd : stcds) { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(SdSonarBH::getStcd, stcd); + wrapper.set(SdSonarBH::getIsDeleted, 1); + wrapper.set(SdSonarBH::getDeleteUser, SecurityUtils.getCurrentUsername()); + wrapper.set(SdSonarBH::getDeleteTime, new Date()); + if (this.update(wrapper)) { + SdSonarBH entity = this.getById(stcd); + msOperationLogService.recordDeleteDetailLog(TABLE_NAME, entity, source); + count++; + } + } + return count > 0; + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdTeBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdTeBHServiceImpl.java new file mode 100644 index 00000000..823b57dd --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdTeBHServiceImpl.java @@ -0,0 +1,99 @@ +package com.yfd.platform.qgc_base.service.impl; + +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.qgc_base.domain.SdTeBH; +import com.yfd.platform.qgc_base.mapper.SdTeBHMapper; +import com.yfd.platform.qgc_base.service.IMsOperationLogService; +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 jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class SdTeBHServiceImpl extends ServiceImpl implements ISdTeBHService { + + private static final String TABLE_NAME = "SD_TE_B_H"; + + @Resource + private IMsOperationLogService msOperationLogService; + @Resource + private DictCodeToNameConverter dictCodeToNameConverter; + + /** + * 代码转名称元数据配置列表(静态初始化) + *

+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList, + * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList) + * 即可自动将 code 字段转为对应的 name 字段。 + *

+ * + *
+     * 使用示例:
+     * // 在查询方法末尾调用:
+     * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+     * 
+ */ + private static final List CODE_TO_NAME_META_LIST = new ArrayList<>(); + + static { + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build()); +// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rstcd").modifyProperty("ennm").dictType("DYNAMIC").dictSource("SD_ENGINFO_B_H").codeColumn("STCD").nameColumn("ENNM").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rvcd").modifyProperty("rvnm").dictType("DYNAMIC").dictSource("V_SD_RVCD_DIC_TREE").codeColumn("RVCD").nameColumn("RVNM").build()); + + } + + @Override + public Page queryPageList(DataSourceRequest request) { + Page sdTeBHPage = DataSourceRequestUtil.executeQuery(request, SdTeBH.class, this); + dictCodeToNameConverter.convertCodeToName(sdTeBHPage, CODE_TO_NAME_META_LIST); + return sdTeBHPage; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean add(SdTeBH entity, String source) { + boolean result = this.save(entity); + if (result) { + msOperationLogService.recordAddDetailLog(TABLE_NAME, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean update(SdTeBH entity, String source) { + SdTeBH before = this.getById(entity.getStcd()); + boolean result = this.updateById(entity); + if (result && before != null) { + msOperationLogService.recordModifyDetailLog(TABLE_NAME, before, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delete(List stcds, String source) { + if (stcds == null || stcds.isEmpty()) return false; + int count = 0; + for (String stcd : stcds) { + if (this.removeById(stcd)) { + SdTeBH entity = this.getById(stcd); + msOperationLogService.recordDeleteDetailLog(TABLE_NAME, entity, source); + count++; + } + } + return count > 0; + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVaBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVaBHServiceImpl.java new file mode 100644 index 00000000..5be94d58 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVaBHServiceImpl.java @@ -0,0 +1,105 @@ +package com.yfd.platform.qgc_base.service.impl; + +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.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 jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Service +public class SdVaBHServiceImpl extends ServiceImpl implements ISdVaBHService { + + private static final String TABLE_NAME = "SD_VA_B_H"; + + @Resource + private IMsOperationLogService msOperationLogService; + @Resource + private DictCodeToNameConverter dictCodeToNameConverter; + + /** + * 代码转名称元数据配置列表(静态初始化) + *

+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList, + * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList) + * 即可自动将 code 字段转为对应的 name 字段。 + *

+ * + *
+     * 使用示例:
+     * // 在查询方法末尾调用:
+     * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+     * 
+ */ + private static final List CODE_TO_NAME_META_LIST = new ArrayList<>(); + + static { + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build()); +// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rstcd").modifyProperty("ennm").dictType("DYNAMIC").dictSource("SD_ENGINFO_B_H").codeColumn("STCD").nameColumn("ENNM").filter("NVL(IS_DELETED, 0) = 0 ").build()); + } + + @Override + public Page queryPageList(DataSourceRequest request) { + Page sdVaBHPage = DataSourceRequestUtil.executeQuery(request, SdVaBH.class, this); + dictCodeToNameConverter.convertCodeToName(sdVaBHPage, CODE_TO_NAME_META_LIST); + return sdVaBHPage; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean add(SdVaBH entity, String source) { + boolean result = this.save(entity); + if (result) { + msOperationLogService.recordAddDetailLog(TABLE_NAME, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean update(SdVaBH entity, String source) { + SdVaBH before = this.getById(entity.getStcd()); + boolean result = this.updateById(entity); + if (result && before != null) { + msOperationLogService.recordModifyDetailLog(TABLE_NAME, before, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delete(List stcds, String source) { + if (stcds == null || stcds.isEmpty()) return false; + int count = 0; + for (String stcd : stcds) { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(SdVaBH::getStcd, stcd); + wrapper.set(SdVaBH::getIsDeleted, 1); + wrapper.set(SdVaBH::getDeleteUser, SecurityUtils.getCurrentUsername()); + wrapper.set(SdVaBH::getDeleteTime, new Date()); + if (this.update(wrapper)) { + SdVaBH entity = this.getById(stcd); + msOperationLogService.recordDeleteDetailLog(TABLE_NAME, entity, source); + count++; + } + } + return count > 0; + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVdinfoBServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVdinfoBServiceImpl.java new file mode 100644 index 00000000..e5599d34 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVdinfoBServiceImpl.java @@ -0,0 +1,102 @@ +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.qgc_base.domain.SdVdinfoB; +import com.yfd.platform.qgc_base.mapper.SdVdinfoBMapper; +import com.yfd.platform.qgc_base.service.IMsOperationLogService; +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 jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class SdVdinfoBServiceImpl extends ServiceImpl implements ISdVdinfoBService { + + private static final String TABLE_NAME = "SD_VDINFO_B"; + + @Resource + private IMsOperationLogService msOperationLogService; + @Resource + private DictCodeToNameConverter dictCodeToNameConverter; + + /** + * 代码转名称元数据配置列表(静态初始化) + *

+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList, + * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList) + * 即可自动将 code 字段转为对应的 name 字段。 + *

+ * + *
+     * 使用示例:
+     * // 在查询方法末尾调用:
+     * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+     * 
+ */ + private static final List CODE_TO_NAME_META_LIST = new ArrayList<>(); + + static { + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build()); +// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rstcd").modifyProperty("ennm").dictType("DYNAMIC").dictSource("SD_ENGINFO_B_H").codeColumn("STCD").nameColumn("ENNM").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rvcd").modifyProperty("rvnm").dictType("DYNAMIC").dictSource("V_SD_RVCD_DIC_TREE").codeColumn("RVCD").nameColumn("RVNM").build()); + + } + + @Override + public Page queryPageList(DataSourceRequest request) { + Page sdVdinfoBPage = DataSourceRequestUtil.executeQuery(request, SdVdinfoB.class, this); + dictCodeToNameConverter.convertCodeToName(sdVdinfoBPage, CODE_TO_NAME_META_LIST); + return sdVdinfoBPage; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean add(SdVdinfoB entity, String source) { + String mntp = entity.getMntp(); + if (StrUtil.isBlank(mntp)) { + entity.setMntp("实时视频"); + } + boolean result = this.save(entity); + if (result) { + msOperationLogService.recordAddDetailLog(TABLE_NAME, entity, source); } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean update(SdVdinfoB entity, String source) { + SdVdinfoB before = this.getById(entity.getStcd()); + boolean result = this.updateById(entity); + if (result && before != null) { + msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "修改", source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delete(List stcds, String source) { + if (stcds == null || stcds.isEmpty()) return false; + int count = 0; + for (String stcd : stcds) { + if (this.removeById(stcd)) { + SdVdinfoB entity = this.getById(stcd); + msOperationLogService.recordDeleteDetailLog(TABLE_NAME, entity, source); count++; + } + } + return count > 0; + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVpBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVpBHServiceImpl.java new file mode 100644 index 00000000..5ae15e39 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVpBHServiceImpl.java @@ -0,0 +1,103 @@ +package com.yfd.platform.qgc_base.service.impl; + +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.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 jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Service +public class SdVpBHServiceImpl extends ServiceImpl implements ISdVpBHService { + + private static final String TABLE_NAME = "SD_VP_B_H"; + + @Resource + private IMsOperationLogService msOperationLogService; + @Resource + private DictCodeToNameConverter dictCodeToNameConverter; + + /** + * 代码转名称元数据配置列表(静态初始化) + *

+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList, + * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList) + * 即可自动将 code 字段转为对应的 name 字段。 + *

+ * + *
+     * 使用示例:
+     * // 在查询方法末尾调用:
+     * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+     * 
+ */ + private static final List CODE_TO_NAME_META_LIST = new ArrayList<>(); + + static { + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build()); +// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rstcd").modifyProperty("ennm").dictType("DYNAMIC").dictSource("SD_ENGINFO_B_H").codeColumn("STCD").nameColumn("ENNM").filter("NVL(IS_DELETED, 0) = 0 ").build()); + } + + @Override + public Page queryPageList(DataSourceRequest request) { + Page sdVpBHPage = DataSourceRequestUtil.executeQuery(request, SdVpBH.class, this); + dictCodeToNameConverter.convertCodeToName(sdVpBHPage, CODE_TO_NAME_META_LIST); + return sdVpBHPage; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean add(SdVpBH entity, String source) { + boolean result = this.save(entity); + if (result) { + msOperationLogService.recordAddDetailLog(TABLE_NAME, entity, source); } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean update(SdVpBH entity, String source) { + SdVpBH before = this.getById(entity.getStcd()); + boolean result = this.updateById(entity); + if (result && before != null) { + msOperationLogService.recordModifyDetailLog(TABLE_NAME, before, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delete(List stcds, String source) { + if (stcds == null || stcds.isEmpty()) return false; + int count = 0; + for (String stcd : stcds) { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(SdVpBH::getStcd, stcd); + wrapper.set(SdVpBH::getIsDeleted, 1); + wrapper.set(SdVpBH::getDeleteUser, SecurityUtils.getCurrentUsername()); + wrapper.set(SdVpBH::getDeleteTime, new Date()); + if (this.update(wrapper)) { + SdVpBH entity = this.getById(stcd); + msOperationLogService.recordDeleteDetailLog(TABLE_NAME, entity, source); count++; + } + } + return count > 0; + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWeBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWeBHServiceImpl.java new file mode 100644 index 00000000..b0ca0a7e --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWeBHServiceImpl.java @@ -0,0 +1,99 @@ +package com.yfd.platform.qgc_base.service.impl; + +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.qgc_base.domain.SdWeBH; +import com.yfd.platform.qgc_base.mapper.SdWeBHMapper; +import com.yfd.platform.qgc_base.service.IMsOperationLogService; +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 jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class SdWeBHServiceImpl extends ServiceImpl implements ISdWeBHService { + + private static final String TABLE_NAME = "SD_WE_B_H"; + + @Resource + private IMsOperationLogService msOperationLogService; + + @Resource + private DictCodeToNameConverter dictCodeToNameConverter; + + /** + * 代码转名称元数据配置列表(静态初始化) + *

+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList, + * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList) + * 即可自动将 code 字段转为对应的 name 字段。 + *

+ * + *
+     * 使用示例:
+     * // 在查询方法末尾调用:
+     * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+     * 
+ */ + private static final List CODE_TO_NAME_META_LIST = new ArrayList<>(); + + static { + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build()); +// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("mway").modifyProperty("mwayName").dictType("STATIC").dictSource("MWAY").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build()); +// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rstcd").modifyProperty("ennm").dictType("DYNAMIC").dictSource("SD_ENGINFO_B_H").codeColumn("STCD").nameColumn("ENNM").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rvcd").modifyProperty("rvnm").dictType("DYNAMIC").dictSource("V_SD_RVCD_DIC_TREE").codeColumn("RVCD").nameColumn("RVNM").build()); + + } + + @Override + public Page queryPageList(DataSourceRequest request) { + Page sdWeBHPage = DataSourceRequestUtil.executeQuery(request, SdWeBH.class, this); + dictCodeToNameConverter.convertCodeToName(sdWeBHPage, CODE_TO_NAME_META_LIST); + return sdWeBHPage; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean add(SdWeBH entity, String source) { + boolean result = this.save(entity); + if (result) { + msOperationLogService.recordAddDetailLog(TABLE_NAME, entity, source); } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean update(SdWeBH entity, String source) { + SdWeBH before = this.getById(entity.getStcd()); + boolean result = this.updateById(entity); + if (result && before != null) { + msOperationLogService.recordModifyDetailLog(TABLE_NAME, before, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delete(List stcds, String source) { + if (stcds == null || stcds.isEmpty()) return false; + int count = 0; + for (String stcd : stcds) { + if (this.removeById(stcd)) { + SdWeBH entity = this.getById(stcd); + msOperationLogService.recordDeleteDetailLog(TABLE_NAME, entity, source); count++; + } + } + return count > 0; + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWqBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWqBHServiceImpl.java new file mode 100644 index 00000000..cb5fd299 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWqBHServiceImpl.java @@ -0,0 +1,106 @@ +package com.yfd.platform.qgc_base.service.impl; + +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.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 jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Service +public class SdWqBHServiceImpl extends ServiceImpl implements ISdWqBHService { + + private static final String TABLE_NAME = "SD_WQ_B_H"; + + @Resource + private IMsOperationLogService msOperationLogService; + + @Resource + private DictCodeToNameConverter dictCodeToNameConverter; + + /** + * 代码转名称元数据配置列表(静态初始化) + *

+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList, + * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList) + * 即可自动将 code 字段转为对应的 name 字段。 + *

+ * + *
+     * 使用示例:
+     * // 在查询方法末尾调用:
+     * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+     * 
+ */ + private static final List CODE_TO_NAME_META_LIST = new ArrayList<>(); + + static { + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("mway").modifyProperty("mwayName").dictType("STATIC").dictSource("MWAY").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("wwqtg").modifyProperty("wwqtgName").dictType("STATIC").dictSource("WWQTG").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rstcd").modifyProperty("ennm").dictType("DYNAMIC").dictSource("SD_ENGINFO_B_H").codeColumn("STCD").nameColumn("ENNM").filter("NVL(IS_DELETED, 0) = 0 ").build()); + } + + @Override + public Page queryPageList(DataSourceRequest request) { + Page sdWqBHPage = DataSourceRequestUtil.executeQuery(request, SdWqBH.class, this); + dictCodeToNameConverter.convertCodeToName(sdWqBHPage, CODE_TO_NAME_META_LIST); + return sdWqBHPage; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean add(SdWqBH entity, String source) { + boolean result = this.save(entity); + if (result) { + msOperationLogService.recordAddDetailLog(TABLE_NAME, entity, source); } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean update(SdWqBH entity, String source) { + SdWqBH before = this.getById(entity.getStcd()); + boolean result = this.updateById(entity); + if (result && before != null) { + msOperationLogService.recordModifyDetailLog(TABLE_NAME, before, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delete(List stcds, String source) { + if (stcds == null || stcds.isEmpty()) return false; + int count = 0; + for (String stcd : stcds) { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(SdWqBH::getStcd, stcd); + wrapper.set(SdWqBH::getIsDeleted, 1); + wrapper.set(SdWqBH::getDeleteUser, SecurityUtils.getCurrentUsername()); + wrapper.set(SdWqBH::getDeleteTime, new Date()); + if (this.update(wrapper)) { + SdWqBH entity = this.getById(stcd); + msOperationLogService.recordDeleteDetailLog(TABLE_NAME, entity, source); count++; + } + } + return count > 0; + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWtBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWtBHServiceImpl.java new file mode 100644 index 00000000..b7e4838b --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWtBHServiceImpl.java @@ -0,0 +1,110 @@ +package com.yfd.platform.qgc_base.service.impl; + +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.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 jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Service +public class SdWtBHServiceImpl extends ServiceImpl implements ISdWtBHService { + + private static final String TABLE_NAME = "SD_WT_B_H"; + + @Resource + private IMsOperationLogService msOperationLogService; + + + @Resource + private DictCodeToNameConverter dictCodeToNameConverter; + + /** + * 代码转名称元数据配置列表(静态初始化) + *

+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList, + * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList) + * 即可自动将 code 字段转为对应的 name 字段。 + *

+ * + *
+     * 使用示例:
+     * // 在查询方法末尾调用:
+     * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+     * 
+ */ + private static final List CODE_TO_NAME_META_LIST = new ArrayList<>(); + + static { + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("mway").modifyProperty("mwayName").dictType("STATIC").dictSource("MWAY").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build()); + CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("rstcd").modifyProperty("ennm").dictType("DYNAMIC").dictSource("SD_ENGINFO_B_H").codeColumn("STCD").nameColumn("ENNM").filter("NVL(IS_DELETED, 0) = 0 ").build()); + } + + + @Override + public Page queryPageList(DataSourceRequest request) { + Page sdWtBHPage = DataSourceRequestUtil.executeQuery(request, SdWtBH.class, this); + dictCodeToNameConverter.convertCodeToName(sdWtBHPage, CODE_TO_NAME_META_LIST); + return sdWtBHPage; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean add(SdWtBH entity, String source) { + boolean result = this.save(entity); + if (result) { + msOperationLogService.recordAddDetailLog(TABLE_NAME, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean update(SdWtBH entity, String source) { + SdWtBH before = this.getById(entity.getStcd()); + boolean result = this.updateById(entity); + if (result && before != null) { + msOperationLogService.recordModifyDetailLog(TABLE_NAME, before, entity, source); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delete(List stcds, String source) { + if (stcds == null || stcds.isEmpty()) return false; + int count = 0; + for (String stcd : stcds) { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(SdWtBH::getStcd, stcd); + wrapper.set(SdWtBH::getIsDeleted, 1); + wrapper.set(SdWtBH::getDeleteUser, SecurityUtils.getCurrentUsername()); + wrapper.set(SdWtBH::getDeleteTime, new Date()); + if (this.update(wrapper)) { + SdWtBH entity = this.getById(stcd); + msOperationLogService.recordDeleteDetailLog(TABLE_NAME, entity, source); + count++; + } + } + return count > 0; + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_data/domain/vo/FishDraftDataVO.java b/backend/src/main/java/com/yfd/platform/qgc_data/domain/vo/FishDraftDataVO.java index b87da039..69a378d2 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_data/domain/vo/FishDraftDataVO.java +++ b/backend/src/main/java/com/yfd/platform/qgc_data/domain/vo/FishDraftDataVO.java @@ -210,12 +210,12 @@ public class FishDraftDataVO implements Serializable { /** * 电站经度(电站表) */ - private Double lgtd; + private BigDecimal lgtd; /** * 电站纬度(电站表) */ - private Double lttd; + private BigDecimal lttd; /** * 排序字段 diff --git a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/EngEqBaseMsstbprptVo.java b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/EngEqBaseMsstbprptVo.java index e90510ac..f998dd54 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/EngEqBaseMsstbprptVo.java +++ b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/EngEqBaseMsstbprptVo.java @@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; @Data @@ -46,10 +47,10 @@ public class EngEqBaseMsstbprptVo implements Serializable { private String stlc; @Schema(description = "经度") - private Double lgtd; + private BigDecimal lgtd; @Schema(description = "纬度") - private Double lttd; + private BigDecimal lttd; @Schema(description = "高程") private Double elev; diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fh/entity/vo/FhBaseInfoVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/fh/entity/vo/FhBaseInfoVo.java index 93105dc0..e10c44cd 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/fh/entity/vo/FhBaseInfoVo.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/fh/entity/vo/FhBaseInfoVo.java @@ -23,10 +23,10 @@ public class FhBaseInfoVo { private Integer blprd; @Schema(description = "经度") - private Double lgtd; + private BigDecimal lgtd; @Schema(description = "纬度") - private Double lttd; + private BigDecimal lttd; @Schema(description = "高程") private Double elev; diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fpr/entity/vo/FprMsstbprptVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/fpr/entity/vo/FprMsstbprptVo.java index 3482b334..be4a6d52 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/fpr/entity/vo/FprMsstbprptVo.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/fpr/entity/vo/FprMsstbprptVo.java @@ -3,6 +3,7 @@ package com.yfd.platform.qgc_env.fpr.entity.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; @Data @@ -40,10 +41,10 @@ public class FprMsstbprptVo { private Date tm; @Schema(description = "经度") - private Double lgtd; + private BigDecimal lgtd; @Schema(description = "纬度") - private Double lttd; + private BigDecimal lttd; @Schema(description = "高程") private Double elev; diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fpr/entity/vo/FprdPointInfoVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/fpr/entity/vo/FprdPointInfoVo.java index 81ea189f..6ac7036b 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/fpr/entity/vo/FprdPointInfoVo.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/fpr/entity/vo/FprdPointInfoVo.java @@ -2,6 +2,8 @@ package com.yfd.platform.qgc_env.fpr.entity.vo; import lombok.Data; +import java.math.BigDecimal; + @Data public class FprdPointInfoVo { @@ -15,9 +17,9 @@ public class FprdPointInfoVo { private String bldstt; - private Double lttd; + private BigDecimal lttd; - private Double lgtd; + private BigDecimal lgtd; private Double dtmel; diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fpr/service/impl/FprMonitorServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_env/fpr/service/impl/FprMonitorServiceImpl.java index 6a55e3c3..30bbd928 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/fpr/service/impl/FprMonitorServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/fpr/service/impl/FprMonitorServiceImpl.java @@ -216,8 +216,8 @@ public class FprMonitorServiceImpl implements FprMonitorService { SiteAvoidanceUtils.calcSiteMapLev(resultList, FprdPointInfoVo::getStcd, - vo -> vo.getLgtd() != null ? java.math.BigDecimal.valueOf(vo.getLgtd()) : null, - vo -> vo.getLttd() != null ? java.math.BigDecimal.valueOf(vo.getLttd()) : null, + vo -> vo.getLgtd() != null ? vo.getLgtd() : null, + vo -> vo.getLttd() != null ? vo.getLttd() : null, FprdPointInfoVo::getAnchoPointState, FprdPointInfoVo::setDistance ); diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/overview/entity/vo/OverviewMsstbprptVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/overview/entity/vo/OverviewMsstbprptVo.java index effa1e33..dd7732c1 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/overview/entity/vo/OverviewMsstbprptVo.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/overview/entity/vo/OverviewMsstbprptVo.java @@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; @Data @@ -21,8 +22,8 @@ public class OverviewMsstbprptVo implements Serializable { private String sttpFullPath; private Integer sttpTreeLevel; private String blprdId; - private Double lgtd; - private Double lttd; + private BigDecimal lgtd; + private BigDecimal lttd; private Double dtmel; private String stlc; private Integer usfl; diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/vap/entity/vo/FhvapBuiltPointVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/vap/entity/vo/FhvapBuiltPointVo.java index f71df8e4..5f4d8c60 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/vap/entity/vo/FhvapBuiltPointVo.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/vap/entity/vo/FhvapBuiltPointVo.java @@ -2,6 +2,8 @@ package com.yfd.platform.qgc_env.vap.entity.vo; import lombok.Data; +import java.math.BigDecimal; + @Data public class FhvapBuiltPointVo { @@ -15,9 +17,9 @@ public class FhvapBuiltPointVo { private String bldstt; - private Double lttd; + private BigDecimal lttd; - private Double lgtd; + private BigDecimal lgtd; private Double dtmel; diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/vap/entity/vo/VpVmsstbprptVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/vap/entity/vo/VpVmsstbprptVo.java index 12bbfcad..5d099b80 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/vap/entity/vo/VpVmsstbprptVo.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/vap/entity/vo/VpVmsstbprptVo.java @@ -62,10 +62,10 @@ public class VpVmsstbprptVo implements Serializable { private Integer sttpTreeLevel; @Schema(description = "经度") - private Double lgtd; + private BigDecimal lgtd; @Schema(description = "纬度") - private Double lttd; + private BigDecimal lttd; @Schema(description = "站址") private String stlc; diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/vap/entity/vo/WvaPointVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/vap/entity/vo/WvaPointVo.java index ac2802b5..b6bbb8f2 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/vap/entity/vo/WvaPointVo.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/vap/entity/vo/WvaPointVo.java @@ -2,6 +2,8 @@ package com.yfd.platform.qgc_env.vap.entity.vo; import lombok.Data; +import java.math.BigDecimal; + @Data public class WvaPointVo { @@ -17,9 +19,9 @@ public class WvaPointVo { private String bldstt; - private Double lttd; + private BigDecimal lttd; - private Double lgtd; + private BigDecimal lgtd; private Double dtmel; diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/wq/entity/vo/WqBaseInfoVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/wq/entity/vo/WqBaseInfoVo.java index 0fc81648..afda0eb0 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/wq/entity/vo/WqBaseInfoVo.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/wq/entity/vo/WqBaseInfoVo.java @@ -3,6 +3,7 @@ package com.yfd.platform.qgc_env.wq.entity.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; @Data @@ -22,10 +23,10 @@ public class WqBaseInfoVo { private String sttp; @Schema(description = "经度") - private Double lgtd; + private BigDecimal lgtd; @Schema(description = "纬度") - private Double lttd; + private BigDecimal lttd; @Schema(description = "海拔") private Double elev; diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/wt/entity/vo/SdWtBaseInfoVO.java b/backend/src/main/java/com/yfd/platform/qgc_env/wt/entity/vo/SdWtBaseInfoVO.java index 18561f8f..adbd1315 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/wt/entity/vo/SdWtBaseInfoVO.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/wt/entity/vo/SdWtBaseInfoVO.java @@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; @Data @@ -99,8 +100,8 @@ public class SdWtBaseInfoVO implements Serializable { private String hbrvcdName; @Schema(description = "经度") - private Double lgtd; + private BigDecimal lgtd; @Schema(description = "纬度") - private Double lttd; + private BigDecimal lttd; } diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/wt/entity/vo/WtBaseInfoVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/wt/entity/vo/WtBaseInfoVo.java index 37d0f22f..8acf3809 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/wt/entity/vo/WtBaseInfoVo.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/wt/entity/vo/WtBaseInfoVo.java @@ -23,10 +23,10 @@ public class WtBaseInfoVo { private String sttp; @Schema(description = "经度") - private Double lgtd; + private BigDecimal lgtd; @Schema(description = "纬度") - private Double lttd; + private BigDecimal lttd; @Schema(description = "海拔") private Double elev; diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/wte/service/impl/WeFishServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_env/wte/service/impl/WeFishServiceImpl.java index d9b6f10a..78834cd4 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/wte/service/impl/WeFishServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/wte/service/impl/WeFishServiceImpl.java @@ -626,6 +626,13 @@ public class WeFishServiceImpl implements WeFishService { queryWeEnvmAutoMonitorCount(buildWeEnvmZjWqSql(baseId, rstcds)), 3, "WQ", "ENV,ENVM,WQ,", "水质监测" )); + if (showIds.isEmpty() || showIds.contains("4")) { + // 气象监测 + rows.add(buildWeEnvmAutoMonitorVo( + queryWeEnvmAutoMonitorCount(buildWeEnvmMmSql(baseId, hbrvcds)), + 4, "MM", "MM,", "气象监测" + )); + } rows.add(buildWeEnvmAutoMonitorVo( queryWeEnvmAutoMonitorCount(buildWeEnvmStGjSql(baseId)), 5, null, "ST,ZQ-ST,ZZ", "国家水文站" @@ -5346,6 +5353,20 @@ public class WeFishServiceImpl implements WeFishService { return new SqlAndParams(sql.toString(), paramMap); } + private SqlAndParams buildWeEnvmMmSql(String baseId, List hbrvcds) { + StringBuilder sql = new StringBuilder(); + Map paramMap = new HashMap<>(); + sql.append("SELECT COUNT(1) AS cnt FROM SD_MM_B_H mm ") + .append("LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = mm.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 ") + .append("WHERE 1=1 ") +// .append("AND NVL(mm.IS_DELETED, 0) = 0 ") + .append("AND mm.STTP = 'MM' ") + .append("AND NVL(mm.MWAY, 0) = 2 "); + appendWeEnvmBaseIdCondition(sql, paramMap, "eng.BASE_ID", baseId); + appendWeEnvmExactInCondition(sql, paramMap, "eng.HBRVCD", "hbrvcd", hbrvcds); + return new SqlAndParams(sql.toString(), paramMap); + } + private void appendWeEnvmBaseIdCondition(StringBuilder sql, Map paramMap, String column, String baseId) { if (StrUtil.isBlank(baseId)) { return; diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/zq/entity/vo/ZqBaseInfoVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/zq/entity/vo/ZqBaseInfoVo.java index ed88d45b..2a666002 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/zq/entity/vo/ZqBaseInfoVo.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/zq/entity/vo/ZqBaseInfoVo.java @@ -3,6 +3,7 @@ package com.yfd.platform.qgc_env.zq.entity.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; @Data @@ -25,10 +26,10 @@ public class ZqBaseInfoVo { private String sttpCode; @Schema(description = "经度") - private Double lgtd; + private BigDecimal lgtd; @Schema(description = "纬度") - private Double lttd; + private BigDecimal lttd; @Schema(description = "水温设备类型") private Integer wtDeviceType; diff --git a/backend/src/main/java/com/yfd/platform/qgc_lygk/along/service/impl/MsAlongBServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_lygk/along/service/impl/MsAlongBServiceImpl.java index 64647c88..50a58573 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_lygk/along/service/impl/MsAlongBServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_lygk/along/service/impl/MsAlongBServiceImpl.java @@ -162,14 +162,26 @@ public class MsAlongBServiceImpl extends ServiceImpl i StringBuilder sql = new StringBuilder("SELECT * FROM SD_STTP_B WHERE NVL(IS_DELETED, 0) = 0"); Map paramMap = new HashMap<>(); - // 解析过滤条件 - if (dataSourceRequest != null && dataSourceRequest.getFilter() != null) { - String filterSql = parseSttpFilter(dataSourceRequest.getFilter(), paramMap, new int[]{0}); - if (StrUtil.isNotBlank(filterSql)) { - sql.append(" AND ").append(filterSql); - } + + String filterSql = QgcQueryWrapperUtil.buildFilterCondition( + dataSourceRequest.getFilter(), + paramMap, + new int[]{0}, + this::mapWeFvColumn + ); + + if (StrUtil.isNotBlank(filterSql)) { + sql.append(" AND ").append(filterSql).append(" "); } + // 解析过滤条件 +// if (dataSourceRequest != null && dataSourceRequest.getFilter() != null) { +// String filterSql = parseSttpFilter(dataSourceRequest.getFilter(), paramMap, new int[]{0}); +// if (StrUtil.isNotBlank(filterSql)) { +// sql.append(" AND ").append(filterSql); +// } +// } + // 解析排序 if (dataSourceRequest != null && CollUtil.isNotEmpty(dataSourceRequest.getSort())) { List orderList = new ArrayList<>(); @@ -200,6 +212,18 @@ public class MsAlongBServiceImpl extends ServiceImpl i return result; } + private String mapWeFvColumn(String field) { + if (StrUtil.isBlank(field)) { + return null; + } + return switch (field.toLowerCase()) { + case "sttpcode" -> "STTP_CODE"; + case "lgtd" -> "lgtd"; + default -> null; + }; + } + + /** * 递归解析站类过滤条件 */ diff --git a/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/controller/MsUsercolumnBController.java b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/controller/MsUsercolumnBController.java new file mode 100644 index 00000000..3a269e76 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/controller/MsUsercolumnBController.java @@ -0,0 +1,44 @@ +package com.yfd.platform.qgc_sys.cuscolumn.controller; + +import com.yfd.platform.config.ResponseResult; +import com.yfd.platform.qgc_sys.cuscolumn.domain.MsUsercolumnB; +import com.yfd.platform.qgc_sys.cuscolumn.service.IMsUsercolumnBService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 用户自定义筛选列 控制层 + */ +@RestController +@RequestMapping("/sys/usercolumn") +@Tag(name = "用户自定义筛选列") +public class MsUsercolumnBController { + + @Resource + private IMsUsercolumnBService msUsercolumnBService; + + /** + * 批量保存用户自定义列数据 + */ + @PostMapping("/batchSave") + @Operation(summary = "保存用户自定义列数据") + public ResponseResult batchSave(@RequestBody MsUsercolumnB userColumn) { + boolean result = msUsercolumnBService.batchSave(userColumn); + return result ? ResponseResult.success("保存成功") : ResponseResult.error("保存失败"); + } + + /** + * 获取用户自定义列数据 + */ + @PostMapping("/getUserColumnData") + @Operation(summary = "获取用户自定义列数据") + public ResponseResult getUserColumnData(@RequestBody MsUsercolumnB userColumn) { + return ResponseResult.successData(msUsercolumnBService.getUserColumnData(userColumn)); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/domain/MsColumncfgB.java b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/domain/MsColumncfgB.java new file mode 100644 index 00000000..d21fb44c --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/domain/MsColumncfgB.java @@ -0,0 +1,90 @@ +package com.yfd.platform.qgc_sys.cuscolumn.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 筛选列配置表 + */ +@Data +@TableName("MS_COLUMNCFG_B") +public class MsColumncfgB implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(type = IdType.ASSIGN_UUID) + private String id; + + @TableField("FUNCTION_ID") + private String functionId; + + @TableField("COLUMN_CFG") + private String columnCfg; + + @TableField("ENABLE") + private Integer enable; + + @TableField("ORDER_INDEX") + private Integer orderIndex; + + @TableField("RECORD_USER") + private String recordUser; + + @TableField("RECORD_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date recordTime; + + @TableField("MODIFY_USER") + private String modifyUser; + + @TableField("MODIFY_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date modifyTime; + + @TableField("IS_DELETED") + private Integer isDeleted; + + @TableField("DEFAULT_CHECKED") + private Integer defaultChecked; + + @TableField("DELETE_USER") + private String deleteUser; + + @TableField("DELETE_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date deleteTime; + + @TableField("IS_TEMP_STORAGE") + private Integer isTempStorage; + + @TableField("COLUMN_EN") + private String columnEn; + + @TableField("GROUP_TYPE") + private String groupType; + + @TableField("PARENT_ID") + private String parentId; + + @TableField("HAS_CHILDREN") + private Integer hasChildren; + + @TableField("DESCRIPTION") + private String description; + + @TableField("CAN_BE_UPDATED") + private Integer canBeUpdated; + + @TableField("WIDTH") + private Integer width; + + @TableField("CAN_BE_SORTED") + private Integer canBeSorted; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/domain/MsUsercolumnB.java b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/domain/MsUsercolumnB.java new file mode 100644 index 00000000..30361090 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/domain/MsUsercolumnB.java @@ -0,0 +1,105 @@ +package com.yfd.platform.qgc_sys.cuscolumn.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * 用户与筛选列映射表 + */ +@Data +@TableName("MS_USERCOLUMN_B") +public class MsUsercolumnB implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(type = IdType.ASSIGN_UUID) + private String id; + + @TableField("CFG_ID") + @JsonProperty("cfgId") + private String cfgId; + + @TableField("CAN_BE_CHECKED") + private Integer canBeChecked; + + @TableField("CHECKED") + private Integer checked; + + @TableField("DESCRIPTION") + private String description; + + @TableField("ENABLE") + private Integer enable; + + @TableField("ORDER_INDEX") + private Integer orderIndex; + + @TableField("RECORD_USER") + private String recordUser; + + @TableField("RECORD_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date recordTime; + + @TableField("MODIFY_USER") + private String modifyUser; + + @TableField("MODIFY_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date modifyTime; + + @TableField("IS_DELETED") + private Integer isDeleted; + + @TableField("DELETE_USER") + private String deleteUser; + + @TableField("DELETE_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date deleteTime; + + @TableField("IS_TEMP_STORAGE") + private Integer isTempStorage; + + @TableField("COLUMN_EN") + private String columnEn; + + @TableField("COLUMN_NAME") + private String columnName; + + /** + * 是否默认配置(非数据库字段) + */ + @TableField(exist = false) + @JsonProperty("defaultConfig") + private Boolean defaultConfig; + + /** + * 分组类型(非数据库字段,来自关联查询) + */ + @TableField(exist = false) + @JsonProperty("groupType") + private String groupType; + + /** + * 自定义列宽度(非数据库字段,来自关联查询) + */ + @TableField(exist = false) + @JsonProperty("width") + private Integer width; + + /** + * 批量操作时的对象集合(非数据库字段) + */ + @TableField(exist = false) + private List list; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/mapper/MsColumncfgBMapper.java b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/mapper/MsColumncfgBMapper.java new file mode 100644 index 00000000..067f4c38 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/mapper/MsColumncfgBMapper.java @@ -0,0 +1,9 @@ +package com.yfd.platform.qgc_sys.cuscolumn.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.qgc_sys.cuscolumn.domain.MsColumncfgB; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface MsColumncfgBMapper extends BaseMapper { +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/mapper/MsUsercolumnBMapper.java b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/mapper/MsUsercolumnBMapper.java new file mode 100644 index 00000000..9a00e07c --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/mapper/MsUsercolumnBMapper.java @@ -0,0 +1,29 @@ +package com.yfd.platform.qgc_sys.cuscolumn.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yfd.platform.qgc_sys.cuscolumn.domain.MsUsercolumnB; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface MsUsercolumnBMapper extends BaseMapper { + + /** + * 根据用户ID和模块ID删除用户自定义列数据 + */ + void deleteUserColumn(@Param("recordUser") String recordUser, + @Param("cfgId") String cfgId); + + /** + * 查询用户自定义列数据(LEFT JOIN MS_COLUMNCFG_B,优先使用用户配置,无用户配置时使用默认配置) + */ + List getUserColumnList(@Param("recordUser") String recordUser, + @Param("cfgId") String cfgId); + + /** + * 根据模块ID查询默认列配置 + */ + List getUserColumnDefaultList(@Param("cfgId") String cfgId); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/service/IMsUsercolumnBService.java b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/service/IMsUsercolumnBService.java new file mode 100644 index 00000000..7a41fe3d --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/service/IMsUsercolumnBService.java @@ -0,0 +1,19 @@ +package com.yfd.platform.qgc_sys.cuscolumn.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yfd.platform.qgc_sys.cuscolumn.domain.MsUsercolumnB; + +import java.util.List; + +public interface IMsUsercolumnBService extends IService { + + /** + * 批量保存用户自定义列数据 + */ + boolean batchSave(MsUsercolumnB userColumn); + + /** + * 获取用户自定义列数据 + */ + List getUserColumnData(MsUsercolumnB userColumn); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/service/impl/MsUsercolumnBServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/service/impl/MsUsercolumnBServiceImpl.java new file mode 100644 index 00000000..1524c95c --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/service/impl/MsUsercolumnBServiceImpl.java @@ -0,0 +1,59 @@ +package com.yfd.platform.qgc_sys.cuscolumn.service.impl; + +import com.yfd.platform.qgc_sys.cuscolumn.domain.MsUsercolumnB; +import com.yfd.platform.qgc_sys.cuscolumn.mapper.MsUsercolumnBMapper; +import com.yfd.platform.qgc_sys.cuscolumn.service.IMsUsercolumnBService; +import com.yfd.platform.utils.SecurityUtils; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import java.util.Date; +import java.util.List; + +@Service +public class MsUsercolumnBServiceImpl + extends ServiceImpl + implements IMsUsercolumnBService { + + @Resource + private MsUsercolumnBMapper usercolumnBMapper; + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean batchSave(MsUsercolumnB userColumn) { + if (!StringUtils.hasText(userColumn.getCfgId())) { + throw new IllegalArgumentException("模块(cfgId)不能为空"); + } + + String currentUser = SecurityUtils.getCurrentUsername(); + List list = userColumn.getList(); + + if (list != null && !list.isEmpty()) { + for (MsUsercolumnB item : list) { + item.setCfgId(userColumn.getCfgId()); + item.setRecordUser(currentUser); + item.setRecordTime(new Date()); + // 列的中文名称通过COLUMN_EN和MS_COLUMNCFG_B关联查询,不额外存储 + item.setColumnName(null); + } + + // 先删除旧数据 + usercolumnBMapper.deleteUserColumn(currentUser, userColumn.getCfgId()); + + // 批量保存新数据 + return this.saveBatch(list); + } + + return false; + } + + @Override + public List getUserColumnData(MsUsercolumnB userColumn) { + String currentUser = SecurityUtils.getCurrentUsername(); + return usercolumnBMapper.getUserColumnList(currentUser, userColumn.getCfgId()); + } +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_sys/mapLayer/service/impl/MapLegendServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_sys/mapLayer/service/impl/MapLegendServiceImpl.java index aecb081b..18f77b3a 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_sys/mapLayer/service/impl/MapLegendServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_sys/mapLayer/service/impl/MapLegendServiceImpl.java @@ -33,10 +33,10 @@ public class MapLegendServiceImpl extends ServiceImpl基于 SD_OPINFO_B_H 表,管理 STTP = 'OSGB' 的倾斜摄影数据

* * @author migration */ @@ -25,37 +27,40 @@ public class MsObliqueImageBController { @Resource private IMsObliqueImageBService msObliqueImageBService; + @Resource + private UserNameFillHelper userNameFillHelper; + /** * 条件过滤数据列表 */ @Operation(summary = "条件过滤数据列表") @PostMapping("/GetKendoListCust") public ResponseResult getKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) { - DataSourceResult result = msObliqueImageBService.getKendoList(dataSourceRequest); + DataSourceResult result = msObliqueImageBService.getKendoList(dataSourceRequest); + userNameFillHelper.fillUserNames(result.getData()); return ResponseResult.successData(result); } - /** * 新增或修改 */ @Operation(summary = "新增或修改") @PostMapping("/addOrUpdate") - public ResponseResult addOrUpdate(@RequestBody MsObliqueImageB msObliqueImageB) { - msObliqueImageBService.addOrUpdate(msObliqueImageB); + public ResponseResult addOrUpdate(@RequestBody SdOpinfoBH entity) { + msObliqueImageBService.addOrUpdate(entity); return ResponseResult.success(); } /** - * 删除 + * 逻辑删除(id 即 stcd) */ @Operation(summary = "删除") @GetMapping("/delete") - public ResponseResult delete(@RequestParam("id") String id) { - if (StrUtil.isBlank(id)) { + public ResponseResult delete(@RequestParam("stcd") String stcd) { + if (StrUtil.isBlank(stcd)) { throw new BizException("ID不能为空"); } - msObliqueImageBService.delete(id); + msObliqueImageBService.delete(stcd); return ResponseResult.success(); } -} \ No newline at end of file +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_sys/obliqueImage/domain/MsObliqueImageB.java b/backend/src/main/java/com/yfd/platform/qgc_sys/obliqueImage/domain/MsObliqueImageB.java deleted file mode 100644 index d3ea5efd..00000000 --- a/backend/src/main/java/com/yfd/platform/qgc_sys/obliqueImage/domain/MsObliqueImageB.java +++ /dev/null @@ -1,151 +0,0 @@ -package com.yfd.platform.qgc_sys.obliqueImage.domain; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -import java.io.Serializable; -import java.util.Date; - -/** - * 倾斜摄影管理实体类 - * - * @author migration - */ -@Data -@TableName("MS_OBL_PHOTO") -@Schema(description = "倾斜摄影管理实体类") -public class MsObliqueImageB implements Serializable { - - private static final long serialVersionUID = 1L; - - @TableId(type = IdType.ASSIGN_UUID) - private String id; - - /** 站码 */ - @TableField("STCD") - private String stcd; - - /** 站名 */ - @TableField("STNM") - private String stnm; - - /** 所属站类ID */ - @TableField("STTP") - private String sttp; - - /** 所属站类编码 */ - @TableField("STTP_CODE") - private String sttpCode; - - /** 所属站类名称 */ - @TableField("STTP_NAME") - private String sttpName; - - /** 所属站类全路径(非数据库字段) */ - @TableField(exist = false) - private String sttpFullPath; - - /** 所属站类层级(非数据库字段) */ - @TableField(exist = false) - private Integer sttpTreeLevel; - - /** 所属水电基地编码 */ - @TableField("BASE_ID") - private String baseId; - - /** 所属水电基地名称 */ - @TableField("BASE_NAME") - private String baseName; - - /** 所属流域编码 */ - @TableField("HBRVCD") - private String hbrvcd; - - /** 所属流域名称 */ - @TableField("HBRVCD_NAME") - private String hbrvcdName; - - /** 所属河段编码(非数据库字段,与HBRVCD同源) */ - @TableField(exist = false) - private String rvcd; - - /** 所属河段名称(非数据库字段,与HBRVCD_NAME同源) */ - @TableField(exist = false) - private String rvcdName; - - /** 在线地址 */ - @TableField("URL") - private String url; - - /** 所属电站编码 */ - @TableField("RSTCD") - private String rstcd; - - /** 所属电站名称 */ - @TableField("ENNM") - private String ennm; - - /** 电站经度(非数据库字段) */ - @TableField("LGTD") - private Double lgtd; - - /** 电站纬度(非数据库字段) */ - @TableField("LTTD") - private Double lttd; - - /** 电站坐标JSON串 */ - @TableField("LOCATION") - private String location; - - /** 模型精度 */ - @TableField("ACCURACY") - private Integer accuracy; - - /** 边界范围 */ - @TableField("BOUNDARY") - private String boundary; - - /** 自定义高程 */ - @TableField("HEIGHT") - private Integer height; - - /** 备注 */ - @TableField("COMMENTS") - private String comments; - - /** 创建人 */ - @TableField("RECORD_USER") - private String recordUser; - - /** 创建人名称(非数据库字段) */ - @TableField(exist = false) - private String recordUserName; - - /** 创建时间(非数据库字段) */ - @TableField(exist = false) - private Date recordTime; - - /** 更新人 */ - @TableField("MODIFY_USER") - private String modifyUser; - - /** 更新时间 */ - @TableField("MODIFY_TIME") - private Date modifyTime; - - /** 是否已删除:0=未删除 1=已删除 */ - @TableField("IS_DELETED") - private Integer isDeleted; - - /** 删除人 */ - @TableField("DELETE_USER") - private String deleteUser; - - /** 删除时间 */ - @TableField("DELETE_TIME") - private Date deleteTime; -} \ No newline at end of file diff --git a/backend/src/main/java/com/yfd/platform/qgc_sys/obliqueImage/mapper/MsObliqueImageBMapper.java b/backend/src/main/java/com/yfd/platform/qgc_sys/obliqueImage/mapper/MsObliqueImageBMapper.java index 7e527915..8629be31 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_sys/obliqueImage/mapper/MsObliqueImageBMapper.java +++ b/backend/src/main/java/com/yfd/platform/qgc_sys/obliqueImage/mapper/MsObliqueImageBMapper.java @@ -1,11 +1,8 @@ package com.yfd.platform.qgc_sys.obliqueImage.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.yfd.platform.qgc_sys.obliqueImage.domain.MsObliqueImageB; +import com.yfd.platform.qgc_base.domain.SdOpinfoBH; import org.apache.ibatis.annotations.Mapper; - -import org.apache.ibatis.annotations.Delete; -import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; /** @@ -14,11 +11,8 @@ import org.apache.ibatis.annotations.Select; * @author migration */ @Mapper -public interface MsObliqueImageBMapper extends BaseMapper { +public interface MsObliqueImageBMapper extends BaseMapper { - @Delete("DELETE FROM MS_OBL_PHOTO WHERE ID = #{id}") - void deleteById(@Param("id") String id); - - @Select("SELECT ID FROM SD_STTP_B WHERE STTP_CODE = 'OSGB'") - String getSttp(); -} \ No newline at end of file + @Select("SELECT STTP_CODE FROM SD_STTP_B WHERE STTP_CODE = 'OSGB' AND NVL(IS_DELETED, 0) = 0") + String getOpgbSttpId(); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_sys/obliqueImage/service/IMsObliqueImageBService.java b/backend/src/main/java/com/yfd/platform/qgc_sys/obliqueImage/service/IMsObliqueImageBService.java index 9f95d550..90490722 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_sys/obliqueImage/service/IMsObliqueImageBService.java +++ b/backend/src/main/java/com/yfd/platform/qgc_sys/obliqueImage/service/IMsObliqueImageBService.java @@ -3,34 +3,27 @@ package com.yfd.platform.qgc_sys.obliqueImage.service; import com.baomidou.mybatisplus.extension.service.IService; import com.yfd.platform.common.DataSourceRequest; import com.yfd.platform.common.DataSourceResult; -import com.yfd.platform.qgc_sys.obliqueImage.domain.MsObliqueImageB; +import com.yfd.platform.qgc_base.domain.SdOpinfoBH; /** * 倾斜摄影管理 Service 接口 * * @author migration */ -public interface IMsObliqueImageBService extends IService { +public interface IMsObliqueImageBService extends IService { /** * 条件过滤数据列表(Kendo 数据源) - * - * @param dataSourceRequest 数据源请求 - * @return 数据源结果 */ - DataSourceResult getKendoList(DataSourceRequest dataSourceRequest); + DataSourceResult getKendoList(DataSourceRequest dataSourceRequest); /** * 新增或修改 - * - * @param msObliqueImageB 倾斜摄影实体 */ - void addOrUpdate(MsObliqueImageB msObliqueImageB); + void addOrUpdate(SdOpinfoBH entity); /** - * 删除 - * - * @param id 主键ID + * 逻辑删除 */ - void delete(String id); -} \ No newline at end of file + void delete(String stcd); +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_sys/obliqueImage/service/impl/MsObliqueImageBServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_sys/obliqueImage/service/impl/MsObliqueImageBServiceImpl.java index a5686be2..a57bc793 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_sys/obliqueImage/service/impl/MsObliqueImageBServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_sys/obliqueImage/service/impl/MsObliqueImageBServiceImpl.java @@ -1,38 +1,37 @@ package com.yfd.platform.qgc_sys.obliqueImage.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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.DataSourceLoadOptionsBase; import com.yfd.platform.common.DataSourceRequest; import com.yfd.platform.common.DataSourceResult; +import com.yfd.platform.common.MicroservicDynamicSQLMapper; import com.yfd.platform.common.exception.BizException; import com.yfd.platform.qgc_base.domain.SdEngInfoBH; +import com.yfd.platform.qgc_base.domain.SdOpinfoBH; import com.yfd.platform.qgc_base.service.ISdEngInfoBHService; -import com.yfd.platform.qgc_sys.obliqueImage.domain.MsObliqueImageB; import com.yfd.platform.qgc_sys.obliqueImage.mapper.MsObliqueImageBMapper; import com.yfd.platform.qgc_sys.obliqueImage.service.IMsObliqueImageBService; -import com.yfd.platform.utils.DataSourceRequestUtil; import com.yfd.platform.utils.QgcQueryWrapperUtil; -import com.yfd.platform.utils.QueryWrapperUtil; import com.yfd.platform.utils.SecurityUtils; import jakarta.annotation.Resource; -import lombok.Data; import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; +import org.springframework.transaction.annotation.Transactional; -import java.util.Date; -import java.util.List; +import java.util.*; /** * 倾斜摄影管理 Service 实现类 + *

基于 SD_OPINFO_B_H 表,STTP = 'OSGB' 的数据

* * @author migration */ @Service -public class MsObliqueImageBServiceImpl extends ServiceImpl implements IMsObliqueImageBService { +public class MsObliqueImageBServiceImpl extends ServiceImpl implements IMsObliqueImageBService { @Resource private MsObliqueImageBMapper msObliqueImageBMapper; @@ -40,132 +39,213 @@ public class MsObliqueImageBServiceImpl extends ServiceImpl getKendoList(DataSourceRequest dataSourceRequest) { - // 1. 构建查询条件 + public DataSourceResult getKendoList(DataSourceRequest dataSourceRequest) { DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest(); - QueryWrapper wrapper = DataSourceRequestUtil.buildQueryWrapper( - dataSourceRequest, MsObliqueImageB.class); + String osgbSttpId = msObliqueImageBMapper.getOpgbSttpId(); + if (StrUtil.isBlank(osgbSttpId)) { + DataSourceResult empty = new DataSourceResult<>(); + empty.setData(Collections.emptyList()); + empty.setTotal(0L); + return empty; + } - // 固定条件:STTP_CODE = 'OSGB' AND IS_DELETED = 0 AND RSTCD IS NOT NULL - wrapper.eq("STTP_CODE", "OSGB"); - wrapper.eq("IS_DELETED", 0); - wrapper.isNotNull("RSTCD"); + StringBuilder sql = new StringBuilder(); + sql.append("SELECT a.STCD, a.STNM, a.STTP, a.LGTD, a.LTTD, a.ELEV, a.STLC, ") + .append("a.USFL, a.DTIN, a.ORDER_INDEX, a.RSTCD, a.BASE_ID, ") + .append("a.HBRVCD, a.RVCD, a.ADDVCD, a.URL, a.HEIGHT, a.BOUNDARY, ") + .append("a.LOCATION, a.ACCURACY, a.REMARK, a.RECORD_USER,a.RECORD_TIME, ") + .append("a.MODIFY_USER, a.MODIFY_TIME, a.IS_DELETED, ") + .append("eng.ENNM, eng.LGTD AS engLgtd, eng.LTTD AS engLttd, ") + .append("eng.BASE_ID AS engBaseId, eng.BASE_NAME, ") + .append("vsrd.RVNM AS hbrvcdName ") + .append("FROM SD_OPINFO_B_H a ") + .append("LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = a.RSTCD AND NVL(eng.IS_DELETED, 0) = 0 ") + .append("LEFT JOIN SD_HBRV_DIC hbrv ON a.HBRVCD = hbrv.HBRVCD AND NVL(hbrv.IS_DELETED, 0) = 0 ") + .append("LEFT JOIN V_SD_RVCD_DIC_TREE vsrd ON eng.REACHCD = vsrd.RVCD AND NVL(hbrv.IS_DELETED, 0) = 0 ") + .append("WHERE a.IS_DELETED = 0 ") + .append("AND a.STTP = '").append(osgbSttpId).append("' "); - // 旧系统 rvcd 字段映射到 HBRVCD 列(前端传参保持 rvcd 不变) - if (loadOptions != null) { - String rvcd = QueryWrapperUtil.getFilterFieldValue(loadOptions, "rvcd"); - if (StrUtil.isNotBlank(rvcd)) { - wrapper.eq("HBRVCD", rvcd); - } + Map paramMap = new HashMap<>(); + String filterSql = buildFilterSql(dataSourceRequest == null ? null : dataSourceRequest.getFilter(), paramMap, new int[]{0}); + if (StrUtil.isNotBlank(filterSql)) { + sql.append(" AND ").append(filterSql); } // 默认按修改时间倒序 - wrapper.orderByDesc("MODIFY_TIME"); + sql.append(" ORDER BY a.MODIFY_TIME DESC NULLS LAST"); - // 2. 分页参数处理 - Page page = loadOptions == null ? null - : (Page) QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake()); + Page page = loadOptions == null ? null + : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake()); + List list = microservicDynamicSQLMapper.pageAllListWithResultType( + page, sql.toString(), paramMap, SdOpinfoBH.class + ); - // 3. 执行查询 - Page resultPage; - if (page != null) { - resultPage = this.page(page, wrapper); - } else { - List list = this.list(wrapper); - resultPage = new Page<>(); - resultPage.setRecords(list); - resultPage.setTotal(list.size()); + DataSourceResult result = new DataSourceResult<>(); + result.setData(list); + result.setTotal(page == null ? list.size() : page.getTotal()); + return result; + } + + /** + * 递归构建过滤 SQL + */ + private String buildFilterSql(DataSourceRequest.FilterDescriptor filter, + Map paramMap, int[] indexHolder) { + if (filter == null) return ""; + + List childFilters = filter.getFilters(); + if (CollUtil.isNotEmpty(childFilters)) { + List childConditions = new ArrayList<>(); + for (DataSourceRequest.FilterDescriptor child : childFilters) { + String childSql = buildFilterSql(child, paramMap, indexHolder); + if (StrUtil.isNotBlank(childSql)) { + childConditions.add(childSql); + } + } + if (childConditions.isEmpty()) return ""; + String logic = StrUtil.isNotBlank(filter.getLogic()) ? filter.getLogic() : "and"; + String connector = "and".equalsIgnoreCase(logic) ? " AND " : " OR "; + return "(" + String.join(connector, childConditions) + ")"; } - // 4. 构建结果 - DataSourceResult dataSourceResult = new DataSourceResult<>(); - dataSourceResult.setData(resultPage.getRecords()); - dataSourceResult.setTotal(resultPage.getTotal()); - return dataSourceResult; + String field = filter.getField(); + Object value = filter.getValue(); + String operator = filter.getOperator(); + + if (StrUtil.isBlank(field)) return ""; + + String column = mapToColumn(field); + if (StrUtil.isBlank(column)) return ""; + + if ("isnull".equalsIgnoreCase(operator)) return column + " IS NULL"; + if ("isnotnull".equalsIgnoreCase(operator)) return column + " IS NOT NULL"; + if (value == null) return ""; + + String paramKey = "p" + indexHolder[0]++; + paramMap.put(paramKey, value); + + if ("eq".equalsIgnoreCase(operator)) { + return column + " = #{map." + paramKey + "}"; + } else if ("neq".equalsIgnoreCase(operator)) { + return column + " != #{map." + paramKey + "}"; + } else if ("contains".equalsIgnoreCase(operator)) { + return column + " LIKE '%' || #{map." + paramKey + "} || '%'"; + } else if ("startswith".equalsIgnoreCase(operator)) { + return column + " LIKE #{map." + paramKey + "} || '%'"; + } else if ("endswith".equalsIgnoreCase(operator)) { + return column + " LIKE '%' || #{map." + paramKey + "}"; + } else if ("gt".equalsIgnoreCase(operator)) { + return column + " > #{map." + paramKey + "}"; + } else if ("gte".equalsIgnoreCase(operator)) { + return column + " >= #{map." + paramKey + "}"; + } else if ("lt".equalsIgnoreCase(operator)) { + return column + " < #{map." + paramKey + "}"; + } else if ("lte".equalsIgnoreCase(operator)) { + return column + " <= #{map." + paramKey + "}"; + } else if ("in".equalsIgnoreCase(operator)) { + return column + " IN (#{map." + paramKey + "})"; + } + return ""; + } + + /** + * 前端字段名 -> SQL 列名映射 + */ + private String mapToColumn(String field) { + if (StrUtil.isBlank(field)) return null; + return switch (field) { + case "stcd" -> "a.STCD"; + case "stnm" -> "a.STNM"; + case "rstcd" -> "a.RSTCD"; + case "ennm" -> "eng.ENNM"; + case "baseId" -> "a.BASE_ID"; + case "baseName" -> "eng.BASE_NAME"; + // 旧系统 rvcd 字段映射到 HBRVCD 列(保持兼容) + case "rvcd" -> "a.HBRVCD"; + case "hbrvcd" -> "vsrd.RVCD"; + case "url" -> "a.URL"; + case "remark" -> "a.REMARK"; + case "modifyTime" -> "a.MODIFY_TIME"; + case "usfl" -> "a.USFL"; + default -> null; + }; } @Override - public void addOrUpdate(MsObliqueImageB msObliqueImageB) { - if (StrUtil.isNotBlank(msObliqueImageB.getRstcd())){ - - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(StrUtil.isNotBlank(msObliqueImageB.getRstcd()), SdEngInfoBH::getStcd, msObliqueImageB.getRstcd()) - .eq(SdEngInfoBH::getIsDeleted, 0) - .select(SdEngInfoBH::getLgtd, SdEngInfoBH::getLttd, SdEngInfoBH::getBaseId, SdEngInfoBH::getBaseName) - .orderByAsc(SdEngInfoBH::getBaseId, SdEngInfoBH::getOrderIndex); - SdEngInfoBH sdEngInfoBH = engInfoBHService.getOne(wrapper); - if (sdEngInfoBH.getLgtd() != null){ - msObliqueImageB.setLgtd(sdEngInfoBH.getLgtd()); - } - if (sdEngInfoBH.getLttd() != null){ - msObliqueImageB.setLttd(sdEngInfoBH.getLttd()); - } - if (StrUtil.isNotBlank(sdEngInfoBH.getBaseName())){ - msObliqueImageB.setBaseName(sdEngInfoBH.getBaseName()); - } - if (StrUtil.isNotBlank(sdEngInfoBH.getBaseId())){ - msObliqueImageB.setBaseId(sdEngInfoBH.getBaseId()); - } - - } - - if (StrUtil.isBlank(msObliqueImageB.getId())) { - addMsObliqueImageB(msObliqueImageB); - } else { - updateMsObliqueImageB(msObliqueImageB); - } - } - - @Override - public void delete(String id) { - msObliqueImageBMapper.deleteById(id); - } - - private void addMsObliqueImageB(MsObliqueImageB msObliqueImageB) { - // 查询新增的倾斜摄影是否已存在 - String rstcd = msObliqueImageB.getRstcd(); - if (StrUtil.isBlank(rstcd)) { + @Transactional(rollbackFor = Exception.class) + public void addOrUpdate(SdOpinfoBH entity) { + if (StrUtil.isBlank(entity.getRstcd())) { throw new BizException("电站不能为空"); } - String id = "OSGB_" + rstcd; - MsObliqueImageB old = msObliqueImageBMapper.selectById(id); - if (old != null) { - throw new BizException("该电站已存在倾斜摄影"); + + // 查询电站信息补充经纬度和基地信息 + SdEngInfoBH engInfo = engInfoBHService.lambdaQuery() + .eq(SdEngInfoBH::getStcd, entity.getRstcd()) + .eq(SdEngInfoBH::getIsDeleted, 0) + .select(SdEngInfoBH::getLgtd, SdEngInfoBH::getLttd, + SdEngInfoBH::getBaseId, SdEngInfoBH::getBaseName) + .one(); + if (engInfo == null) { + throw new BizException("电站不存在:" + entity.getRstcd()); } - msObliqueImageB.setSttpCode("OSGB"); - msObliqueImageB.setSttpName("倾斜摄影"); - if (StrUtil.isBlank(msObliqueImageB.getRvcd())) { - msObliqueImageB.setRvcd(msObliqueImageB.getHbrvcd()); + if (engInfo.getLgtd() != null) { + entity.setLgtd(engInfo.getLgtd()); } - if (StrUtil.isBlank(msObliqueImageB.getRvcdName())) { - msObliqueImageB.setRvcdName(msObliqueImageB.getHbrvcdName()); + if (engInfo.getLttd() != null) { + entity.setLttd(engInfo.getLttd()); } - msObliqueImageB.setStcd("OSGB_" + msObliqueImageB.getRstcd()); - msObliqueImageB.setId("OSGB_" + msObliqueImageB.getRstcd()); - msObliqueImageB.setSttpFullPath("OSGB,"); - msObliqueImageB.setSttpTreeLevel(1); - String sttp = msObliqueImageBMapper.getSttp(); - if (StrUtil.isBlank(sttp)) { + if (StrUtil.isNotBlank(engInfo.getBaseId())) { + entity.setBaseId(engInfo.getBaseId()); + } + + // 获取 OSGB 对应的 STTP ID + String osgbSttpId = msObliqueImageBMapper.getOpgbSttpId(); + if (StrUtil.isBlank(osgbSttpId)) { throw new BizException("倾斜摄影对应的sttp在SD_STTP_B中找不到"); } - msObliqueImageB.setSttp(sttp); - // 设置通用字段 + entity.setSttp(osgbSttpId); + + // 生成 ID 和 STCD + String stcd = "OSGB_" + entity.getRstcd(); + entity.setStcd(stcd); + + long count = this.count(new LambdaQueryWrapper().eq(SdOpinfoBH::getStcd, stcd)); + String userId = currentUserIdOrSystem(); - msObliqueImageB.setRecordUser(userId); - Date now = new java.util.Date(); - msObliqueImageB.setModifyTime(now); - msObliqueImageB.setModifyUser(userId); - msObliqueImageB.setIsDeleted(0); - msObliqueImageBMapper.insert(msObliqueImageB); + Date now = new Date(); + + if (count==0) { + entity.setRecordUser(userId); + entity.setRecordTime(now); + entity.setModifyUser(userId); + entity.setModifyTime(now); + entity.setIsDeleted(0); + this.save(entity); + } else { + entity.setModifyUser(userId); + entity.setModifyTime(now); + this.updateById(entity); + } } - private void updateMsObliqueImageB(MsObliqueImageB msObliqueImageB) { - String userId = currentUserIdOrSystem(); - msObliqueImageB.setModifyUser(userId); - msObliqueImageB.setModifyTime(new java.util.Date()); - this.updateById(msObliqueImageB); + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String stcd) { + msObliqueImageBMapper.deleteById(stcd); + // id 即 stcd +// LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); +// wrapper.eq(SdOpinfoBH::getStcd, stcd); +// wrapper.set(SdOpinfoBH::getIsDeleted, 1); +// wrapper.set(SdOpinfoBH::getDeleteUser, SecurityUtils.getCurrentUsername()); +// wrapper.set(SdOpinfoBH::getDeleteTime, new Date()); +// if (!this.update(wrapper)) { +// throw new BizException("删除失败:" + stcd); +// } } private String currentUserIdOrSystem() { @@ -175,4 +255,4 @@ public class MsObliqueImageBServiceImpl extends ServiceImpl result = msThreedRoamMService.getKendoListCustReturn(dataSourceRequest); + userNameFillHelper.fillUserNames(result.getData()); return ResponseResult.successData(result); } diff --git a/backend/src/main/java/com/yfd/platform/qgc_sys/threedRoam/domain/MsThreedRoamMEntity.java b/backend/src/main/java/com/yfd/platform/qgc_sys/threedRoam/domain/MsThreedRoamMEntity.java index 28c28121..526a5180 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_sys/threedRoam/domain/MsThreedRoamMEntity.java +++ b/backend/src/main/java/com/yfd/platform/qgc_sys/threedRoam/domain/MsThreedRoamMEntity.java @@ -1,6 +1,8 @@ package com.yfd.platform.qgc_sys.threedRoam.domain; import com.baomidou.mybatisplus.annotation.*; +import com.yfd.platform.annotation.UserIdField; +import com.yfd.platform.annotation.UserNameField; import lombok.Data; import java.io.Serializable; @@ -34,8 +36,13 @@ public class MsThreedRoamMEntity implements Serializable { private String remark; @TableField(value = "RECORD_USER",fill = FieldFill.INSERT) + @UserIdField private String recordUser; + @TableField(exist = false) + @UserNameField + private String recordUserName; + @TableField(value = "RECORD_TIME",fill = FieldFill.INSERT) private Date recordTime; diff --git a/backend/src/main/java/com/yfd/platform/qgc_sys/threedRoam/service/impl/MsThreedRoamMServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_sys/threedRoam/service/impl/MsThreedRoamMServiceImpl.java index e7602266..fbef37ff 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_sys/threedRoam/service/impl/MsThreedRoamMServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_sys/threedRoam/service/impl/MsThreedRoamMServiceImpl.java @@ -23,6 +23,7 @@ import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.BeanUtils; +import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @@ -48,6 +49,7 @@ public class MsThreedRoamMServiceImpl extends ServiceImpl getKendoListCustReturn(DataSourceRequest dataSourceRequest) { DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest(); @@ -67,8 +69,8 @@ public class MsThreedRoamMServiceImpl extends ServiceImpl page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake()); List list = microservicDynamicSQLMapper.pageAllListWithResultType( @@ -82,6 +84,31 @@ public class MsThreedRoamMServiceImpl extends ServiceImpl sorts) { + if (CollUtil.isEmpty(sorts)) { + return " ORDER BY a.CODE ASC"; + } + List orderByParts = new ArrayList<>(); + for (DataSourceRequest.SortDescriptor sort : sorts) { + if (sort == null || StrUtil.isBlank(sort.getField())) { + continue; + } + String column = mapToListColumn(sort.getField()); + if (StrUtil.isBlank(column)) { + continue; + } + String direction = "desc".equalsIgnoreCase(sort.getDir()) ? "DESC" : "ASC"; + orderByParts.add(column + " " + direction + " NULLS LAST"); + } + if (orderByParts.isEmpty()) { + return " ORDER BY a.CODE ASC"; + } + return " ORDER BY " + String.join(", ", orderByParts); + } + + + /** * 递归构建过滤 SQL */ @@ -141,6 +168,8 @@ public class MsThreedRoamMServiceImpl extends ServiceImpl "a.NAME"; case "rvcd" -> "a.RVCD"; case "remark" -> "a.REMARK"; + case "modifyTime" -> "a.MODIFY_TIME"; + case "recordTime" -> "a.RECORD_TIME"; default -> null; }; } @@ -239,6 +268,10 @@ public class MsThreedRoamMServiceImpl extends ServiceImpl 0; } + + /** 时间缩放系数 */ + private static final BigDecimal TIME_SCALE = new BigDecimal("0.2"); + @Override public MsThreedRoamBVO getThreedRoamData(DataSourceRequest dataSourceRequest) { DataSourceLoadOptionsBase loadOptions = dataSourceRequest.toDevRequest(); @@ -255,22 +288,34 @@ public class MsThreedRoamMServiceImpl extends ServiceImpl threedRoamList = msThreedRoamMapper.selectList(wrapper); - BigDecimal totalTime = BigDecimal.ZERO; - List lists = new ArrayList<>(); - String baseCode = ""; + if (CollUtil.isEmpty(threedRoamList)) { + MsThreedRoamBVO empty = new MsThreedRoamBVO(); + empty.setList(Collections.emptyList()); + empty.setTotalTime(BigDecimal.ZERO); + empty.setCode(""); + empty.setMilestoneList(Collections.emptyList()); + return empty; + } + + int size = threedRoamList.size(); + // 每条记录输出4个元素(总时间+经度+纬度+高程),预分配避免扩容 + List lists = new ArrayList<>(size * 4); List milestoneList = new ArrayList<>(); - List stcdList = new ArrayList<>(); + // HashSet O(1) 去重,避免 ArrayList.contains() 的 O(n) 查找 + Set stcdSet = new HashSet<>(); + + BigDecimal totalTime = BigDecimal.ZERO; + String baseCode = ""; for (MsThreedRoamEntity detail : threedRoamList) { - totalTime = totalTime.add(detail.getTime().multiply(new BigDecimal("0.2"))); + totalTime = totalTime.add(detail.getTime().multiply(TIME_SCALE)); lists.add(totalTime); lists.add(detail.getLgtd()); lists.add(detail.getLttd()); lists.add(detail.getDtmel()); baseCode = detail.getCode(); - if (StrUtil.isNotBlank(detail.getStcd()) && !stcdList.contains(detail.getStnm())) { - stcdList.add(detail.getStnm()); + if (StrUtil.isNotBlank(detail.getStcd()) && stcdSet.add(detail.getStnm())) { milestoneList.add(new String[]{detail.getStnm(), totalTime.toString()}); } } diff --git a/backend/src/main/java/com/yfd/platform/system/controller/DataSourceController.java b/backend/src/main/java/com/yfd/platform/system/controller/DataSourceController.java index b34b37ce..5fab81f7 100644 --- a/backend/src/main/java/com/yfd/platform/system/controller/DataSourceController.java +++ b/backend/src/main/java/com/yfd/platform/system/controller/DataSourceController.java @@ -1,42 +1,43 @@ package com.yfd.platform.system.controller; import com.yfd.platform.config.ResponseResult; -import com.yfd.platform.datasource.DataSource; -import com.yfd.platform.datasource.DataSourceAspect; +import com.yfd.platform.datasource.DataSourceKeys; +import com.yfd.platform.datasource.DynamicDataSource; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import jakarta.annotation.Resource; - /** - * @author zhengsl - * @since 2022-09-20 + * 数据源切换控制器 */ @RestController @RequestMapping("/system") @Tag(name = "切换数据库") public class DataSourceController { - @Resource - DataSourceAspect dataSourceAspect; - /** - * 切换数据库 - * - * @DataSource(name="master") 可以通过注解方式切换数据库 + * 手动切换数据源(当前线程有效) + *

+ * 支持的 dataSourceKey: + *

    + *
  • "dm-master" / "dm-slave" — 达梦数据库
  • + *
  • "oracle-master" / "oracle-slave" — Oracle 数据库
  • + *
+ * 注意:此方法仅对当前请求线程生效,且必须在被 @TargetDataSource 注解的方法中使用才会真正路由。 + * 建议使用 @TargetDataSource 注解方式切换数据源。 */ @GetMapping("/changeDataSource") @Operation(summary = "切换数据库") - public ResponseResult changeDataSource(Integer type) { + @Deprecated + public ResponseResult changeDataSource(@RequestParam(required = false) Integer type) { if (type == null) { return ResponseResult.error("参数为空"); } - String dataBase = dataSourceAspect.getDataBase(type); - String mess = "已切换为" + dataBase + "数据库"; - return ResponseResult.success(mess); + String dataSourceKey = (type == 1) ? DataSourceKeys.DM_MASTER : DataSourceKeys.DM_SLAVE; + DynamicDataSource.setDataSource(dataSourceKey); + return ResponseResult.success("已切换为" + dataSourceKey + "数据源"); } - } diff --git a/backend/src/main/java/com/yfd/platform/system/controller/SmsVerifyCodeController.java b/backend/src/main/java/com/yfd/platform/system/controller/SmsVerifyCodeController.java index 8854e2fb..5bf84847 100644 --- a/backend/src/main/java/com/yfd/platform/system/controller/SmsVerifyCodeController.java +++ b/backend/src/main/java/com/yfd/platform/system/controller/SmsVerifyCodeController.java @@ -220,6 +220,7 @@ public class SmsVerifyCodeController { user.setStatus(0); user.setOrgid("e90063ced25e3d469860e88d920c082f"); user.setUsertype(1); + user.setTenantId(tenantId); user.setUsername(smsVerifyCodeRequest.getUsername()); user.setGroupCode(smsVerifyCodeRequest.getGroupCode()); user.setCompanyCode(smsVerifyCodeRequest.getCompanyCode()); diff --git a/backend/src/main/java/com/yfd/platform/system/service/impl/UserDetailsServiceImpl.java b/backend/src/main/java/com/yfd/platform/system/service/impl/UserDetailsServiceImpl.java index 77506150..b860f0bd 100644 --- a/backend/src/main/java/com/yfd/platform/system/service/impl/UserDetailsServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/system/service/impl/UserDetailsServiceImpl.java @@ -4,6 +4,8 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.yfd.platform.datasource.DataSource; +import com.yfd.platform.datasource.DataSourceKeys; +import com.yfd.platform.datasource.TargetDataSource; import com.yfd.platform.system.domain.LoginUser; import com.yfd.platform.system.domain.SysUser; import com.yfd.platform.system.mapper.SysMenuMapper; @@ -38,7 +40,7 @@ public class UserDetailsServiceImpl implements UserDetailsService { private SysMenuMapper sysMenuMapper; @Override - @DataSource(name = "master") + @TargetDataSource() public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { // 获取当前请求 ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); diff --git a/backend/src/main/java/com/yfd/platform/system/service/impl/UserServiceImpl.java b/backend/src/main/java/com/yfd/platform/system/service/impl/UserServiceImpl.java index cc11fb14..a50a6d83 100644 --- a/backend/src/main/java/com/yfd/platform/system/service/impl/UserServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/system/service/impl/UserServiceImpl.java @@ -135,6 +135,9 @@ public class UserServiceImpl extends ServiceImpl impleme List roles = sysRoleMapper.getRoleByUserId(user.getId()); List collect = roles.stream().map(SysRole::getRolename).collect(Collectors.toList()); + if(user.getUsertype()==0){ + collect.add("超级管理员"); + } ResponseResult responseResult = new ResponseResult(); responseResult.put("userInfo", userInfo); responseResult.put("roles", collect); diff --git a/backend/src/main/resources/application-dev.yml b/backend/src/main/resources/application-dev.yml index ccbcb104..31f5159d 100644 --- a/backend/src/main/resources/application-dev.yml +++ b/backend/src/main/resources/application-dev.yml @@ -8,16 +8,30 @@ spring: datasource: type: com.alibaba.druid.pool.DruidDataSource druid: - master: + # ==================== 达梦(DM) 数据源 ==================== + dm-master: driverClassName: dm.jdbc.driver.DmDriver - url: "${DB_MASTER_URL:jdbc:dm://localhost:5236/WPPDB}" - username: "${DB_MASTER_USERNAME:WPPDB}" - password: "${DB_MASTER_PASSWORD:}" - slave: + url: "${DB_DM_MASTER_URL:jdbc:dm://localhost:5236/WPPDB}" + username: "${DB_DM_MASTER_USERNAME:WPPDB}" + password: "${DB_DM_MASTER_PASSWORD:}" + dm-slave: driverClassName: dm.jdbc.driver.DmDriver - url: "${DB_SLAVE_URL:jdbc:dm://localhost:5236/WPPDB}" - username: "${DB_SLAVE_USERNAME:WPPDB}" - password: "${DB_SLAVE_PASSWORD:}" + url: "${DB_DM_SLAVE_URL:jdbc:dm://localhost:5236/WPPDB}" + username: "${DB_DM_SLAVE_USERNAME:WPPDB}" + password: "${DB_DM_SLAVE_PASSWORD:}" + # ==================== Oracle 数据源 ==================== + oracle-master: + driverClassName: oracle.jdbc.OracleDriver + url: "${DB_ORACLE_MASTER_URL:jdbc:oracle:thin:@localhost:1521/ORCL}" + username: "${DB_ORACLE_MASTER_USERNAME:}" + password: "${DB_ORACLE_MASTER_PASSWORD:}" + connection-properties: oracle.net.CONNECT_TIMEOUT=10000;oracle.jdbc.ReadTimeout=60000;oracle.net.READ_TIMEOUT=60000 + oracle-slave: + driverClassName: oracle.jdbc.OracleDriver + url: "${DB_ORACLE_SLAVE_URL:jdbc:oracle:thin:@localhost:1521/ORCL}" + username: "${DB_ORACLE_SLAVE_USERNAME:}" + password: "${DB_ORACLE_SLAVE_PASSWORD:}" + connection-properties: oracle.net.CONNECT_TIMEOUT=10000;oracle.jdbc.ReadTimeout=60000;oracle.net.READ_TIMEOUT=60000 mvc: pathmatch: diff --git a/backend/src/main/resources/application-prod.yml b/backend/src/main/resources/application-prod.yml index cc37ba65..f7005940 100644 --- a/backend/src/main/resources/application-prod.yml +++ b/backend/src/main/resources/application-prod.yml @@ -10,13 +10,12 @@ spring: datasource: type: com.alibaba.druid.pool.DruidDataSource druid: - master: -# driverClassName: oracle.jdbc.OracleDriver -# url: "${DB_MASTER_URL:jdbc:oracle:thin:@172.16.31.190:1521/SDLYZ}" + # ==================== 达梦(DM) 数据源 ==================== + dm-master: driverClassName: dm.jdbc.driver.DmDriver - url: "${DB_MASTER_URL:jdbc:dm://172.16.21.143:5236/QGC_REFA}" - username: "${DB_MASTER_USERNAME:QGC_REFA}" - password: "${DB_MASTER_PASSWORD:Y4M4K1oCkL8U}" + url: "${DB_DM_MASTER_URL:jdbc:dm://172.16.21.143:5236/QGC_REFA}" + username: "${DB_DM_MASTER_USERNAME:QGC_REFA}" + password: "${DB_DM_MASTER_PASSWORD:Y4M4K1oCkL8U}" initial-size: 5 min-idle: 5 max-active: 20 @@ -41,15 +40,11 @@ spring: pool-prepared-statements: true max-open-prepared-statements: 100 max-pool-prepared-statement-per-connection-size: 100 - connection-properties: connectTimeout=10000;oracle.jdbc.ReadTimeout=60000;oracle.net.READ_TIMEOUT=60000 -# connection-properties: oracle.net.CONNECT_TIMEOUT=10000;oracle.jdbc.ReadTimeout=60000;oracle.net.READ_TIMEOUT=60000 - slave: + dm-slave: driverClassName: dm.jdbc.driver.DmDriver - url: "${DB_MASTER_URL:jdbc:dm://172.16.21.143:5236/QGC_REFA}" -# driverClassName: oracle.jdbc.OracleDriver -# url: "${DB_SLAVE_URL:jdbc:oracle:thin:@172.16.31.190:1521/SDLYZ}" - username: "${DB_SLAVE_USERNAME:QGC_REFA}" - password: "${DB_SLAVE_PASSWORD:Y4M4K1oCkL8U}" + url: "${DB_DM_SLAVE_URL:jdbc:dm://172.16.21.143:5236/QGC_REFA}" + username: "${DB_DM_SLAVE_USERNAME:QGC_REFA}" + password: "${DB_DM_SLAVE_PASSWORD:Y4M4K1oCkL8U}" initial-size: 5 min-idle: 5 max-active: 20 @@ -74,8 +69,67 @@ spring: pool-prepared-statements: true max-open-prepared-statements: 100 max-pool-prepared-statement-per-connection-size: 100 - connection-properties: connectTimeout=10000;oracle.jdbc.ReadTimeout=60000;oracle.net.READ_TIMEOUT=60000 -# connection-properties: oracle.net.CONNECT_TIMEOUT=10000;oracle.jdbc.ReadTimeout=60000;oracle.net.READ_TIMEOUT=60000 + # ==================== Oracle 数据源 ==================== + oracle-master: + driverClassName: oracle.jdbc.OracleDriver + url: "${DB_ORACLE_MASTER_URL:jdbc:oracle:thin:@172.16.31.172:1521/SDLYZ}" + username: "${DB_ORACLE_MASTER_USERNAME:SDLY_QX}" + password: "${DB_ORACLE_MASTER_PASSWORD:jNHnqv3hH7}" + initial-size: 5 + min-idle: 5 + max-active: 20 + max-wait: 30000 + async-init: true + keep-alive-between-time-millis: 120000 + time-between-eviction-runs-millis: 60000 + min-evictable-idle-time-millis: 180000 + max-evictable-idle-time-millis: 300000 + phy-timeout-millis: 25200000 + validation-query: SELECT 1 FROM DUAL + validation-query-timeout: 3 + test-while-idle: true + test-on-borrow: false + test-on-return: false + keep-alive: true + remove-abandoned: true + remove-abandoned-timeout: 1800 + log-abandoned: true + break-after-acquire-failure: true + time-between-connect-error-millis: 30000 + pool-prepared-statements: true + max-open-prepared-statements: 100 + max-pool-prepared-statement-per-connection-size: 100 + connection-properties: oracle.net.CONNECT_TIMEOUT=10000;oracle.jdbc.ReadTimeout=60000;oracle.net.READ_TIMEOUT=60000 + oracle-slave: + driverClassName: oracle.jdbc.OracleDriver + url: "${DB_ORACLE_SLAVE_URL:jdbc:oracle:thin:@172.16.31.172:1521/SDLYZ}" + username: "${DB_ORACLE_SLAVE_USERNAME:SDLY_QX}" + password: "${DB_ORACLE_SLAVE_PASSWORD:jNHnqv3hH7}" + initial-size: 5 + min-idle: 5 + max-active: 20 + max-wait: 30000 + async-init: true + keep-alive-between-time-millis: 120000 + time-between-eviction-runs-millis: 60000 + min-evictable-idle-time-millis: 180000 + max-evictable-idle-time-millis: 300000 + phy-timeout-millis: 25200000 + validation-query: SELECT 1 FROM DUAL + validation-query-timeout: 3 + test-while-idle: true + test-on-borrow: false + test-on-return: false + keep-alive: true + remove-abandoned: true + remove-abandoned-timeout: 1800 + log-abandoned: true + break-after-acquire-failure: true + time-between-connect-error-millis: 30000 + pool-prepared-statements: true + max-open-prepared-statements: 100 + max-pool-prepared-statement-per-connection-size: 100 + connection-properties: oracle.net.CONNECT_TIMEOUT=10000;oracle.jdbc.ReadTimeout=60000;oracle.net.READ_TIMEOUT=60000 filter: stat: enabled: true diff --git a/backend/src/main/resources/mapper/system/MsUsercolumnBMapper.xml b/backend/src/main/resources/mapper/system/MsUsercolumnBMapper.xml new file mode 100644 index 00000000..14819390 --- /dev/null +++ b/backend/src/main/resources/mapper/system/MsUsercolumnBMapper.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + DELETE FROM MS_USERCOLUMN_B + WHERE CFG_ID = #{cfgId} + + AND RECORD_USER = #{recordUser} + + + + + + + + + +