guoshilong
2024-04-17 01964e6852e3e52ffc2cc7b45cccf583fee93927
填报水位库容导入接口
3 files modified
3 files added
214 ■■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/TbResStagCapDiscController.java 31 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/excel/TbResStagCapDiscExportExcel.java 46 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/excel/TbResStagCapDiscImport.java 28 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/excel/TbResStagCapDiscImportExcel.java 42 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/ITbResStagCapDiscService.java 7 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbResStagCapDiscServiceImpl.java 60 ●●●●● patch | view | raw | blame | history
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")