diff --git a/backend/src/main/java/com/yfd/platform/env/controller/SdFishDictoryBController.java b/backend/src/main/java/com/yfd/platform/env/controller/SdFishDictoryBController.java
new file mode 100644
index 0000000..fc8c878
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/env/controller/SdFishDictoryBController.java
@@ -0,0 +1,77 @@
+package com.yfd.platform.env.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yfd.platform.annotation.Log;
+import com.yfd.platform.config.ResponseResult;
+import com.yfd.platform.env.domain.SdFishDictoryB;
+import com.yfd.platform.env.service.ISdFishDictoryBService;
+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.*;
+
+import java.util.List;
+
+/**
+ *
+ * 鱼类字典表 前端控制器
+ *
+ */
+@RestController
+@RequestMapping("/env/fishDictory")
+@Tag(name = "鱼类字典管理")
+public class SdFishDictoryBController {
+
+ @Resource
+ private ISdFishDictoryBService sdFishDictoryBService;
+
+ @GetMapping("/queryPageList")
+ @Operation(summary = "分页查询鱼类字典列表")
+ public ResponseResult queryPageList(
+ @RequestParam(required = false) String name,
+ @RequestParam(required = false) String code,
+ @RequestParam(required = false) Integer type,
+ @RequestParam(required = false) Integer rare,
+ @RequestParam(defaultValue = "1") Long pageNum,
+ @RequestParam(defaultValue = "10") Long pageSize) {
+ Page page = new Page<>(pageNum, pageSize);
+ Page result = sdFishDictoryBService.selectPage(name, code, type, rare, page);
+ return ResponseResult.successData(result);
+ }
+
+ @GetMapping("/list")
+ @Operation(summary = "查询所有鱼类字典")
+ public ResponseResult list() {
+ return ResponseResult.successData(sdFishDictoryBService.list());
+ }
+
+ @GetMapping("/getById")
+ @Operation(summary = "根据ID查询鱼类字典")
+ public ResponseResult getById(@RequestParam String id) {
+ return ResponseResult.successData(sdFishDictoryBService.getById(id));
+ }
+
+ @Log(module = "鱼类字典管理", value = "新增鱼类字典")
+ @PostMapping("/add")
+ @Operation(summary = "新增鱼类字典")
+ public ResponseResult add(@RequestBody SdFishDictoryB fishDictoryB) {
+ boolean result = sdFishDictoryBService.add(fishDictoryB);
+ return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败");
+ }
+
+ @Log(module = "鱼类字典管理", value = "修改鱼类字典")
+ @PostMapping("/update")
+ @Operation(summary = "修改鱼类字典")
+ public ResponseResult update(@RequestBody SdFishDictoryB fishDictoryB) {
+ boolean result = sdFishDictoryBService.updateById(fishDictoryB);
+ return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败");
+ }
+
+ @Log(module = "鱼类字典管理", value = "删除鱼类字典")
+ @PostMapping("/delete")
+ @Operation(summary = "删除鱼类字典")
+ public ResponseResult delete(@RequestParam String id) {
+ boolean result = sdFishDictoryBService.deleteById(id);
+ return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败");
+ }
+}
\ No newline at end of file
diff --git a/backend/src/main/java/com/yfd/platform/env/controller/SdFpssBHController.java b/backend/src/main/java/com/yfd/platform/env/controller/SdFpssBHController.java
new file mode 100644
index 0000000..0062657
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/env/controller/SdFpssBHController.java
@@ -0,0 +1,83 @@
+package com.yfd.platform.env.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yfd.platform.annotation.Log;
+import com.yfd.platform.config.ResponseResult;
+import com.yfd.platform.env.domain.SdFpssBH;
+import com.yfd.platform.env.service.ISdFpssBHService;
+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.*;
+
+import java.util.List;
+
+/**
+ *
+ * 过鱼设施表 前端控制器
+ *
+ */
+@RestController
+@RequestMapping("/env/fpss")
+@Tag(name = "过鱼设施管理")
+public class SdFpssBHController {
+
+ @Resource
+ private ISdFpssBHService sdFpssBHService;
+
+ @GetMapping("/queryPageList")
+ @Operation(summary = "分页查询过鱼设施列表")
+ public ResponseResult queryPageList(
+ @RequestParam(required = false) String stcd,
+ @RequestParam(required = false) String sttp,
+ @RequestParam(required = false) String rstcd,
+ @RequestParam(required = false) Integer usfl,
+ @RequestParam(defaultValue = "1") Long pageNum,
+ @RequestParam(defaultValue = "10") Long pageSize) {
+ Page page = new Page<>(pageNum, pageSize);
+ Page result = sdFpssBHService.selectPage(stcd, sttp, rstcd, usfl, page);
+ return ResponseResult.successData(result);
+ }
+
+ @GetMapping("/list")
+ @Operation(summary = "查询所有过鱼设施")
+ public ResponseResult list() {
+ return ResponseResult.successData(sdFpssBHService.list());
+ }
+
+ @GetMapping("/getById")
+ @Operation(summary = "根据编码查询过鱼设施")
+ public ResponseResult getById(@RequestParam String stcd, @RequestParam String sttp) {
+ return ResponseResult.successData(sdFpssBHService.getDetail(stcd, sttp));
+ }
+
+ @GetMapping("/getByRstcd")
+ @Operation(summary = "根据电站编码查询过鱼设施")
+ public ResponseResult getByRstcd(@RequestParam String rstcd) {
+ return ResponseResult.successData(sdFpssBHService.getByRstcd(rstcd));
+ }
+
+ @Log(module = "过鱼设施管理", value = "新增过鱼设施")
+ @PostMapping("/add")
+ @Operation(summary = "新增过鱼设施")
+ public ResponseResult add(@RequestBody SdFpssBH sdFpssBH) {
+ boolean result = sdFpssBHService.add(sdFpssBH);
+ return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败");
+ }
+
+ @Log(module = "过鱼设施管理", value = "修改过鱼设施")
+ @PostMapping("/update")
+ @Operation(summary = "修改过鱼设施")
+ public ResponseResult update(@RequestBody SdFpssBH sdFpssBH) {
+ boolean result = sdFpssBHService.updateById(sdFpssBH);
+ return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败");
+ }
+
+ @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("删除失败");
+ }
+}
\ No newline at end of file
diff --git a/backend/src/main/java/com/yfd/platform/env/domain/SdFishDictoryB.java b/backend/src/main/java/com/yfd/platform/env/domain/SdFishDictoryB.java
new file mode 100644
index 0000000..8e2267d
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/env/domain/SdFishDictoryB.java
@@ -0,0 +1,117 @@
+package com.yfd.platform.env.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("SD_FISHDICTORY_B")
+public class SdFishDictoryB implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(type = IdType.INPUT)
+ private String id;
+
+ private String code;
+
+ private String name;
+
+ private String nameEn;
+
+ private String alias;
+
+ private String logo;
+
+ private String introduce;
+
+ private String inffile;
+
+ private String orders;
+
+ private String family;
+
+ private String genus;
+
+ private String species;
+
+ private Integer type;
+
+ private String fsz;
+
+ private Integer rare;
+
+ private Integer specOrigin;
+
+ private Integer ptype;
+
+ private String rvcd;
+
+ private String habitMigrat;
+
+ private String feedingHabit;
+
+ private String spawnCharact;
+
+ private String food;
+
+ private String timeFeed;
+
+ private String orignDate;
+
+ private String pretemp;
+
+ private String flowRate;
+
+ private String depth;
+
+ private String botmMater;
+
+ private String wqtq;
+
+ private Integer habitat;
+
+ private Integer situation;
+
+ private Integer resourceType;
+
+ private String shapedesc;
+
+ private String protectlvl;
+
+ private String habitation;
+
+ private String fid;
+
+ private String description;
+
+ private Integer enable;
+
+ private Integer internal;
+
+ private Integer orderIndex;
+
+ private String recordUser;
+
+ private Date recordTime;
+
+ private String modifyUser;
+
+ private Date modifyTime;
+
+ private Integer isDeleted;
+
+ private String deleteUser;
+
+ private Date deleteTime;
+
+ private String spawnMonth;
+
+ private String vlsr;
+
+ private Date vlsrTm;
+}
\ No newline at end of file
diff --git a/backend/src/main/java/com/yfd/platform/env/domain/SdFpssBH.java b/backend/src/main/java/com/yfd/platform/env/domain/SdFpssBH.java
new file mode 100644
index 0000000..51f80eb
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/env/domain/SdFpssBH.java
@@ -0,0 +1,158 @@
+package com.yfd.platform.env.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+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;
+
+@Data
+@TableName("SD_FPSS_B_H")
+public class SdFpssBH implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(type = IdType.INPUT)
+ private String stcd;
+
+ private String sttp;
+
+ private Date tm;
+
+ private Integer blprd;
+
+ private BigDecimal lgtd;
+
+ private BigDecimal lttd;
+
+ private BigDecimal elev;
+
+ private String stlc;
+
+ private Integer usfl;
+
+ private Integer dtin;
+
+ private Date dtinTm;
+
+ private Integer orderIndex;
+
+ private String rstcd;
+
+ private Date stdsdt;
+
+ private Date pststdt;
+
+ private Date pesstdt;
+
+ private Date swdt;
+
+ private Date jcdt;
+
+ private Date wddt;
+
+ private Integer bldsttCode;
+
+ private String introduce;
+
+ private String logo;
+
+ private String inffile;
+
+ private BigDecimal inv;
+
+ private String ydxs;
+
+ private BigDecimal ydzcd;
+
+ private BigDecimal ydjkz;
+
+ private Integer ydjkcnt;
+
+ private BigDecimal jkhg;
+
+ private String ydyyxs;
+
+ private BigDecimal ydckz;
+
+ private Integer ydckcnt;
+
+ private BigDecimal ckhg;
+
+ private BigDecimal ydcsv;
+
+ private Integer ydcscd;
+
+ private Integer ydcskd;
+
+ private String ydcspd;
+
+ private Integer ydcscnt;
+
+ private Integer ydxxccnt;
+
+ private BigDecimal v;
+
+ private String fzrdmxz;
+
+ private String fzrtdz;
+
+ private BigDecimal fzryxwdp;
+
+ private BigDecimal fzrpj;
+
+ private String symtlcs;
+
+ private String symtxs;
+
+ private String xymtlcs;
+
+ private String xymtxs;
+
+ private String jyfs;
+
+ private String yyfs;
+
+ private Integer syjcnt;
+
+ private BigDecimal syjhg;
+
+ private BigDecimal syjq;
+
+ private String syjsz;
+
+ private BigDecimal syjwdp;
+
+ private Long sjgycnt;
+
+ private String ZygyDx;
+
+ private String ZygyDxms;
+
+ private String JggyDx;
+
+ private String JggyDxms;
+
+ private String gytm;
+
+ private String yxtm;
+
+ private String fpssmn;
+
+ private Integer dtfrqcy;
+
+ private String jbtxcs;
+
+ private Integer isUp;
+
+ private Integer isDown;
+
+ private String remark;
+
+ private String vlsr;
+
+ private Date vlsrTm;
+}
\ No newline at end of file
diff --git a/backend/src/main/java/com/yfd/platform/env/mapper/SdFishDictoryBMapper.java b/backend/src/main/java/com/yfd/platform/env/mapper/SdFishDictoryBMapper.java
new file mode 100644
index 0000000..14e31ed
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/env/mapper/SdFishDictoryBMapper.java
@@ -0,0 +1,9 @@
+package com.yfd.platform.env.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yfd.platform.env.domain.SdFishDictoryB;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SdFishDictoryBMapper extends BaseMapper {
+}
\ No newline at end of file
diff --git a/backend/src/main/java/com/yfd/platform/env/mapper/SdFpssBHMapper.java b/backend/src/main/java/com/yfd/platform/env/mapper/SdFpssBHMapper.java
new file mode 100644
index 0000000..43079b5
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/env/mapper/SdFpssBHMapper.java
@@ -0,0 +1,9 @@
+package com.yfd.platform.env.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yfd.platform.env.domain.SdFpssBH;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SdFpssBHMapper extends BaseMapper {
+}
\ No newline at end of file
diff --git a/backend/src/main/java/com/yfd/platform/env/service/ISdFishDictoryBService.java b/backend/src/main/java/com/yfd/platform/env/service/ISdFishDictoryBService.java
new file mode 100644
index 0000000..05e03b8
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/env/service/ISdFishDictoryBService.java
@@ -0,0 +1,18 @@
+package com.yfd.platform.env.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yfd.platform.env.domain.SdFishDictoryB;
+
+public interface ISdFishDictoryBService extends IService {
+
+ Page selectPage(String name, String code, Integer type, Integer rare, Page page);
+
+ boolean add(SdFishDictoryB fishDictoryB);
+
+ boolean updateById(SdFishDictoryB fishDictoryB);
+
+ boolean deleteById(String id);
+
+ SdFishDictoryB getById(String id);
+}
\ No newline at end of file
diff --git a/backend/src/main/java/com/yfd/platform/env/service/ISdFpssBHService.java b/backend/src/main/java/com/yfd/platform/env/service/ISdFpssBHService.java
new file mode 100644
index 0000000..3acdb85
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/env/service/ISdFpssBHService.java
@@ -0,0 +1,22 @@
+package com.yfd.platform.env.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yfd.platform.env.domain.SdFpssBH;
+
+import java.util.List;
+
+public interface ISdFpssBHService extends IService {
+
+ Page selectPage(String stcd, String sttp, String rstcd, Integer usfl, Page page);
+
+ List getByRstcd(String rstcd);
+
+ boolean add(SdFpssBH sdFpssBH);
+
+ boolean updateById(SdFpssBH sdFpssBH);
+
+ boolean deleteById(String stcd, String sttp);
+
+ SdFpssBH getDetail(String stcd, String sttp);
+}
\ No newline at end of file
diff --git a/backend/src/main/java/com/yfd/platform/env/service/impl/SdFishDictoryBServiceImpl.java b/backend/src/main/java/com/yfd/platform/env/service/impl/SdFishDictoryBServiceImpl.java
new file mode 100644
index 0000000..4a118c0
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/env/service/impl/SdFishDictoryBServiceImpl.java
@@ -0,0 +1,65 @@
+package com.yfd.platform.env.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yfd.platform.env.domain.SdFishDictoryB;
+import com.yfd.platform.env.mapper.SdFishDictoryBMapper;
+import com.yfd.platform.env.service.ISdFishDictoryBService;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+@Service
+public class SdFishDictoryBServiceImpl extends ServiceImpl implements ISdFishDictoryBService {
+
+ @Override
+ public Page selectPage(String name, String code, Integer type, Integer rare, Page page) {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(SdFishDictoryB::getIsDeleted, 0);
+
+ if (StringUtils.hasText(name)) {
+ wrapper.like(SdFishDictoryB::getName, name);
+ }
+ if (StringUtils.hasText(code)) {
+ wrapper.eq(SdFishDictoryB::getCode, code);
+ }
+ if (type != null) {
+ wrapper.eq(SdFishDictoryB::getType, type);
+ }
+ if (rare != null) {
+ wrapper.eq(SdFishDictoryB::getRare, rare);
+ }
+
+ wrapper.orderByDesc(SdFishDictoryB::getOrderIndex);
+ return page(page, wrapper);
+ }
+
+ @Override
+ public boolean add(SdFishDictoryB fishDictoryB) {
+ fishDictoryB.setIsDeleted(0);
+ return save(fishDictoryB);
+ }
+
+ @Override
+ public boolean updateById(SdFishDictoryB fishDictoryB) {
+ return updateById(fishDictoryB);
+ }
+
+ @Override
+ public boolean deleteById(String id) {
+ SdFishDictoryB entity = getById(id);
+ if (entity != null) {
+ entity.setIsDeleted(1);
+ return updateById(entity);
+ }
+ return false;
+ }
+
+ @Override
+ public SdFishDictoryB getById(String id) {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(SdFishDictoryB::getId, id)
+ .eq(SdFishDictoryB::getIsDeleted, 0);
+ return getOne(wrapper);
+ }
+}
\ No newline at end of file
diff --git a/backend/src/main/java/com/yfd/platform/env/service/impl/SdFpssBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/env/service/impl/SdFpssBHServiceImpl.java
new file mode 100644
index 0000000..cd705e2
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/env/service/impl/SdFpssBHServiceImpl.java
@@ -0,0 +1,73 @@
+package com.yfd.platform.env.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yfd.platform.env.domain.SdFpssBH;
+import com.yfd.platform.env.mapper.SdFpssBHMapper;
+import com.yfd.platform.env.service.ISdFpssBHService;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import java.util.List;
+
+@Service
+public class SdFpssBHServiceImpl extends ServiceImpl implements ISdFpssBHService {
+
+ @Override
+ public Page selectPage(String stcd, String sttp, String rstcd, Integer usfl, Page page) {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+
+ if (StringUtils.hasText(stcd)) {
+ wrapper.like(SdFpssBH::getStcd, stcd);
+ }
+ if (StringUtils.hasText(sttp)) {
+ wrapper.eq(SdFpssBH::getSttp, sttp);
+ }
+ if (StringUtils.hasText(rstcd)) {
+ wrapper.eq(SdFpssBH::getRstcd, rstcd);
+ }
+ if (usfl != null) {
+ wrapper.eq(SdFpssBH::getUsfl, usfl);
+ }
+
+ wrapper.orderByDesc(SdFpssBH::getOrderIndex);
+ return page(page, wrapper);
+ }
+
+ @Override
+ public List getByRstcd(String rstcd) {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(SdFpssBH::getRstcd, rstcd);
+ return list(wrapper);
+ }
+
+ @Override
+ public boolean add(SdFpssBH sdFpssBH) {
+ return save(sdFpssBH);
+ }
+
+ @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);
+ }
+
+ @Override
+ public boolean deleteById(String stcd, String sttp) {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(SdFpssBH::getStcd, stcd)
+ .eq(SdFpssBH::getSttp, sttp);
+ return remove(wrapper);
+ }
+
+ @Override
+ public SdFpssBH getDetail(String stcd, String sttp) {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(SdFpssBH::getStcd, stcd)
+ .eq(SdFpssBH::getSttp, sttp);
+ return getOne(wrapper);
+ }
+}
\ No newline at end of file