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); } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/excel/TbResStagCapDiscExportExcel.java
New file @@ -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; } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/excel/TbResStagCapDiscImport.java
New file @@ -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); } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/excel/TbResStagCapDiscImportExcel.java
New file @@ -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; } 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); } 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")