diff --git a/manager-admin/src/main/java/com/hshh/indicator/controller/IndicatorBottomCsvMapperController.java b/manager-admin/src/main/java/com/hshh/indicator/controller/IndicatorBottomCsvMapperController.java
new file mode 100644
index 0000000..0c92323
--- /dev/null
+++ b/manager-admin/src/main/java/com/hshh/indicator/controller/IndicatorBottomCsvMapperController.java
@@ -0,0 +1,18 @@
+package com.hshh.indicator.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.stereotype.Controller;
+
+/**
+ *
+ * 保存底部指标和csv列的映射关系 前端控制器
+ *
+ *
+ * @author liDongYu
+ * @since 2025-08-10
+ */
+@Controller
+@RequestMapping("/indicator/indicatorBottomCsvMapper")
+public class IndicatorBottomCsvMapperController {
+
+}
diff --git a/manager-admin/src/main/java/com/hshh/indicator/controller/IndicatorCsvController.java b/manager-admin/src/main/java/com/hshh/indicator/controller/IndicatorCsvController.java
new file mode 100644
index 0000000..48de144
--- /dev/null
+++ b/manager-admin/src/main/java/com/hshh/indicator/controller/IndicatorCsvController.java
@@ -0,0 +1,18 @@
+package com.hshh.indicator.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.stereotype.Controller;
+
+/**
+ *
+ * 记录顶级指标和csv的对应关系 前端控制器
+ *
+ *
+ * @author liDongYu
+ * @since 2025-08-10
+ */
+@Controller
+@RequestMapping("/indicator/indicatorCsv")
+public class IndicatorCsvController {
+
+}
diff --git a/manager-admin/src/main/java/com/hshh/indicator/entity/IndicatorBottomCsvMapper.java b/manager-admin/src/main/java/com/hshh/indicator/entity/IndicatorBottomCsvMapper.java
new file mode 100644
index 0000000..0ad46b3
--- /dev/null
+++ b/manager-admin/src/main/java/com/hshh/indicator/entity/IndicatorBottomCsvMapper.java
@@ -0,0 +1,72 @@
+package com.hshh.indicator.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+
+/**
+ *
+ * 保存底部指标和csv列的映射关系
+ *
+ *
+ * @author liDongYu
+ * @since 2025-08-10
+ */
+@TableName("m_data_indicator_bottom_csv_mapper")
+
+public class IndicatorBottomCsvMapper implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private Integer id;
+
+
+ private Integer indicatorTopId;
+
+
+ private Integer indicatorId;
+
+
+ private Integer csvColumnId;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public Integer getIndicatorTopId() {
+ return indicatorTopId;
+ }
+
+ public void setIndicatorTopId(Integer indicatorTopId) {
+ this.indicatorTopId = indicatorTopId;
+ }
+
+ public Integer getIndicatorId() {
+ return indicatorId;
+ }
+
+ public void setIndicatorId(Integer indicatorId) {
+ this.indicatorId = indicatorId;
+ }
+
+ public Integer getCsvColumnId() {
+ return csvColumnId;
+ }
+
+ public void setCsvColumnId(Integer csvColumnId) {
+ this.csvColumnId = csvColumnId;
+ }
+
+ @Override
+ public String toString() {
+ return "IndicatorBottomCsvMapper{" +
+ "id = " + id +
+ ", indicatorTopId = " + indicatorTopId +
+ ", indicatorId = " + indicatorId +
+ ", csvColumnId = " + csvColumnId +
+ "}";
+ }
+}
diff --git a/manager-admin/src/main/java/com/hshh/indicator/entity/IndicatorBottomFormMapper.java b/manager-admin/src/main/java/com/hshh/indicator/entity/IndicatorBottomFormMapper.java
new file mode 100644
index 0000000..bc8e00a
--- /dev/null
+++ b/manager-admin/src/main/java/com/hshh/indicator/entity/IndicatorBottomFormMapper.java
@@ -0,0 +1,37 @@
+package com.hshh.indicator.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import lombok.Data;
+
+/**
+ * 最底部指标.
+ *
+ * @author liDongYu
+ * @since 2025-08-08
+ */
+@TableName("m_data_indicator_bottom_form_mapper")
+@Data
+public class IndicatorBottomFormMapper implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+
+ private Integer indicatorId;
+
+
+ private Integer formFieldId;
+
+
+
+
+
+ private Integer indicatorTopId;
+
+
+}
diff --git a/manager-admin/src/main/java/com/hshh/indicator/entity/IndicatorCsv.java b/manager-admin/src/main/java/com/hshh/indicator/entity/IndicatorCsv.java
new file mode 100644
index 0000000..fa8baa8
--- /dev/null
+++ b/manager-admin/src/main/java/com/hshh/indicator/entity/IndicatorCsv.java
@@ -0,0 +1,73 @@
+package com.hshh.indicator.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+
+/**
+ *
+ * 记录顶级指标和csv的对应关系
+ *
+ *
+ * @author liDongYu
+ * @since 2025-08-10
+ */
+@TableName("m_data_indicator_csv")
+
+public class IndicatorCsv implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ private String csvName;
+
+ private byte[] csvData;
+
+
+ private Integer indicatorTopId;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getCsvName() {
+ return csvName;
+ }
+
+ public void setCsvName(String csvName) {
+ this.csvName = csvName;
+ }
+
+ public byte[] getCsvData() {
+ return csvData;
+ }
+
+ public void setCsvData(byte[] csvData) {
+ this.csvData = csvData;
+ }
+
+ public Integer getIndicatorTopId() {
+ return indicatorTopId;
+ }
+
+ public void setIndicatorTopId(Integer indicatorTopId) {
+ this.indicatorTopId = indicatorTopId;
+ }
+
+ @Override
+ public String toString() {
+ return "IndicatorCsv{" +
+ "id = " + id +
+ ", csvName = " + csvName +
+ ", csvData = " + csvData +
+ ", indicatorTopId = " + indicatorTopId +
+ "}";
+ }
+}
diff --git a/manager-admin/src/main/java/com/hshh/indicator/entity/IndicatorCsvColumn.java b/manager-admin/src/main/java/com/hshh/indicator/entity/IndicatorCsvColumn.java
new file mode 100644
index 0000000..1ee2a4d
--- /dev/null
+++ b/manager-admin/src/main/java/com/hshh/indicator/entity/IndicatorCsvColumn.java
@@ -0,0 +1,39 @@
+package com.hshh.indicator.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import lombok.Data;
+
+/**
+
+
+ * 指标对应的csv模板中的列,只保留最近一次的记录.
+
+ *
+ * @author liDongYu
+ * @since 2025-08-10
+ */
+@Data
+@TableName("m_data_indicator_csv_column")
+
+public class IndicatorCsvColumn implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+
+ private Integer indicatorCsvId;
+
+
+ private String csvColumnName;
+
+
+ private Integer csvColumnNum;
+ private Integer indicatorTopId;
+
+
+}
diff --git a/manager-admin/src/main/java/com/hshh/indicator/entity/IndicatorFormMapper.java b/manager-admin/src/main/java/com/hshh/indicator/entity/IndicatorFormMapper.java
new file mode 100644
index 0000000..ef37008
--- /dev/null
+++ b/manager-admin/src/main/java/com/hshh/indicator/entity/IndicatorFormMapper.java
@@ -0,0 +1,30 @@
+package com.hshh.indicator.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import lombok.Data;
+
+/**
+ * 最顶部指标 .
+ *
+ * @author liDongYu
+ * @since 2025-08-08
+ */
+@TableName("m_data_indicator_form")
+@Data
+public class IndicatorFormMapper implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ private Integer indicatorTopId;
+
+ private Integer indicatorModelId;
+
+
+
+}
diff --git a/manager-admin/src/main/java/com/hshh/indicator/mapper/IndicatorBottomCsvMapperMapper.java b/manager-admin/src/main/java/com/hshh/indicator/mapper/IndicatorBottomCsvMapperMapper.java
new file mode 100644
index 0000000..1209401
--- /dev/null
+++ b/manager-admin/src/main/java/com/hshh/indicator/mapper/IndicatorBottomCsvMapperMapper.java
@@ -0,0 +1,16 @@
+package com.hshh.indicator.mapper;
+
+import com.hshh.indicator.entity.IndicatorBottomCsvMapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 保存底部指标和csv列的映射关系 Mapper 接口
+ *
+ *
+ * @author liDongYu
+ * @since 2025-08-10
+ */
+public interface IndicatorBottomCsvMapperMapper extends BaseMapper {
+
+}
diff --git a/manager-admin/src/main/java/com/hshh/indicator/mapper/IndicatorBottomMapperMapper.java b/manager-admin/src/main/java/com/hshh/indicator/mapper/IndicatorBottomMapperMapper.java
new file mode 100644
index 0000000..0a9b144
--- /dev/null
+++ b/manager-admin/src/main/java/com/hshh/indicator/mapper/IndicatorBottomMapperMapper.java
@@ -0,0 +1,17 @@
+package com.hshh.indicator.mapper;
+
+import com.hshh.indicator.entity.IndicatorBottomFormMapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author liDongYu
+ * @since 2025-08-08
+ */
+public interface IndicatorBottomMapperMapper extends BaseMapper {
+
+
+}
diff --git a/manager-admin/src/main/java/com/hshh/indicator/mapper/IndicatorCsvColumnMapper.java b/manager-admin/src/main/java/com/hshh/indicator/mapper/IndicatorCsvColumnMapper.java
new file mode 100644
index 0000000..a0a7c5e
--- /dev/null
+++ b/manager-admin/src/main/java/com/hshh/indicator/mapper/IndicatorCsvColumnMapper.java
@@ -0,0 +1,16 @@
+package com.hshh.indicator.mapper;
+
+import com.hshh.indicator.entity.IndicatorCsvColumn;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 指标对应的csv模板中的列,只保留最近一次的记录 Mapper 接口
+ *
+ *
+ * @author liDongYu
+ * @since 2025-08-10
+ */
+public interface IndicatorCsvColumnMapper extends BaseMapper {
+
+}
diff --git a/manager-admin/src/main/java/com/hshh/indicator/mapper/IndicatorCsvMapper.java b/manager-admin/src/main/java/com/hshh/indicator/mapper/IndicatorCsvMapper.java
new file mode 100644
index 0000000..091ba34
--- /dev/null
+++ b/manager-admin/src/main/java/com/hshh/indicator/mapper/IndicatorCsvMapper.java
@@ -0,0 +1,16 @@
+package com.hshh.indicator.mapper;
+
+import com.hshh.indicator.entity.IndicatorCsv;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 记录顶级指标和csv的对应关系 Mapper 接口
+ *
+ *
+ * @author liDongYu
+ * @since 2025-08-10
+ */
+public interface IndicatorCsvMapper extends BaseMapper {
+
+}
diff --git a/manager-admin/src/main/java/com/hshh/indicator/mapper/IndicatorFormMapperMapper.java b/manager-admin/src/main/java/com/hshh/indicator/mapper/IndicatorFormMapperMapper.java
new file mode 100644
index 0000000..dde389c
--- /dev/null
+++ b/manager-admin/src/main/java/com/hshh/indicator/mapper/IndicatorFormMapperMapper.java
@@ -0,0 +1,22 @@
+package com.hshh.indicator.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.hshh.indicator.entity.IndicatorFormMapper;
+import java.util.List;
+
+/**
+ * Mapper 接口.
+ *
+ * @author liDongYu
+ * @since 2025-08-08
+ */
+public interface IndicatorFormMapperMapper extends BaseMapper {
+
+ /**
+ * 根据指标顶级ID查询他的对应的模型和csv.
+ *
+ * @param id 指标ID
+ * @return 对应关系列表
+ */
+ List selectModelAndCsvNameByIndicator(Integer id);
+}
diff --git a/manager-admin/src/main/java/com/hshh/indicator/service/IndicatorBottomCsvMapperService.java b/manager-admin/src/main/java/com/hshh/indicator/service/IndicatorBottomCsvMapperService.java
new file mode 100644
index 0000000..c8966d9
--- /dev/null
+++ b/manager-admin/src/main/java/com/hshh/indicator/service/IndicatorBottomCsvMapperService.java
@@ -0,0 +1,15 @@
+package com.hshh.indicator.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.hshh.indicator.entity.IndicatorBottomCsvMapper;
+import java.util.List;
+
+/**
+ * 保存底部指标和csv列的映射关系 服务类.
+ *
+ * @author liDongYu
+ * @since 2025-08-10
+ */
+public interface IndicatorBottomCsvMapperService extends IService {
+ List queryListByIndicatorTopId(Integer indicatorTopId);
+}
diff --git a/manager-admin/src/main/java/com/hshh/indicator/service/IndicatorBottomFormMapperService.java b/manager-admin/src/main/java/com/hshh/indicator/service/IndicatorBottomFormMapperService.java
new file mode 100644
index 0000000..1ef0ae1
--- /dev/null
+++ b/manager-admin/src/main/java/com/hshh/indicator/service/IndicatorBottomFormMapperService.java
@@ -0,0 +1,22 @@
+package com.hshh.indicator.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.hshh.indicator.entity.IndicatorBottomFormMapper;
+import java.util.List;
+
+/**
+ * 指标底部对应服务类.
+ *
+ * @author liDongYu
+ * @since 2025-08-08
+ */
+public interface IndicatorBottomFormMapperService extends IService {
+
+ /**
+ * 根据顶部指标ID查询对应关系.
+ *
+ * @param topId 顶部指标ID
+ * @return 对应关系list
+ */
+ List queryListByIndicatorId(Integer topId);
+}
diff --git a/manager-admin/src/main/java/com/hshh/indicator/service/IndicatorCsvColumnService.java b/manager-admin/src/main/java/com/hshh/indicator/service/IndicatorCsvColumnService.java
new file mode 100644
index 0000000..6bf0532
--- /dev/null
+++ b/manager-admin/src/main/java/com/hshh/indicator/service/IndicatorCsvColumnService.java
@@ -0,0 +1,22 @@
+package com.hshh.indicator.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.hshh.indicator.entity.IndicatorCsvColumn;
+import java.util.List;
+
+/**
+ * 指标对应的csv模板中的列,只保留最近一次的记录 服务类.
+ *
+ * @author liDongYu
+ * @since 2025-08-10
+ */
+public interface IndicatorCsvColumnService extends IService {
+
+ /**
+ * 根据指标ID获取csv文件列信息.
+ *
+ * @param id csv文件id
+ * @return csv文件列
+ */
+ List listByIdOrderByColumn(Integer id);
+}
diff --git a/manager-admin/src/main/java/com/hshh/indicator/service/IndicatorCsvService.java b/manager-admin/src/main/java/com/hshh/indicator/service/IndicatorCsvService.java
new file mode 100644
index 0000000..732b04b
--- /dev/null
+++ b/manager-admin/src/main/java/com/hshh/indicator/service/IndicatorCsvService.java
@@ -0,0 +1,21 @@
+package com.hshh.indicator.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.hshh.indicator.entity.IndicatorCsv;
+
+/**
+ * 记录顶级指标和csv的对应关系 服务类.
+ *
+ * @author liDongYu
+ * @since 2025-08-10
+ */
+public interface IndicatorCsvService extends IService {
+
+ /**
+ * 根据指标id查询csv对应记录.
+ *
+ * @param topId 顶级指标ID
+ * @return 对应关系(除了csv实际数据)
+ */
+ IndicatorCsv selectByIndicatorId(Integer topId);
+}
diff --git a/manager-admin/src/main/java/com/hshh/indicator/service/IndicatorFromMapperService.java b/manager-admin/src/main/java/com/hshh/indicator/service/IndicatorFromMapperService.java
new file mode 100644
index 0000000..78368e2
--- /dev/null
+++ b/manager-admin/src/main/java/com/hshh/indicator/service/IndicatorFromMapperService.java
@@ -0,0 +1,39 @@
+package com.hshh.indicator.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.hshh.indicator.entity.IndicatorFormMapper;
+import java.util.List;
+
+/**
+ *
+ * 服务类
+ *
+ *
+ * @author liDongYu
+ * @since 2025-08-08
+ */
+public interface IndicatorFromMapperService extends IService {
+
+ /**
+ * 根据指标顶级ID查询他的对应的模型和csv.
+ *
+ * @param id 指标ID
+ * @return 对应关系列表
+ */
+ List selectModelAndCsvNameByIndicator(Integer id);
+
+ /**
+ * 保存form和指标的映射关系.
+ *
+ * @param topId 顶级指标ID
+ * @param formId form表单ID
+ */
+ void saveFormMapper(Integer topId, Integer formId);
+
+ /**
+ * 根据指标顶级ID删除对应关系.
+ *
+ * @param indicatorTopId 指标顶级ID
+ */
+ void deleteFormMapperByIndicatorId(Integer indicatorTopId);
+}
diff --git a/manager-admin/src/main/java/com/hshh/indicator/service/impl/IndicatorBottomCsvMapperServiceImpl.java b/manager-admin/src/main/java/com/hshh/indicator/service/impl/IndicatorBottomCsvMapperServiceImpl.java
new file mode 100644
index 0000000..8e41f5e
--- /dev/null
+++ b/manager-admin/src/main/java/com/hshh/indicator/service/impl/IndicatorBottomCsvMapperServiceImpl.java
@@ -0,0 +1,30 @@
+package com.hshh.indicator.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.hshh.indicator.entity.IndicatorBottomCsvMapper;
+import com.hshh.indicator.mapper.IndicatorBottomCsvMapperMapper;
+import com.hshh.indicator.service.IndicatorBottomCsvMapperService;
+import java.util.List;
+import org.springframework.stereotype.Service;
+
+/**
+
+ * 保存底部指标和csv列的映射关系 服务实现类.
+
+ *
+ * @author liDongYu
+ * @since 2025-08-10
+ */
+@Service
+public class IndicatorBottomCsvMapperServiceImpl extends
+ ServiceImpl implements
+ IndicatorBottomCsvMapperService {
+
+ @Override
+ public List queryListByIndicatorTopId(Integer indicatorTopId) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("indicator_top_id", indicatorTopId);
+ return this.list(queryWrapper);
+ }
+}
diff --git a/manager-admin/src/main/java/com/hshh/indicator/service/impl/IndicatorBottomMapperServiceImpl.java b/manager-admin/src/main/java/com/hshh/indicator/service/impl/IndicatorBottomMapperServiceImpl.java
new file mode 100644
index 0000000..580205a
--- /dev/null
+++ b/manager-admin/src/main/java/com/hshh/indicator/service/impl/IndicatorBottomMapperServiceImpl.java
@@ -0,0 +1,30 @@
+package com.hshh.indicator.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.hshh.indicator.entity.IndicatorBottomFormMapper;
+import com.hshh.indicator.mapper.IndicatorBottomMapperMapper;
+import com.hshh.indicator.service.IndicatorBottomFormMapperService;
+import java.util.List;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ * 服务实现类
+ *
+ *
+ * @author liDongYu
+ * @since 2025-08-08
+ */
+@Service
+public class IndicatorBottomMapperServiceImpl extends
+ ServiceImpl implements
+ IndicatorBottomFormMapperService {
+
+ @Override
+ public List queryListByIndicatorId(Integer topId) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("indicator_top_id", topId);
+ return this.list(queryWrapper);
+ }
+}
diff --git a/manager-admin/src/main/java/com/hshh/indicator/service/impl/IndicatorCsvColumnServiceImpl.java b/manager-admin/src/main/java/com/hshh/indicator/service/impl/IndicatorCsvColumnServiceImpl.java
new file mode 100644
index 0000000..f58d632
--- /dev/null
+++ b/manager-admin/src/main/java/com/hshh/indicator/service/impl/IndicatorCsvColumnServiceImpl.java
@@ -0,0 +1,29 @@
+package com.hshh.indicator.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.hshh.indicator.entity.IndicatorCsvColumn;
+import com.hshh.indicator.mapper.IndicatorCsvColumnMapper;
+import com.hshh.indicator.service.IndicatorCsvColumnService;
+import java.util.List;
+import org.springframework.stereotype.Service;
+
+/**
+ * 指标对应的csv模板中的列,只保留最近一次的记录 服务实现类.
+ *
+ * @author liDongYu
+ * @since 2025-08-10
+ */
+@Service
+public class IndicatorCsvColumnServiceImpl extends
+ ServiceImpl implements
+ IndicatorCsvColumnService {
+
+ @Override
+ public List listByIdOrderByColumn(Integer indicatorId) {
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("indicator_csv_id", indicatorId);
+ queryWrapper.orderByAsc("csv_column_num");
+ return this.list(queryWrapper);
+ }
+}
diff --git a/manager-admin/src/main/java/com/hshh/indicator/service/impl/IndicatorCsvServiceImpl.java b/manager-admin/src/main/java/com/hshh/indicator/service/impl/IndicatorCsvServiceImpl.java
new file mode 100644
index 0000000..acb4abb
--- /dev/null
+++ b/manager-admin/src/main/java/com/hshh/indicator/service/impl/IndicatorCsvServiceImpl.java
@@ -0,0 +1,34 @@
+package com.hshh.indicator.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.hshh.indicator.entity.IndicatorCsv;
+import com.hshh.indicator.mapper.IndicatorCsvMapper;
+import com.hshh.indicator.service.IndicatorCsvService;
+import java.util.List;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ * 记录顶级指标和csv的对应关系 服务实现类
+ *
+ *
+ * @author liDongYu
+ * @since 2025-08-10
+ */
+@Service
+public class IndicatorCsvServiceImpl extends
+ ServiceImpl implements
+ IndicatorCsvService {
+
+ @Override
+ public IndicatorCsv selectByIndicatorId(Integer topId) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.select("id", "csv_name", "indicator_top_id").eq("indicator_top_id", topId);
+ List list = baseMapper.selectList(queryWrapper);
+ if (list != null && !list.isEmpty()) {
+ return list.get(0);
+ }
+ return null;
+ }
+}
diff --git a/manager-admin/src/main/java/com/hshh/indicator/service/impl/IndicatorFormMapperServiceImpl.java b/manager-admin/src/main/java/com/hshh/indicator/service/impl/IndicatorFormMapperServiceImpl.java
new file mode 100644
index 0000000..77baccf
--- /dev/null
+++ b/manager-admin/src/main/java/com/hshh/indicator/service/impl/IndicatorFormMapperServiceImpl.java
@@ -0,0 +1,46 @@
+package com.hshh.indicator.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.hshh.indicator.entity.IndicatorFormMapper;
+import com.hshh.indicator.mapper.IndicatorFormMapperMapper;
+import com.hshh.indicator.service.IndicatorFromMapperService;
+import java.util.List;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 服务实现类.
+ *
+ * @author liDongYu
+ * @since 2025-08-08
+ */
+@Service
+public class IndicatorFormMapperServiceImpl extends
+ ServiceImpl implements
+ IndicatorFromMapperService {
+
+ @Override
+ public List selectModelAndCsvNameByIndicator(Integer id) {
+ return this.baseMapper.selectModelAndCsvNameByIndicator(id);
+ }
+
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public void saveFormMapper(Integer topId, Integer formId) {
+ deleteFormMapperByIndicatorId(formId);
+ IndicatorFormMapper formMapper = new IndicatorFormMapper();
+ formMapper.setIndicatorTopId(topId);
+ formMapper.setIndicatorModelId(formId);
+ save(formMapper);
+
+ }
+
+ @Override
+ public void deleteFormMapperByIndicatorId(Integer indicatorTopId) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("indicator_top_id", indicatorTopId);
+ this.baseMapper.delete(queryWrapper);
+
+ }
+}
diff --git a/manager-admin/src/main/resources/mapper/IndicatorBottomCsvMapperMapper.xml b/manager-admin/src/main/resources/mapper/IndicatorBottomCsvMapperMapper.xml
new file mode 100644
index 0000000..5905f96
--- /dev/null
+++ b/manager-admin/src/main/resources/mapper/IndicatorBottomCsvMapperMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/manager-admin/src/main/resources/mapper/IndicatorBottomMapperMapper.xml b/manager-admin/src/main/resources/mapper/IndicatorBottomMapperMapper.xml
new file mode 100644
index 0000000..24346b7
--- /dev/null
+++ b/manager-admin/src/main/resources/mapper/IndicatorBottomMapperMapper.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
diff --git a/manager-admin/src/main/resources/mapper/IndicatorCsvColumnMapper.xml b/manager-admin/src/main/resources/mapper/IndicatorCsvColumnMapper.xml
new file mode 100644
index 0000000..aedd8cc
--- /dev/null
+++ b/manager-admin/src/main/resources/mapper/IndicatorCsvColumnMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/manager-admin/src/main/resources/mapper/IndicatorCsvMapper.xml b/manager-admin/src/main/resources/mapper/IndicatorCsvMapper.xml
new file mode 100644
index 0000000..62a3fd0
--- /dev/null
+++ b/manager-admin/src/main/resources/mapper/IndicatorCsvMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/manager-admin/src/main/resources/mapper/IndicatorFormMapperMapper.xml b/manager-admin/src/main/resources/mapper/IndicatorFormMapperMapper.xml
new file mode 100644
index 0000000..5c76f80
--- /dev/null
+++ b/manager-admin/src/main/resources/mapper/IndicatorFormMapperMapper.xml
@@ -0,0 +1,8 @@
+
+
+
+
+