From 01964e6852e3e52ffc2cc7b45cccf583fee93927 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Wed, 17 Apr 2024 14:07:35 +0800
Subject: [PATCH] 填报水位库容导入接口
---
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/excel/TbResStagCapDiscImport.java | 28 +++++++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/ITbResStagCapDiscService.java | 7 +
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/TbResStagCapDiscController.java | 31 +++++++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbResStagCapDiscServiceImpl.java | 60 ++++++++++++++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/excel/TbResStagCapDiscImportExcel.java | 42 ++++++++++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/excel/TbResStagCapDiscExportExcel.java | 46 +++++++++++
6 files changed, 209 insertions(+), 5 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/TbResStagCapDiscController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/TbResStagCapDiscController.java
index f3f354d..cfd85c0 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/TbResStagCapDiscController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/TbResStagCapDiscController.java
@@ -1,17 +1,21 @@
package cn.gistack.sm.sjztmd.controller;
-import cn.gistack.sm.sjztmd.entity.TbAttResBase;
-import cn.gistack.sm.sjztmd.entity.TbFileStorageLocation;
import cn.gistack.sm.sjztmd.entity.TbResStagCapDisc;
+import cn.gistack.sm.sjztmd.excel.TbResStagCapDiscImport;
+import cn.gistack.sm.sjztmd.excel.TbResStagCapDiscImportExcel;
import cn.gistack.sm.sjztmd.service.ITbResStagCapDiscService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
import java.util.List;
@Slf4j
@@ -61,6 +65,29 @@
return R.status(tbResStagCapDiscService.auditByGuid(list));
}
+ /**
+ * 导入模板
+ */
+ @GetMapping("export-template")
+ @ApiOperation(value = "导入模板")
+ public void exportUser(HttpServletResponse response) {
+ List<TbResStagCapDiscImportExcel> list = new ArrayList<>();
+ ExcelUtil.export(response, "水位库容导入模板", "水位库容数据表", list, TbResStagCapDiscImportExcel.class);
+ }
+
+ /**
+ * 导入数据(返回数据给前端,由前端进行真正的保存)
+ */
+ @PostMapping("import-tbResStagCapDisc")
+ @ApiOperation(value = "导入用户", notes = "传入excel")
+ public R importUser(MultipartFile file,String resGuid) {
+
+ List<TbResStagCapDisc> list = tbResStagCapDiscService.readExcel(file);
+
+ return R.data(list);
+ }
+
+
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/excel/TbResStagCapDiscExportExcel.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/excel/TbResStagCapDiscExportExcel.java
new file mode 100644
index 0000000..17a2882
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/excel/TbResStagCapDiscExportExcel.java
@@ -0,0 +1,46 @@
+package cn.gistack.sm.sjztmd.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 水位库容曲线填报导入excel
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class TbResStagCapDiscExportExcel implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ColumnWidth(20)
+ @ExcelProperty(value = "水位")
+ private double stag;
+
+
+ @ColumnWidth(20)
+ @ExcelProperty(value = "库容(万m³)")
+ private double area;
+
+ @ColumnWidth(20)
+ @ExcelProperty(value = "库面面积(km²)")
+ private double cap;
+
+ @ColumnWidth(20)
+ @ExcelProperty({"泄水建筑物泄量(m³/s)", "溢洪道(泄洪洞)"})
+ private double spillway;
+
+ @ColumnWidth(20)
+ @ExcelProperty({"泄水建筑物泄量(m³/s)", "非常溢洪道"})
+ private double emergencySpillway;
+
+ @ColumnWidth(20)
+ @ExcelProperty({"泄水建筑物泄量(m³/s)", "总泄量"})
+ private double totalDischarge;
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/excel/TbResStagCapDiscImport.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/excel/TbResStagCapDiscImport.java
new file mode 100644
index 0000000..92167ae
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/excel/TbResStagCapDiscImport.java
@@ -0,0 +1,28 @@
+package cn.gistack.sm.sjztmd.excel;
+
+import cn.gistack.sm.sjztmd.service.ITbRelResUserService;
+import cn.gistack.sm.sjztmd.service.ITbResStagCapDiscService;
+import lombok.RequiredArgsConstructor;
+import org.springblade.core.excel.support.ExcelImporter;
+
+import java.util.List;
+
+/**
+ * @PROJECT_NAME: skjcmanager
+ * @DESCRIPTION: 导入水库责任人数据
+ * @USER: aix
+ * @DATE: 2023/10/26 10:27
+ */
+@RequiredArgsConstructor
+public class TbResStagCapDiscImport implements ExcelImporter<TbResStagCapDiscImportExcel> {
+
+ private final ITbResStagCapDiscService tbResStagCapDiscService;
+
+ private final String resGuid;
+
+ @Override
+ public void save(List<TbResStagCapDiscImportExcel> data) {
+ tbResStagCapDiscService.importTbResStagCapDisc(data,resGuid);
+ }
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/excel/TbResStagCapDiscImportExcel.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/excel/TbResStagCapDiscImportExcel.java
new file mode 100644
index 0000000..c8c7238
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/excel/TbResStagCapDiscImportExcel.java
@@ -0,0 +1,42 @@
+package cn.gistack.sm.sjztmd.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 水位库容曲线填报导入excel
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class TbResStagCapDiscImportExcel implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ColumnWidth(20)
+ @ExcelProperty(value = "水位(m)")
+ private double stag;
+
+
+ @ColumnWidth(20)
+ @ExcelProperty(value = "库容(万m³)")
+ private double area;
+
+ @ColumnWidth(20)
+ @ExcelProperty(value = "库面面积(km²)")
+ private double cap;
+
+ @ColumnWidth(20)
+ @ExcelProperty({"泄水建筑物泄量(m³/s)", "溢洪道(泄洪洞)"})
+ private double spillway;
+
+ @ColumnWidth(20)
+ @ExcelProperty({"泄水建筑物泄量(m³/s)", "非常溢洪道"})
+ private double emergencySpillway;
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/ITbResStagCapDiscService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/ITbResStagCapDiscService.java
index 6279569..65510c0 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/ITbResStagCapDiscService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/ITbResStagCapDiscService.java
@@ -3,7 +3,10 @@
import cn.gistack.sm.sjztmd.entity.TbAttResRsbVerspi;
import cn.gistack.sm.sjztmd.entity.TbRelResUser;
import cn.gistack.sm.sjztmd.entity.TbResStagCapDisc;
+import cn.gistack.sm.sjztmd.excel.TbRelResUserExcel;
+import cn.gistack.sm.sjztmd.excel.TbResStagCapDiscImportExcel;
import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@@ -15,4 +18,8 @@
Boolean auditByGuid(List<TbResStagCapDisc> list);
List<TbResStagCapDisc> getDetailByResGuid(String ResGuid);
+
+ void importTbResStagCapDisc(List<TbResStagCapDiscImportExcel> data,String resGuid);
+
+ List<TbResStagCapDisc> readExcel(MultipartFile file);
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbResStagCapDiscServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbResStagCapDiscServiceImpl.java
index 1de14d8..f19db44 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbResStagCapDiscServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbResStagCapDiscServiceImpl.java
@@ -4,26 +4,35 @@
import cn.gistack.sm.sjztmd.entity.TbFileStorageLocation;
import cn.gistack.sm.sjztmd.entity.TbRelResUser;
import cn.gistack.sm.sjztmd.entity.TbResStagCapDisc;
+import cn.gistack.sm.sjztmd.excel.TbRelResUserExcel;
+import cn.gistack.sm.sjztmd.excel.TbResStagCapDiscImportExcel;
import cn.gistack.sm.sjztmd.mapper.TbRelResUserMapper;
import cn.gistack.sm.sjztmd.mapper.TbResStagCapDiscMapper;
import cn.gistack.sm.sjztmd.service.ITbAttResBaseService;
import cn.gistack.sm.sjztmd.service.ITbResStagCapDiscService;
+import cn.gistack.sm.sjztmd.util.CalculateUtils;
import cn.gistack.system.user.feign.IUserClient;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.ObjectUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+import java.io.InputStream;
+import java.math.BigDecimal;
import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
import java.util.stream.Collectors;
@Service
@@ -73,6 +82,51 @@
}
@Override
+ public void importTbResStagCapDisc(List<TbResStagCapDiscImportExcel> data,String resGuid) {
+
+ for (int i = 0; i < data.size(); i++) {
+ TbResStagCapDiscImportExcel excel = data.get(0);
+ TbResStagCapDisc tbResStagCapDisc = Objects.requireNonNull(BeanUtil.copy(excel, TbResStagCapDisc.class));
+ tbResStagCapDisc.setResGuid(resGuid);
+ double order = (double) i + 1;
+ tbResStagCapDisc.setOrderId(order);
+ }
+
+ }
+
+ @Override
+ public List<TbResStagCapDisc> readExcel(MultipartFile file) {
+ List<TbResStagCapDiscImportExcel> excelList = new ArrayList<>();
+ try (InputStream inputStream = file.getInputStream()) {
+ EasyExcel.read(inputStream, TbResStagCapDiscImportExcel.class, new AnalysisEventListener<TbResStagCapDiscImportExcel>() {
+ @Override
+ public void invoke(TbResStagCapDiscImportExcel excelData, AnalysisContext analysisContext) {
+ excelList.add(excelData);
+ }
+ @Override
+ public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+ // 所有数据解析完成后的回调
+ }
+ }).sheet().doRead();
+ } catch (Exception e) {
+ e.printStackTrace();
+ // 处理异常,例如返回错误消息给前端
+ }
+
+ List<TbResStagCapDisc> resultList = new ArrayList<>();
+ for (int i = 0; i < excelList.size(); i++) {
+ TbResStagCapDiscImportExcel excel = excelList.get(0);
+ TbResStagCapDisc tbResStagCapDisc = Objects.requireNonNull(BeanUtil.copy(excel, TbResStagCapDisc.class));
+ double order = (double) i + 1;
+ tbResStagCapDisc.setOrderId(order);
+ resultList.add(tbResStagCapDisc);
+ }
+
+
+ return resultList;
+ }
+
+ @Override
public List<TbResStagCapDisc> getAll(TbResStagCapDisc tbResStagCapDisc) {
List<TbResStagCapDisc> list = list(Condition.getQueryWrapper(tbResStagCapDisc)
.orderByAsc("order_id")
--
Gitblit v1.9.3