头中提取
+ *
+ * @param request HTTP 请求
+ * @return token 字符串,解析失败返回 null
+ */
+ public String resolveToken(HttpServletRequest request) {
+ String authHeader = request.getHeader("Authorization");
+ if (StrUtil.isBlank(authHeader)) {
+ return null;
+ }
+
+ // 支持 "Bearer xxx" 和 "bearer xxx" 格式
+ String trimmed = authHeader.trim();
+ if (trimmed.length() > 7
+ && "bearer".equalsIgnoreCase(trimmed.substring(0, 6))
+ && trimmed.charAt(6) == ' ') {
+ return trimmed.substring(7).trim();
+ }
+
+ return null;
+ }
+
+ /**
+ * 刷新 token 有效期(延长使用时间)
+ *
+ * @param token Bearer Token
+ */
+ public void refreshToken(String token) {
+ if (StrUtil.isBlank(token)) return;
+ String cacheValue = webConfig.loginuserCache().get(CACHE_PREFIX + token);
+ if (StrUtil.isBlank(cacheValue)) return;
+
+ JSONObject payload = JSON.parseObject(cacheValue);
+ long newExpireAt = System.currentTimeMillis() + DEFAULT_EXPIRE_MILLIS;
+ payload.put("expireAt", newExpireAt);
+ webConfig.loginuserCache().put(CACHE_PREFIX + token, payload.toJSONString(), DEFAULT_EXPIRE_MILLIS);
+ }
+
+ /**
+ * 撤销 token
+ *
+ * @param token Bearer Token
+ */
+ public void revokeToken(String token) {
+ if (StrUtil.isNotBlank(token)) {
+ webConfig.loginuserCache().remove(CACHE_PREFIX + token);
+ log.info("Bearer Token 已撤销");
+ }
+ }
+
+ private String getClientIp(HttpServletRequest request) {
+ String ip = request.getHeader("X-Forwarded-For");
+ if (StrUtil.isNotBlank(ip)) {
+ return ip.split(",")[0].trim();
+ }
+ return request.getRemoteAddr();
+ }
+
+ private String maskToken(String token) {
+ if (token == null || token.length() <= 8) return "***";
+ return token.substring(0, 4) + "***" + token.substring(token.length() - 4);
+ }
+
+ /**
+ * Bearer Token 创建结果
+ */
+ public static class BearerTokenResult {
+ /** 访问令牌 */
+ private String accessToken;
+ /** 令牌类型 */
+ private String tokenType;
+ /** 有效期(秒) */
+ private long expiresIn;
+ /** 过期时间戳 */
+ private long expireAt;
+
+ public String getAccessToken() { return accessToken; }
+ public void setAccessToken(String accessToken) { this.accessToken = accessToken; }
+ public String getTokenType() { return tokenType; }
+ public void setTokenType(String tokenType) { this.tokenType = tokenType; }
+ public long getExpiresIn() { return expiresIn; }
+ public void setExpiresIn(long expiresIn) { this.expiresIn = expiresIn; }
+ public long getExpireAt() { return expireAt; }
+ public void setExpireAt(long expireAt) { this.expireAt = expireAt; }
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/config/OAuth2TokenController.java b/backend/src/main/java/com/yfd/platform/config/OAuth2TokenController.java
new file mode 100644
index 00000000..a4b04149
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/config/OAuth2TokenController.java
@@ -0,0 +1,127 @@
+package com.yfd.platform.config;
+
+import cn.hutool.core.util.StrUtil;
+import com.yfd.platform.config.BearerTokenService.BearerTokenResult;
+import jakarta.annotation.Resource;
+import jakarta.servlet.http.HttpServletRequest;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.nio.charset.StandardCharsets;
+import java.util.Base64;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * OAuth2 Token 端点
+ *
+ * 供外部系统通过 client_credentials 模式获取 Bearer Token。
+ *
+ *
请求格式(参考 鉴权与文件上传接口说明.md 3.2 节):
+ *
+ * POST /oauth2/token
+ * Content-Type: application/x-www-form-urlencoded
+ * Authorization: Basic
+ *
+ * grant_type=client_credentials
+ *
+ *
+ * 返回格式:
+ *
+ * {
+ * "success": true,
+ * "errorCode": 0,
+ * "message": "获取token成功",
+ * "data": {
+ * "access_token": "xxx",
+ * "token_type": "bearer",
+ * "expires_in": 7200
+ * }
+ * }
+ *
+ */
+@RestController
+@RequestMapping("/api/oauth2")
+public class OAuth2TokenController {
+
+ private static final Logger log = LoggerFactory.getLogger(OAuth2TokenController.class);
+
+ @Resource
+ private BearerTokenService bearerTokenService;
+
+ /**
+ * 获取 Access Token(client_credentials 模式)
+ */
+ @PostMapping("/oauth/token")
+ public Map getToken(HttpServletRequest request) {
+ Map result = new HashMap<>();
+
+ // 解析 Authorization: Basic
+ String authHeader = request.getHeader("Authorization");
+ if (StrUtil.isBlank(authHeader) || !authHeader.trim().toLowerCase().startsWith("basic ")) {
+ log.warn("获取 Token 失败: 缺少有效的 Basic Authorization 头");
+ result.put("success", false);
+ result.put("errorCode", -1);
+ result.put("message", "缺少有效的 Authorization: Basic 认证信息");
+ return result;
+ }
+
+ String clientId = resolveClientId(authHeader);
+ if (StrUtil.isBlank(clientId)|| !"client:secret".equals(clientId)) {
+ log.warn("获取 Token 失败: 无法解析 client");
+ result.put("success", false);
+ result.put("errorCode", -1);
+ result.put("message", "无法解析客户端标识");
+ return result;
+ }
+
+ // 验证 grant_type
+ String grantType = request.getParameter("grant_type");
+ if (StrUtil.isBlank(grantType) || !"client_credentials".equals(grantType)) {
+ log.warn("获取 Token 失败: 不支持的 grant_type={}", grantType);
+ result.put("success", false);
+ result.put("errorCode", -1);
+ // 仅支持 client_credentials 授权模式
+ result.put("message", "授权模式错误");
+ return result;
+ }
+
+ BearerTokenResult tokenResult = bearerTokenService.createToken(request, clientId);
+
+ Map data = new HashMap<>();
+ data.put("access_token", tokenResult.getAccessToken());
+ data.put("token_type", tokenResult.getTokenType());
+ data.put("expires_in", tokenResult.getExpiresIn());
+
+ result.put("success", true);
+ result.put("errorCode", 0);
+ result.put("message", "获取token成功");
+ result.put("data", data);
+
+ log.info("OAuth2 Token 签发成功, clientId={}", clientId);
+ return result;
+ }
+
+ /**
+ * 从 Authorization: Basic 头中解析 client
+ */
+ private String resolveClientId(String authHeader) {
+ try {
+ String base64 = authHeader.substring(6).trim();
+ byte[] decoded = Base64.getDecoder().decode(base64);
+ // // 格式: client:secret
+// int colonIdx = credentials.indexOf(':');
+// if (colonIdx > 0) {
+// return credentials.substring(0, colonIdx);
+// }
+ return new String(decoded, StandardCharsets.UTF_8);
+ } catch (Exception e) {
+ log.warn("解析 Basic 认证信息失败: {}", e.getMessage());
+ return null;
+ }
+ }
+
+}
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 10545b04..e22f5087 100644
--- a/backend/src/main/java/com/yfd/platform/config/SecurityConfig.java
+++ b/backend/src/main/java/com/yfd/platform/config/SecurityConfig.java
@@ -42,6 +42,9 @@ public class SecurityConfig {
@Autowired
private RegisterAccessTokenFilter registerAccessTokenFilter;
+ @Autowired
+ private BearerTokenFilter bearerTokenFilter;
+
@Autowired
private AuthenticationException authenticationException;
@@ -60,7 +63,8 @@ public class SecurityConfig {
.requestMatchers("/data/fishDraft/previewFile").permitAll()
.requestMatchers("/tempFile/**").permitAll()
.requestMatchers("/system/user/auditUser").permitAll()
- .requestMatchers("/register/accessToken").permitAll()
+ .requestMatchers("/api/oauth2/oauth/token").permitAll()
+ .requestMatchers("/dict/cache/**").permitAll()
.requestMatchers("/sys/psbmodulelbb/**").permitAll()
.requestMatchers("/base/operationLog/**").permitAll()
// .requestMatchers("/eng/**").permitAll()
@@ -115,6 +119,7 @@ public class SecurityConfig {
.cors(cors -> {});
http.addFilterBefore(registerAccessTokenFilter, UsernamePasswordAuthenticationFilter.class);
+ http.addFilterBefore(bearerTokenFilter, UsernamePasswordAuthenticationFilter.class);
http.addFilterBefore(jwtAuthenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);
http.exceptionHandling(ex -> ex
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdEngInfoBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdEngInfoBHController.java
index 798ab6d7..089ef503 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdEngInfoBHController.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdEngInfoBHController.java
@@ -2,6 +2,7 @@ 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.DynamicDictEvict;
import com.yfd.platform.annotation.Log;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.config.ResponseResult;
@@ -104,6 +105,7 @@ public class SdEngInfoBHController {
@Log(module = "电站管理", value = "新增电站")
@PostMapping("/add")
@Operation(summary = "新增电站")
+ @DynamicDictEvict(tableName = "SD_ENGINFO_B_H", codeColumn = "STCD", nameColumn = "ENNM")
public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) {
SdEngInfoBH engInfo = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdEngInfoBH.class);
boolean result = engInfoBHService.addEngInfo(engInfo, request.getSource());
@@ -113,6 +115,7 @@ public class SdEngInfoBHController {
@Log(module = "电站管理", value = "修改电站")
@PostMapping("/update")
@Operation(summary = "修改电站")
+ @DynamicDictEvict(tableName = "SD_ENGINFO_B_H", codeColumn = "STCD", nameColumn = "ENNM")
public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) throws Exception {
boolean result = engInfoBHService.updateEngInfo(request.getEngInfo(), request.getSource());
return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败");
@@ -121,6 +124,7 @@ public class SdEngInfoBHController {
@Log(module = "电站管理", value = "删除电站")
@PostMapping("/delete")
@Operation(summary = "删除电站")
+ @DynamicDictEvict(tableName = "SD_ENGINFO_B_H", codeColumn = "STCD", nameColumn = "ENNM")
public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) {
boolean result = engInfoBHService.deleteEngInfo(request == null ? null : request.getIds(),
request == null ? null : request.getSource());
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdFpssrlRController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdFpssrlRController.java
index ae195913..c48dca22 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdFpssrlRController.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdFpssrlRController.java
@@ -1,13 +1,14 @@
package com.yfd.platform.qgc_base.controller;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.SdFpssrlR;
-import com.yfd.platform.qgc_base.domain.SdFpssrlRAiRequest;
+import com.yfd.platform.qgc_base.domain.*;
+import com.yfd.platform.qgc_base.service.ISdFishDictoryBService;
import com.yfd.platform.qgc_base.service.ISdFpssrlRService;
import com.yfd.platform.qgc_data.service.AttachmentUploadService;
import io.swagger.v3.oas.annotations.Operation;
@@ -19,6 +20,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -41,6 +43,9 @@ public class SdFpssrlRController {
@Resource
private AttachmentUploadService attachmentUploadService;
+ @Resource
+ private ISdFishDictoryBService sdFishDictoryBService;
+
// ==================== CRUD 方法 ====================
@PostMapping("/queryPageList")
@@ -131,7 +136,14 @@ public class SdFpssrlRController {
if (requests == null || requests.isEmpty()) {
return ResponseResult.error("请求数据不能为空");
}
-
+ List list = sdFishDictoryBService.list(new LambdaQueryWrapper().eq(SdFishDictoryB::getIsDeleted, "0").select(SdFishDictoryB::getId, SdFishDictoryB::getName));
+ Map idNameMap = list.stream()
+ .filter(item -> item.getId() != null && item.getName() != null)
+ .collect(Collectors.toMap(
+ SdFishDictoryB::getName,
+ SdFishDictoryB::getId,
+ (oldValue, newValue) -> oldValue // 如果有重复 key 保留旧值(实际不会重复)
+ ));
// 逐条校验
for (int i = 0; i < requests.size(); i++) {
SdFpssrlRAiRequest req = requests.get(i);
@@ -141,16 +153,22 @@ public class SdFpssrlRController {
if (req.getStcd() == null || req.getStcd().isEmpty()) {
return ResponseResult.error("第" + (i + 1) + "条过鱼设施编码(stcd)不能为空");
}
+ if (req.getFwdx() == null || req.getFwdx().isEmpty()) {
+ return ResponseResult.error("第" + (i + 1) + "条服务对象(fwdx)不能为空");
+ }
if (req.getTm() == null) {
return ResponseResult.error("第" + (i + 1) + "条识别时间(tm)不能为空");
}
if (req.getFtp() == null || req.getFtp().isEmpty()) {
return ResponseResult.error("第" + (i + 1) + "条鱼种类(ftp)不能为空");
}
+ if (StrUtil.isNotBlank(req.getFtp())) {
+ req.setFtp(idNameMap.getOrDefault(req.getFtp(), req.getFtp()));
+ }
}
try {
- List result = sdFpssrlRService.processAiReportBatch(requests);
+ List result = sdFpssrlRService.processAiReportBatch(requests);
// List ids = result.stream().map(SdFpssrlR::getId).collect(Collectors.toList());
log.info("AI批量上报成功,共{}条", result.size());
return ResponseResult.success();
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
index 601289bf..3933e989 100644
--- 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
@@ -104,6 +104,9 @@ public class SdAiboxBH implements Serializable {
@FieldChinese("是否启用")
private Integer usfl;
+ @TableField(exist = false)
+ private String usflName;
+
/**
* 数据是否接入
*/
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFpssrlAiR.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFpssrlAiR.java
new file mode 100644
index 00000000..2a85652d
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFpssrlAiR.java
@@ -0,0 +1,121 @@
+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 lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ *
+ * 过鱼设施AI盒子自动数据表
+ *
+ */
+@Data
+@TableName("SD_FPSSRL_AI_R")
+public class SdFpssrlAiR implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /** 主键ID */
+ @TableId(type = IdType.ASSIGN_UUID)
+ private String id;
+
+ /** 过鱼设施编码 */
+ private String stcd;
+
+ /** 时间 */
+ private Date tm;
+
+ /** 鱼种类 */
+ private String ftp;
+
+ /** 过鱼数量 */
+ private Integer fcnt;
+
+ /** 鱼尺寸:大/中/小 */
+ private String fsz;
+
+ /** 鱼长度 */
+ private BigDecimal length;
+
+ /** 鱼宽度 */
+ private BigDecimal width;
+
+ /** 鱼速度 */
+ private String fishspeed;
+
+ /** 游向:0=上行 1=下行 */
+ private Integer direction;
+
+ /** 鱼位置 */
+ private Long fishposition;
+
+ /** 鱼截图主图片url */
+ private String firstImgUrl;
+
+ /** 鱼截图副图片url */
+ private String secondImgUrl;
+
+ /** 视频url */
+ private String videoUrl;
+
+ /** 水温:单位:℃ */
+ private BigDecimal temperature;
+
+ /** 水位:单位:m */
+ private BigDecimal waterlevel;
+
+ /** 流速:单位:m/s */
+ private BigDecimal speed;
+
+ /** 流量:单位:m3/s */
+ private BigDecimal q;
+
+ /** 溶氧:单位:mg/L */
+ private BigDecimal dox;
+
+ /** 浊度:单位:NTU */
+ private Integer tu;
+
+ /** 过鱼通道 */
+ private String channelno;
+
+ /** AI盒子编码 */
+ private String aiBoxCode;
+
+ /** 创建人 */
+ private String recordUser;
+
+ /** 创建时间 */
+ private Date recordTime;
+
+ /** 更新人 */
+ private String modifyUser;
+
+ /** 更新时间 */
+ private Date modifyTime;
+
+ /** 是否已删除:0=未删除 1=已删除 */
+ private Integer isDeleted;
+
+ /** 删除人 */
+ private String deleteUser;
+
+ /** 删除时间 */
+ private Date deleteTime;
+
+ /** 附件ID */
+ private String fid;
+
+ /** 备注 */
+ private String remark;
+
+ /** 过鱼设施名称(非表字段,用于列表展示) */
+ @TableField(exist = false)
+ private String stnm;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFpssrlRAiRequest.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFpssrlRAiRequest.java
index 7b844d05..e533018e 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFpssrlRAiRequest.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFpssrlRAiRequest.java
@@ -38,6 +38,11 @@ public class SdFpssrlRAiRequest {
*/
private String fsz;
+ /**
+ * 服务对象
+ */
+ private String fwdx;
+
/**
* 鱼长度,单位:cm
*/
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdFpssrlAiRMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdFpssrlAiRMapper.java
new file mode 100644
index 00000000..84ffe5d9
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdFpssrlAiRMapper.java
@@ -0,0 +1,22 @@
+package com.yfd.platform.qgc_base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yfd.platform.qgc_base.domain.SdFpssrlAiR;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ *
+ * 过鱼设施AI盒子自动数据表 Mapper 接口
+ *
+ */
+@Mapper
+public interface SdFpssrlAiRMapper extends BaseMapper {
+
+ /**
+ * 批量合并过鱼AI自动数据(基于 STCD + TM + FTP 唯一)
+ * 存在则更新,不存在则新增
+ */
+ int mergeFishRecords(List list);
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdFpssrlRService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdFpssrlRService.java
index 546fb5dc..7044a673 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdFpssrlRService.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdFpssrlRService.java
@@ -3,6 +3,7 @@ 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.SdFpssrlAiR;
import com.yfd.platform.qgc_base.domain.SdFpssrlR;
import com.yfd.platform.qgc_base.domain.SdFpssrlRAiRequest;
@@ -48,5 +49,5 @@ public interface ISdFpssrlRService extends IService {
/**
* 批量处理AI设备上报的识别数据
*/
- List processAiReportBatch(List requests);
+ List processAiReportBatch(List requests);
}
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
index 4ab0272d..ed8fdd92 100644
--- 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
@@ -52,10 +52,12 @@ public class SdAiboxBHServiceImpl extends ServiceImpl impleme
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("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("IS_DELETED = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("IS_DELETED = 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("IS_DELETED = 0 ").build());
}
@Override
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdEngInfoBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdEngInfoBHServiceImpl.java
index 1b275306..01c9ef84 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdEngInfoBHServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdEngInfoBHServiceImpl.java
@@ -96,7 +96,7 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl impleme
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("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("IS_DELETED = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("IS_DELETED = 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("IS_DELETED = 0 ").build());
}
@Override
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
index ba5ee0e4..976942db 100644
--- 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
@@ -48,9 +48,9 @@ public class SdFbrdBHServiceImpl extends ServiceImpl i
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("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("IS_DELETED = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("IS_DELETED = 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("IS_DELETED = 0 ").build());
}
@Override
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
index 5ef06658..b4949034 100644
--- 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
@@ -51,9 +51,9 @@ public class SdFhbtBHServiceImpl extends ServiceImpl i
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("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("IS_DELETED = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("IS_DELETED = 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("IS_DELETED = 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());
}
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 cf3bf019..3a09c579 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
@@ -63,9 +63,9 @@ public class SdFpssBHServiceImpl extends ServiceImpl i
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("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("IS_DELETED = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("IS_DELETED = 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("IS_DELETED = 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());
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFpssrlRServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFpssrlRServiceImpl.java
index 2b658fb2..1e30499f 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFpssrlRServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFpssrlRServiceImpl.java
@@ -6,8 +6,10 @@ 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.SdFpssrlAiR;
import com.yfd.platform.qgc_base.domain.SdFpssrlR;
import com.yfd.platform.qgc_base.domain.SdFpssrlRAiRequest;
+import com.yfd.platform.qgc_base.mapper.SdFpssrlAiRMapper;
import com.yfd.platform.qgc_base.mapper.SdFpssrlRMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdFpssrlRService;
@@ -35,6 +37,8 @@ public class SdFpssrlRServiceImpl extends ServiceImpl queryPageList(DataSourceRequest request) {
@@ -130,12 +134,13 @@ public class SdFpssrlRServiceImpl extends ServiceImpl processAiReportBatch(List requests) {
- List entities = new ArrayList<>();
+ public List processAiReportBatch(List requests) {
+ List entities = new ArrayList<>();
Date now = new Date();
for (SdFpssrlRAiRequest req : requests) {
- SdFpssrlR entity = new SdFpssrlR();
- entity.setStcd(req.getStcd());
+ SdFpssrlAiR entity = new SdFpssrlAiR();
+ entity.setStcd(req.getFwdx());
+ entity.setAiBoxCode(req.getStcd());
entity.setTm(req.getTm());
entity.setFtp(req.getFtp());
entity.setFcnt(req.getFcnt() != null ? req.getFcnt() : 1);
@@ -164,7 +169,7 @@ public class SdFpssrlRServiceImpl extends ServiceImpl i
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("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("IS_DELETED = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("IS_DELETED = 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("IS_DELETED = 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("usfl").modifyProperty("usflName").dictType("STATIC").dictSource("USFL").build());
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
index 8589aeb4..266c4bb4 100644
--- 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
@@ -47,9 +47,9 @@ public class SdOtweBHServiceImpl extends ServiceImpl i
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("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("IS_DELETED = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("IS_DELETED = 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("IS_DELETED = 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("usfl").modifyProperty("usflName").dictType("STATIC").dictSource("USFL").build());
}
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
index 0e1d337b..24438e9a 100644
--- 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
@@ -51,9 +51,9 @@ public class SdSonarBHServiceImpl extends ServiceImpl impleme
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("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("IS_DELETED = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("IS_DELETED = 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("IS_DELETED = 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());
}
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
index d90388ba..3e81ad52 100644
--- 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
@@ -50,9 +50,9 @@ public class SdVaBHServiceImpl extends ServiceImpl impleme
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("usfl").modifyProperty("usflName").dictType("STATIC").dictSource("USFL").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("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("IS_DELETED = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("IS_DELETED = 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("IS_DELETED = 0 ").build());
}
@Override
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
index 57b99528..02d1be85 100644
--- 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
@@ -49,9 +49,9 @@ public class SdVdinfoBServiceImpl extends ServiceImpl impleme
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("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("IS_DELETED = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("IS_DELETED = 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("IS_DELETED = 0 ").build());
}
@Override
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
index c71d4c39..63c4040d 100644
--- 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
@@ -49,9 +49,9 @@ public class SdWeBHServiceImpl extends ServiceImpl impleme
// 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("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("IS_DELETED = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("IS_DELETED = 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("IS_DELETED = 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());
}
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
index c474ddd0..1dbbf910 100644
--- 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
@@ -53,9 +53,9 @@ public class SdWqBHServiceImpl extends ServiceImpl impleme
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());
+ 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("IS_DELETED = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("IS_DELETED = 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("IS_DELETED = 0 ").build());
}
@Override
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
index 751f99aa..c179bc38 100644
--- 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
@@ -54,9 +54,9 @@ public class SdWtBHServiceImpl extends ServiceImpl impleme
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("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("IS_DELETED = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("IS_DELETED = 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("IS_DELETED = 0 ").build());
}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fb/controller/FbStationController.java b/backend/src/main/java/com/yfd/platform/qgc_env/fb/controller/FbStationController.java
index 19d7887c..71aeb46f 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_env/fb/controller/FbStationController.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_env/fb/controller/FbStationController.java
@@ -65,6 +65,84 @@ public class FbStationController {
return ResponseResult.successData(fbStationService.getYearRpStatistics(year));
}
+ @PostMapping("/bsmfr/GetKendoListCust")
+ @Operation(summary = "亲鱼档案管理记录列表")
+ public ResponseResult getBsmfRKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
+ return ResponseResult.successData(fbStationService.getBsmfRList(dataSourceRequest));
+ }
+
+ @PostMapping("/bsdeathr/GetKendoListCust")
+ @Operation(summary = "亲鱼死亡记录列表")
+ public ResponseResult getBsdeathRKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
+ return ResponseResult.successData(fbStationService.getBsdeathRList(dataSourceRequest));
+ }
+
+ @PostMapping("/bsctmob/GetKendoListCust")
+ @Operation(summary = "亲鱼培育方式列表")
+ public ResponseResult getBsctmoBKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
+ return ResponseResult.successData(fbStationService.getBsctmoBList(dataSourceRequest));
+ }
+
+ @PostMapping("/fbbwtr/GetKendoListCust")
+ @Operation(summary = "亲鱼培育水温观测记录列表")
+ public ResponseResult getFbbwtRKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
+ return ResponseResult.successData(fbStationService.getFbbwtRList(dataSourceRequest));
+ }
+
+ @PostMapping("/fbcwqr/GetKendoListCust")
+ @Operation(summary = "亲鱼培育水质监测记录列表")
+ public ResponseResult getFbcwqRKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
+ return ResponseResult.successData(fbStationService.getFbcwqRList(dataSourceRequest));
+ }
+
+ @PostMapping("/bsrfir/GetKendoListCust")
+ @Operation(summary = "亲鱼培育投喂记录列表")
+ public ResponseResult getBsrfiRKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
+ return ResponseResult.successData(fbStationService.getBsrfiRList(dataSourceRequest));
+ }
+
+ @PostMapping("/outfishr/GetKendoListCust")
+ @Operation(summary = "淘汰亲鱼基本信息记录列表")
+ public ResponseResult getOutfishRKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
+ return ResponseResult.successData(fbStationService.getOutfishRList(dataSourceRequest));
+ }
+
+ @PostMapping("/fishartinlr/GetKendoListCust")
+ @Operation(summary = "鱼类人工催产记录列表")
+ public ResponseResult getFishartinlRKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
+ return ResponseResult.successData(fbStationService.getFishartinlRList(dataSourceRequest));
+ }
+
+ @PostMapping("/fishhatchrecr/GetKendoListCust")
+ @Operation(summary = "鱼类受精卵孵化过程记录列表")
+ public ResponseResult getFishhatchrecRKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
+ return ResponseResult.successData(fbStationService.getFishhatchrecRList(dataSourceRequest));
+ }
+
+ @PostMapping("/fishhatchpror/GetKendoListCust")
+ @Operation(summary = "鱼类孵化过程巡查记录列表")
+ public ResponseResult getFishhatchproRKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
+ return ResponseResult.successData(fbStationService.getFishhatchproRList(dataSourceRequest));
+ }
+
+ @PostMapping("/scwemr/GetKendoListCust")
+ @Operation(summary = "苗种培育水环境监测记录列表")
+ public ResponseResult getScwemRKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
+ return ResponseResult.successData(fbStationService.getScwemRList(dataSourceRequest));
+ }
+
+ @PostMapping("/fishbreedr/GetKendoListCust")
+ @Operation(summary = "鱼苗和鱼种培育记录列表")
+ public ResponseResult getFishbreedRKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
+ return ResponseResult.successData(fbStationService.getFishbreedRList(dataSourceRequest));
+ }
+
+ @PostMapping("/fishdpacr/GetKendoListCust")
+ @Operation(summary = "鱼病防治记录列表")
+ public ResponseResult getFishdpacRKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
+ return ResponseResult.successData(fbStationService.getFishdpacRList(dataSourceRequest));
+ }
+
@PostMapping("/bsmfr/qgc/GetKendoListCust")
@Operation(summary = "(全过程)增殖站二级页面: 亲鱼选配与培育->亲鱼信息")
public ResponseResult getBsmfrQgcKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbBsctmoBVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbBsctmoBVo.java
new file mode 100644
index 00000000..23def6a5
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbBsctmoBVo.java
@@ -0,0 +1,76 @@
+package com.yfd.platform.qgc_env.fb.entity.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 亲鱼培育方式 VO
+ */
+@Data
+public class FbBsctmoBVo {
+
+ /** 主键 */
+ private String id;
+
+ /** 设施编码 */
+ private String stcd;
+
+ /** 鱼池编号 */
+ private String fpnum;
+
+ /** 鱼池名称 */
+ private String fpName;
+
+ /** 鱼种类 */
+ private String ftp;
+
+ /** 鱼类名称 */
+ private String ftpName;
+
+ /** 数量(尾) */
+ private Long value;
+
+ /** 全长(cm) */
+ private BigDecimal length;
+
+ /** 体重(g) */
+ private BigDecimal weight;
+
+ /** 培育方式:1=流水单养 2=流水混养 3=静水 4=循环水 */
+ private Integer ctmo;
+
+ /** 培育方式名称 */
+ private String ctmoName;
+
+ /** 放养密度 */
+ private String skds;
+
+ /** 体重范围值 */
+ private String fwgh;
+
+ /** 记录人 */
+ private String recorder;
+
+ /** 创建人 */
+ private String recordUser;
+
+ /** 创建时间 */
+ private Date recordTime;
+
+ /** 更新人 */
+ private String modifyUser;
+
+ /** 更新时间 */
+ private Date modifyTime;
+
+ /** 是否已删除 */
+ private Integer isDeleted;
+
+ /** 删除人 */
+ private String deleteUser;
+
+ /** 删除时间 */
+ private Date deleteTime;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbBsdeathRVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbBsdeathRVo.java
new file mode 100644
index 00000000..6a2fd409
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbBsdeathRVo.java
@@ -0,0 +1,79 @@
+package com.yfd.platform.qgc_env.fb.entity.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 亲鱼死亡记录 VO
+ */
+@Data
+public class FbBsdeathRVo {
+
+ /** 主键 */
+ private String id;
+
+ /** 设施编码 */
+ private String stcd;
+
+ /** 死亡日期 */
+ private Date tm;
+
+ /** 鱼池编号 */
+ private String fpnum;
+
+ /** 鱼池名称 */
+ private String fpName;
+
+ /** 鱼种类 */
+ private String ftp;
+
+ /** 鱼类名称 */
+ private String ftpName;
+
+ /** 标记编号 */
+ private String signnum;
+
+ /** 全长(cm) */
+ private BigDecimal length;
+
+ /** 体重(g) */
+ private BigDecimal weight;
+
+ /** 死亡症状 */
+ private String spod;
+
+ /** 死亡诊断 */
+ private String deathd;
+
+ /** 记录人 */
+ private String recorder;
+
+ /** 数量(尾) */
+ private Long value;
+
+ /** 附件ID */
+ private String fid;
+
+ /** 创建人 */
+ private String recordUser;
+
+ /** 创建时间 */
+ private Date recordTime;
+
+ /** 更新人 */
+ private String modifyUser;
+
+ /** 更新时间 */
+ private Date modifyTime;
+
+ /** 是否已删除 */
+ private Integer isDeleted;
+
+ /** 删除人 */
+ private String deleteUser;
+
+ /** 删除时间 */
+ private Date deleteTime;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbBsmfRVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbBsmfRVo.java
new file mode 100644
index 00000000..fbe1c69b
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbBsmfRVo.java
@@ -0,0 +1,82 @@
+package com.yfd.platform.qgc_env.fb.entity.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 亲鱼档案管理记录 VO
+ */
+@Data
+public class FbBsmfRVo {
+
+ /** 主键 */
+ private String id;
+
+ /** 设施编码 */
+ private String stcd;
+
+ /** 引进日期 */
+ private Date tm;
+
+ /** 鱼种类 */
+ private String ftp;
+
+ /** 鱼类名称 */
+ private String ftpName;
+
+ /** 亲鱼来源 */
+ private String bssr;
+
+ /** 亲鱼来源名称 */
+ private String bssrName;
+
+ /** 全长(cm) */
+ private BigDecimal length;
+
+ /** 体重(g) */
+ private BigDecimal weight;
+
+ /** 鱼龄 */
+ private BigDecimal age;
+
+ /** 性别:1=雄鱼 2=雌鱼 */
+ private Integer sex;
+
+ /** 性别名称 */
+ private String sexName;
+
+ /** 标记编号 */
+ private String signnum;
+
+ /** 记录人 */
+ private String recorder;
+
+ /** 数量 */
+ private Long value;
+
+ /** 附件ID */
+ private String fid;
+
+ /** 创建人 */
+ private String recordUser;
+
+ /** 创建时间 */
+ private Date recordTime;
+
+ /** 更新人 */
+ private String modifyUser;
+
+ /** 更新时间 */
+ private Date modifyTime;
+
+ /** 是否已删除 */
+ private Integer isDeleted;
+
+ /** 删除人 */
+ private String deleteUser;
+
+ /** 删除时间 */
+ private Date deleteTime;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbBsrfiRVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbBsrfiRVo.java
new file mode 100644
index 00000000..fde1f547
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbBsrfiRVo.java
@@ -0,0 +1,73 @@
+package com.yfd.platform.qgc_env.fb.entity.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 亲鱼培育投喂记录 VO
+ */
+@Data
+public class FbBsrfiRVo {
+
+ /** 主键 */
+ private String id;
+
+ /** 设施编码 */
+ private String stcd;
+
+ /** 鱼池编号 */
+ private String fpnum;
+
+ /** 鱼种类 */
+ private String ftp;
+
+ /** 投喂日期 */
+ private Date tm;
+
+ /** 饲料种类 */
+ private String ftype;
+
+ /** 投食量(g) */
+ private BigDecimal cfe;
+
+ /** 水交换频次(次/d) */
+ private Long warfre;
+
+ /** 记录人 */
+ private String recorder;
+
+ /** 总体量(g) */
+ private BigDecimal tbw;
+
+ /** 日投喂率(%) */
+ private BigDecimal dfr;
+
+ /** 摄食情况 */
+ private String fdi;
+
+ /** 附件ID */
+ private String fid;
+
+ /** 创建人 */
+ private String recordUser;
+
+ /** 创建时间 */
+ private Date recordTime;
+
+ /** 更新人 */
+ private String modifyUser;
+
+ /** 更新时间 */
+ private Date modifyTime;
+
+ /** 是否已删除 */
+ private Integer isDeleted;
+
+ /** 删除人 */
+ private String deleteUser;
+
+ /** 删除时间 */
+ private Date deleteTime;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbFbbwtRVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbFbbwtRVo.java
new file mode 100644
index 00000000..c592faee
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbFbbwtRVo.java
@@ -0,0 +1,64 @@
+package com.yfd.platform.qgc_env.fb.entity.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 亲鱼培育水温观测记录 VO
+ */
+@Data
+public class FbFbbwtRVo {
+
+ /** 主键 */
+ private String id;
+
+ /** 设施编码 */
+ private String stcd;
+
+ /** 观测日期 */
+ private Date tm;
+
+ /** 鱼池编号 */
+ private String fpnum;
+
+ /** 鱼池名称 */
+ private String fpName;
+
+ /** 8点水温 */
+ private BigDecimal wte;
+
+ /** 14点水温 */
+ private BigDecimal wtf;
+
+ /** 20点水温 */
+ private BigDecimal wtt;
+
+ /** 记录人 */
+ private String recorder;
+
+ /** 附件ID */
+ private String fid;
+
+ /** 创建人 */
+ private String recordUser;
+
+ /** 创建时间 */
+ private Date recordTime;
+
+ /** 更新人 */
+ private String modifyUser;
+
+ /** 更新时间 */
+ private Date modifyTime;
+
+ /** 是否已删除 */
+ private Integer isDeleted;
+
+ /** 删除人 */
+ private String deleteUser;
+
+ /** 删除时间 */
+ private Date deleteTime;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbFbcwqRVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbFbcwqRVo.java
new file mode 100644
index 00000000..20eab584
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbFbcwqRVo.java
@@ -0,0 +1,70 @@
+package com.yfd.platform.qgc_env.fb.entity.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 亲鱼培育水质监测记录 VO
+ */
+@Data
+public class FbFbcwqRVo {
+
+ /** 主键 */
+ private String id;
+
+ /** 设施编码 */
+ private String stcd;
+
+ /** 鱼池编号 */
+ private String fpnum;
+
+ /** 鱼池名称 */
+ private String fpName;
+
+ /** 氨氮(mg/L) */
+ private BigDecimal nh3n;
+
+ /** 亚硝酸盐(mg/L) */
+ private BigDecimal no2;
+
+ /** 溶解氧(mg/L) */
+ private BigDecimal dox;
+
+ /** pH */
+ private BigDecimal ph;
+
+ /** 记录人 */
+ private String recorder;
+
+ /** 是否符合标准 */
+ private Integer iffit;
+
+ /** 监测时段 */
+ private Date tm;
+
+ /** 附件ID */
+ private String fid;
+
+ /** 创建人 */
+ private String recordUser;
+
+ /** 创建时间 */
+ private Date recordTime;
+
+ /** 更新人 */
+ private String modifyUser;
+
+ /** 更新时间 */
+ private Date modifyTime;
+
+ /** 是否已删除 */
+ private Integer isDeleted;
+
+ /** 删除人 */
+ private String deleteUser;
+
+ /** 删除时间 */
+ private Date deleteTime;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbFishartinlRVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbFishartinlRVo.java
new file mode 100644
index 00000000..b5abdba7
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbFishartinlRVo.java
@@ -0,0 +1,88 @@
+package com.yfd.platform.qgc_env.fb.entity.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 鱼类人工催产记录 VO
+ */
+@Data
+public class FbFishartinlRVo {
+
+ /** 主键 */
+ private String id;
+
+ /** 设施编码 */
+ private String stcd;
+
+ /** 鱼种类 */
+ private String ftp;
+
+ /** 催产日期 */
+ private Date tm;
+
+ /** 雌鱼数量 */
+ private Long ffisht;
+
+ /** 雌鱼催产剂种类 */
+ private Integer fpitocintype;
+
+ /** 雌鱼总剂量 */
+ private BigDecimal fdose;
+
+ /** 雌鱼注射方式 */
+ private String finjmo;
+
+ /** 气温(℃) */
+ private BigDecimal air;
+
+ /** 水温(℃) */
+ private BigDecimal wartem;
+
+ /** 溶解氧(mg/L) */
+ private BigDecimal dox;
+
+ /** 记录人 */
+ private String recorder;
+
+ /** 性别:1=雄鱼 2=雌鱼 */
+ private Integer sex;
+
+ /** 附件ID */
+ private String fid;
+
+ /** 雄鱼注射方式 */
+ private Long mfisht;
+
+ /** 雄鱼催产剂种类 */
+ private Integer mpitocintype;
+
+ /** 雄鱼总剂量 */
+ private BigDecimal mdose;
+
+ /** 雄鱼注射方式 */
+ private String minjmo;
+
+ /** 创建人 */
+ private String recordUser;
+
+ /** 创建时间 */
+ private Date recordTime;
+
+ /** 更新人 */
+ private String modifyUser;
+
+ /** 更新时间 */
+ private Date modifyTime;
+
+ /** 是否已删除 */
+ private Integer isDeleted;
+
+ /** 删除人 */
+ private String deleteUser;
+
+ /** 删除时间 */
+ private Date deleteTime;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbFishbreedRVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbFishbreedRVo.java
new file mode 100644
index 00000000..50090b81
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbFishbreedRVo.java
@@ -0,0 +1,76 @@
+package com.yfd.platform.qgc_env.fb.entity.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 鱼苗和鱼种培育记录 VO
+ */
+@Data
+public class FbFishbreedRVo {
+
+ /** 主键 */
+ private String id;
+
+ /** 设施编码 */
+ private String stcd;
+
+ /** 培育日期 */
+ private Date tm;
+
+ /** 鱼池编号 */
+ private String farmno;
+
+ /** 鱼种类 */
+ private String ftp;
+
+ /** 数量(尾) */
+ private Long counts;
+
+ /** 平均规格全长(cm) */
+ private BigDecimal length;
+
+ /** 平均规格体重(g) */
+ private BigDecimal weight;
+
+ /** 饲料或饵料种类 */
+ private String feedtp;
+
+ /** 投食量(g) */
+ private BigDecimal foodint;
+
+ /** 日投食率(%) */
+ private BigDecimal dfr;
+
+ /** 摄食情况 */
+ private String fin;
+
+ /** 记录人 */
+ private String recorder;
+
+ /** 附件ID */
+ private String fid;
+
+ /** 创建人 */
+ private String recordUser;
+
+ /** 创建时间 */
+ private Date recordTime;
+
+ /** 更新人 */
+ private String modifyUser;
+
+ /** 更新时间 */
+ private Date modifyTime;
+
+ /** 是否已删除 */
+ private Integer isDeleted;
+
+ /** 删除人 */
+ private String deleteUser;
+
+ /** 删除时间 */
+ private Date deleteTime;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbFishdpacRVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbFishdpacRVo.java
new file mode 100644
index 00000000..dd97385c
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbFishdpacRVo.java
@@ -0,0 +1,79 @@
+package com.yfd.platform.qgc_env.fb.entity.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 鱼病防治记录表 VO
+ */
+@Data
+public class FbFishdpacRVo {
+
+ /** 主键 */
+ private String id;
+
+ /** 设施编码 */
+ private String stcd;
+
+ /** 鱼池编号 */
+ private String fpnum;
+
+ /** 鱼种类 */
+ private String ftp;
+
+ /** 平均体重(g) */
+ private BigDecimal weight;
+
+ /** 发病症状 */
+ private String symptoms;
+
+ /** 鱼药种类 */
+ private String fishdrugtype;
+
+ /** 用药方法 */
+ private Integer method;
+
+ /** 用药剂量(mg/kg) */
+ private BigDecimal dose;
+
+ /** 用药天数(d) */
+ private BigDecimal days;
+
+ /** 治疗效果 */
+ private Integer treateffect;
+
+ /** 记录人 */
+ private String recorder;
+
+ /** 日期 */
+ private Date tm;
+
+ /** 附件ID */
+ private String fid;
+
+ /** 备注 */
+ private String remark;
+
+ /** 创建人 */
+ private String recordUser;
+
+ /** 创建时间 */
+ private Date recordTime;
+
+ /** 更新人 */
+ private String modifyUser;
+
+ /** 更新时间 */
+ private Date modifyTime;
+
+ /** 是否已删除 */
+ private Integer isDeleted;
+
+ /** 删除人 */
+ private String deleteUser;
+
+ /** 删除时间 */
+ private Date deleteTime;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbFishhatchproRVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbFishhatchproRVo.java
new file mode 100644
index 00000000..fa52f101
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbFishhatchproRVo.java
@@ -0,0 +1,82 @@
+package com.yfd.platform.qgc_env.fb.entity.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 鱼类孵化过程巡查记录 VO
+ */
+@Data
+public class FbFishhatchproRVo {
+
+ /** 主键 */
+ private String id;
+
+ /** 设施编码 */
+ private String stcd;
+
+ /** 孵化设施编号 */
+ private String devno;
+
+ /** 记录时间 */
+ private Date recordtm;
+
+ /** 水温(℃) */
+ private BigDecimal wartem;
+
+ /** 与上一时段水温差(℃) */
+ private BigDecimal wtdiff;
+
+ /** 溶解氧(mg/L) */
+ private BigDecimal dox;
+
+ /** pH */
+ private BigDecimal ph;
+
+ /** 胚胎发育时期 */
+ private String empsta;
+
+ /** 水交换频次(次/d) */
+ private Long warfre;
+
+ /** 孵化密度是否均匀:0=否 1=是 */
+ private Integer iseven;
+
+ /** 记录人 */
+ private String recorder;
+
+ /** 备注 */
+ private String remarks;
+
+ /** 产卵时间 */
+ private Date spawntm;
+
+ /** 巡查时间 */
+ private Date tm;
+
+ /** 附件ID */
+ private String fid;
+
+ /** 创建人 */
+ private String recordUser;
+
+ /** 创建时间 */
+ private Date recordTime;
+
+ /** 更新人 */
+ private String modifyUser;
+
+ /** 更新时间 */
+ private Date modifyTime;
+
+ /** 是否已删除 */
+ private Integer isDeleted;
+
+ /** 删除人 */
+ private String deleteUser;
+
+ /** 删除时间 */
+ private Date deleteTime;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbFishhatchrecRVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbFishhatchrecRVo.java
new file mode 100644
index 00000000..f94f5875
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbFishhatchrecRVo.java
@@ -0,0 +1,73 @@
+package com.yfd.platform.qgc_env.fb.entity.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 鱼类受精卵孵化过程记录 VO
+ */
+@Data
+public class FbFishhatchrecRVo {
+
+ /** 主键 */
+ private String id;
+
+ /** 设施编码 */
+ private String stcd;
+
+ /** 鱼种类 */
+ private String ftp;
+
+ /** 亲鱼来源 */
+ private String fishsrc;
+
+ /** 鱼卵数量(万粒) */
+ private BigDecimal eggcount;
+
+ /** 受精率(%) */
+ private BigDecimal ferrate;
+
+ /** 孵化率(%) */
+ private BigDecimal hatchrate;
+
+ /** 出苗时长(h) */
+ private BigDecimal outhour;
+
+ /** 出苗数量(万尾) */
+ private BigDecimal outcount;
+
+ /** 出苗率(%) */
+ private BigDecimal outrate;
+
+ /** 记录人 */
+ private String recorder;
+
+ /** 孵化时间 */
+ private Date tm;
+
+ /** 附件ID */
+ private String fid;
+
+ /** 创建人 */
+ private String recordUser;
+
+ /** 创建时间 */
+ private Date recordTime;
+
+ /** 更新人 */
+ private String modifyUser;
+
+ /** 更新时间 */
+ private Date modifyTime;
+
+ /** 是否已删除 */
+ private Integer isDeleted;
+
+ /** 删除人 */
+ private String deleteUser;
+
+ /** 删除时间 */
+ private Date deleteTime;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbOutfishRVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbOutfishRVo.java
new file mode 100644
index 00000000..35d1c70a
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbOutfishRVo.java
@@ -0,0 +1,85 @@
+package com.yfd.platform.qgc_env.fb.entity.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 淘汰亲鱼基本信息记录 VO
+ */
+@Data
+public class FbOutfishRVo {
+
+ /** 主键 */
+ private String id;
+
+ /** 设施编码 */
+ private String stcd;
+
+ /** 录入时间 */
+ private Date recordertm;
+
+ /** 标记编号 */
+ private String signno;
+
+ /** 鱼种类 */
+ private String ftp;
+
+ /** 亲鱼来源 */
+ private String src;
+
+ /** 性别:1=雄鱼 2=雌鱼 */
+ private Integer sex;
+
+ /** 鱼龄 */
+ private BigDecimal age;
+
+ /** 全长(cm) */
+ private BigDecimal length;
+
+ /** 体重(g) */
+ private BigDecimal weight;
+
+ /** 繁殖年限 */
+ private Long agelmt;
+
+ /** 繁殖次数 */
+ private Long brecount;
+
+ /** 淘汰日期 */
+ private Date tm;
+
+ /** 淘汰原因 */
+ private String outrea;
+
+ /** 处置方式 */
+ private Integer hand;
+
+ /** 记录人 */
+ private String recorder;
+
+ /** 附件ID */
+ private String fid;
+
+ /** 创建人 */
+ private String recordUser;
+
+ /** 创建时间 */
+ private Date recordTime;
+
+ /** 更新人 */
+ private String modifyUser;
+
+ /** 更新时间 */
+ private Date modifyTime;
+
+ /** 是否已删除 */
+ private Integer isDeleted;
+
+ /** 删除人 */
+ private String deleteUser;
+
+ /** 删除时间 */
+ private Date deleteTime;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbScwemRVo.java b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbScwemRVo.java
new file mode 100644
index 00000000..9f6f3517
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_env/fb/entity/vo/FbScwemRVo.java
@@ -0,0 +1,73 @@
+package com.yfd.platform.qgc_env.fb.entity.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 苗种培育水环境监测记录表 VO
+ */
+@Data
+public class FbScwemRVo {
+
+ /** 主键 */
+ private String id;
+
+ /** 设施编码 */
+ private String stcd;
+
+ /** 监测日期 */
+ private Date tm;
+
+ /** 鱼池编号 */
+ private String fpnum;
+
+ /** 鱼池名称 */
+ private String fpName;
+
+ /** 水温(℃) */
+ private BigDecimal wartem;
+
+ /** 与上一时段水温差(℃) */
+ private BigDecimal wtdiff;
+
+ /** 氨氮(mg/L) */
+ private BigDecimal nh3n;
+
+ /** 亚硝酸盐(mg/L) */
+ private BigDecimal no2;
+
+ /** 溶解氧(mg/L) */
+ private BigDecimal dox;
+
+ /** pH */
+ private BigDecimal ph;
+
+ /** 记录人 */
+ private String recorder;
+
+ /** 附件ID */
+ private String fid;
+
+ /** 创建人 */
+ private String recordUser;
+
+ /** 创建时间 */
+ private Date recordTime;
+
+ /** 更新人 */
+ private String modifyUser;
+
+ /** 更新时间 */
+ private Date modifyTime;
+
+ /** 是否已删除 */
+ private Integer isDeleted;
+
+ /** 删除人 */
+ private String deleteUser;
+
+ /** 删除时间 */
+ private Date deleteTime;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fb/service/FbStationService.java b/backend/src/main/java/com/yfd/platform/qgc_env/fb/service/FbStationService.java
index 5e94e2de..da2ef0e6 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_env/fb/service/FbStationService.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_env/fb/service/FbStationService.java
@@ -2,24 +2,7 @@ package com.yfd.platform.qgc_env.fb.service;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.DataSourceResult;
-import com.yfd.platform.qgc_env.fb.entity.vo.BreedStageVO;
-import com.yfd.platform.qgc_env.fb.entity.vo.FbBsmfRQgcVo;
-import com.yfd.platform.qgc_env.fb.entity.vo.FbBsmfRFishTableVo;
-import com.yfd.platform.qgc_env.fb.entity.vo.FbEngFishVo;
-import com.yfd.platform.qgc_env.fb.entity.vo.FbFlDataVo;
-import com.yfd.platform.qgc_env.fb.entity.vo.FbFishCountFinishVo;
-import com.yfd.platform.qgc_env.fb.entity.vo.FbFishRunQgcVo;
-import com.yfd.platform.qgc_env.fb.entity.vo.FbFishTypeStcdVo;
-import com.yfd.platform.qgc_env.fb.entity.vo.FbFishTypeFinishVo;
-import com.yfd.platform.qgc_env.fb.entity.vo.FbRelatedYrVo;
-import com.yfd.platform.qgc_env.fb.entity.vo.FbMsfbrdmQgcVo;
-import com.yfd.platform.qgc_env.fb.entity.vo.FbResearchVo;
-import com.yfd.platform.qgc_env.fb.entity.vo.FbStInfoResultVo;
-import com.yfd.platform.qgc_env.fb.entity.vo.FbStationStaticsDataVo;
-import com.yfd.platform.qgc_env.fb.entity.vo.YearRpStatisticsVo;
-import com.yfd.platform.qgc_env.fb.entity.vo.FbStationOverviewSecondVo;
-import com.yfd.platform.qgc_env.fb.entity.vo.FbTracingPointVo;
-import com.yfd.platform.qgc_env.fb.entity.vo.TableVo;
+import com.yfd.platform.qgc_env.fb.entity.vo.*;
import java.util.List;
import java.util.Map;
@@ -84,4 +67,69 @@ public interface FbStationService {
* 获取增殖站各阶段数据状态(选配/繁殖/培育/防治)
*/
List getBreedStageList(String stcd);
+
+ /**
+ * 亲鱼档案管理记录列表
+ */
+ DataSourceResult getBsmfRList(DataSourceRequest dataSourceRequest);
+
+ /**
+ * 亲鱼死亡记录列表
+ */
+ DataSourceResult getBsdeathRList(DataSourceRequest dataSourceRequest);
+
+ /**
+ * 亲鱼培育方式列表
+ */
+ DataSourceResult getBsctmoBList(DataSourceRequest dataSourceRequest);
+
+ /**
+ * 亲鱼培育水温观测记录列表
+ */
+ DataSourceResult getFbbwtRList(DataSourceRequest dataSourceRequest);
+
+ /**
+ * 亲鱼培育水质监测记录列表
+ */
+ DataSourceResult getFbcwqRList(DataSourceRequest dataSourceRequest);
+
+ /**
+ * 亲鱼培育投喂记录列表
+ */
+ DataSourceResult getBsrfiRList(DataSourceRequest dataSourceRequest);
+
+ /**
+ * 淘汰亲鱼基本信息记录列表
+ */
+ DataSourceResult getOutfishRList(DataSourceRequest dataSourceRequest);
+
+ /**
+ * 鱼类人工催产记录列表
+ */
+ DataSourceResult getFishartinlRList(DataSourceRequest dataSourceRequest);
+
+ /**
+ * 鱼类受精卵孵化过程记录列表
+ */
+ DataSourceResult getFishhatchrecRList(DataSourceRequest dataSourceRequest);
+
+ /**
+ * 鱼类孵化过程巡查记录列表
+ */
+ DataSourceResult getFishhatchproRList(DataSourceRequest dataSourceRequest);
+
+ /**
+ * 苗种培育水环境监测记录列表
+ */
+ DataSourceResult getScwemRList(DataSourceRequest dataSourceRequest);
+
+ /**
+ * 鱼苗和鱼种培育记录列表
+ */
+ DataSourceResult getFishbreedRList(DataSourceRequest dataSourceRequest);
+
+ /**
+ * 鱼病防治记录列表
+ */
+ DataSourceResult getFishdpacRList(DataSourceRequest dataSourceRequest);
}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/fb/service/impl/FbStationServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_env/fb/service/impl/FbStationServiceImpl.java
index 635edcef..80f8b9b0 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_env/fb/service/impl/FbStationServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_env/fb/service/impl/FbStationServiceImpl.java
@@ -12,6 +12,19 @@ import com.yfd.platform.common.GroupHelper;
import com.yfd.platform.common.GroupingInfo;
import com.yfd.platform.common.MicroservicDynamicSQLMapper;
import com.yfd.platform.qgc_env.fb.entity.vo.BreedStageVO;
+import com.yfd.platform.qgc_env.fb.entity.vo.FbBsmfRVo;
+import com.yfd.platform.qgc_env.fb.entity.vo.FbBsdeathRVo;
+import com.yfd.platform.qgc_env.fb.entity.vo.FbBsctmoBVo;
+import com.yfd.platform.qgc_env.fb.entity.vo.FbFbbwtRVo;
+import com.yfd.platform.qgc_env.fb.entity.vo.FbFbcwqRVo;
+import com.yfd.platform.qgc_env.fb.entity.vo.FbBsrfiRVo;
+import com.yfd.platform.qgc_env.fb.entity.vo.FbOutfishRVo;
+import com.yfd.platform.qgc_env.fb.entity.vo.FbFishartinlRVo;
+import com.yfd.platform.qgc_env.fb.entity.vo.FbFishhatchrecRVo;
+import com.yfd.platform.qgc_env.fb.entity.vo.FbFishhatchproRVo;
+import com.yfd.platform.qgc_env.fb.entity.vo.FbScwemRVo;
+import com.yfd.platform.qgc_env.fb.entity.vo.FbFishbreedRVo;
+import com.yfd.platform.qgc_env.fb.entity.vo.FbFishdpacRVo;
import com.yfd.platform.qgc_env.fb.entity.vo.FbBsmfRQgcVo;
import com.yfd.platform.qgc_env.fb.entity.vo.FbBsmfRFishHeadColumnVo;
import com.yfd.platform.qgc_env.fb.entity.vo.FbBsmfRFishSummaryVo;
@@ -1980,6 +1993,23 @@ public class FbStationServiceImpl implements FbStationService {
return result;
}
+ private String buildQgcMsfbrdmCoreSql1(Date startTime, Date endTime, Map paramMap) {
+ StringBuilder sql = new StringBuilder();
+ sql.append(" SELECT\n" +
+ " a.ID, a.STCD, a.TM,\n" +
+ " CASE WHEN ZY_FISH_ID IS NULL THEN TO_CHAR(a.FTP) ELSE TO_CHAR(ZY_FISH_ID) END AS ftp,CASE WHEN c.NAME IS NULL THEN TO_CHAR(a.FTP) ELSE TO_CHAR(c.NAME) END AS ftpName,\n" +
+ " a.BSSR, a.AGE, a.SEX, a.SIGNNUM, a.RECORDER, a.VALUE, a.FID,\n" +
+ " a.RECORD_USER, a.RECORD_TIME, a.MODIFY_USER, a.MODIFY_TIME,\n" +
+ " a.IS_DELETED, a.DELETE_USER, a.DELETE_TIME,\n" +
+ " a.LENGTH, a.WEIGHT\n" +
+ " FROM SD_FBBSMF_R a\n" +
+ " INNER JOIN V_MS_STBPRP_T b\n" +
+ " ON a.stcd = b.STCD AND b.STTP_CODE = 'FB' AND b.IS_DELETED = 0\n" +
+ " LEFT JOIN V_SD_FISHDICTORY_B c\n" +
+ " ON a.FTP = c.FISH_ID AND (b.HBRVCD = c.RVCD OR c.RVCD = 'ZY')");
+ return sql.toString();
+ }
+
private String buildQgcMsfbrdmCoreSql(Date startTime, Date endTime, Map paramMap) {
Integer year = startTime == null ? null : Integer.parseInt(DateUtil.format(startTime, "yyyy"));
String ftpCodeExpr = "COALESCE(TO_CHAR(NVL(relRv.ZY_FISH_ID, relRv.FISH_ID)), " +
@@ -5110,4 +5140,3479 @@ public class FbStationServiceImpl implements FbStationService {
this.fcnt = fcnt;
}
}
+
+ // ==================== 亲鱼档案管理记录列表 ====================
+
+ @Override
+ public DataSourceResult getBsmfRList(DataSourceRequest dataSourceRequest) {
+ DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
+ GroupingInfo[] groups = loadOptions == null ? null : loadOptions.getGroup();
+ if (groups != null && groups.length > 0) {
+ return queryBsmfRGroupList(dataSourceRequest, loadOptions, groups);
+ }
+ return queryBsmfRDetailList(dataSourceRequest, loadOptions);
+ }
+
+ private DataSourceResult queryBsmfRDetailList(DataSourceRequest dataSourceRequest,
+ DataSourceLoadOptionsBase loadOptions) {
+ Map paramMap = new HashMap<>();
+ StringBuilder sql = new StringBuilder();
+ sql.append("SELECT ")
+ .append(buildBsmfRDetailSelectSql(dataSourceRequest == null ? null : dataSourceRequest.getSelect()))
+ .append(" FROM (")
+ .append(buildBsmfRCoreSql())
+ .append(") t WHERE 1 = 1 ");
+
+ String filterSql = buildBsmfRFilterCondition(
+ dataSourceRequest == null ? null : dataSourceRequest.getFilter(),
+ paramMap,
+ new int[]{0}
+ );
+ if (StrUtil.isNotBlank(filterSql)) {
+ sql.append(" AND ").append(filterSql).append(" ");
+ }
+ sql.append(buildBsmfROrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort()));
+
+ Page> page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
+ List list = microservicDynamicSQLMapper.pageAllListWithResultType(
+ page, sql.toString(), paramMap, FbBsmfRVo.class
+ );
+ DataSourceResult result = new DataSourceResult<>();
+ result.setData(list);
+ result.setTotal(page != null ? page.getTotal() : list.size());
+ result.setAggregates(new HashMap<>());
+ return result;
+ }
+
+ @SuppressWarnings({"rawtypes", "unchecked"})
+ private DataSourceResult queryBsmfRGroupList(DataSourceRequest dataSourceRequest,
+ DataSourceLoadOptionsBase loadOptions,
+ GroupingInfo[] groupInfos) {
+ Map paramMap = new HashMap<>();
+ StringBuilder sql = new StringBuilder();
+ sql.append("SELECT * FROM (")
+ .append(buildBsmfRCoreSql())
+ .append(") t WHERE 1 = 1 ");
+
+ String filterSql = buildBsmfRFilterCondition(
+ dataSourceRequest == null ? null : dataSourceRequest.getFilter(),
+ paramMap,
+ new int[]{0}
+ );
+ if (StrUtil.isNotBlank(filterSql)) {
+ sql.append(" AND ").append(filterSql).append(" ");
+ }
+ String groupedSql = buildBsmfRGroupSql(sql.toString(),
+ dataSourceRequest == null ? null : dataSourceRequest.getGroup());
+ List