Administrator
2023-12-25 b44eb4208d92a7817ed01526671fd8ff7686a175
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java
@@ -1,5 +1,7 @@
package com.dy.pipIrrProject.divide;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.dy.common.aop.SsoAop;
import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.BaseResponseUtils;
@@ -16,14 +18,20 @@
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.MediaType;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.List;
@@ -55,7 +63,7 @@
            )
    })
    @GetMapping(path = "/getDivides", consumes = MediaType.APPLICATION_JSON_VALUE)
    @SsoAop("-1")
    @SsoAop()
    public BaseResponse<QueryResultVo<List<VoDivide>>> getDivides(@RequestBody @Parameter(description = "查询form表单json数据", required = true) QueryVo vo){
        try {
            QueryResultVo<List<VoDivide>> res = divideSv.getDivides(vo);
@@ -77,7 +85,7 @@
    })
    @PostMapping(path = "add", consumes = MediaType.APPLICATION_JSON_VALUE)
    @Transactional(rollbackFor = Exception.class)
    @SsoAop("-1")//@SsoAop(power = "-1")
    @SsoAop()
    public BaseResponse<Boolean> add(@RequestBody @Parameter(description = "form表单json数据", required = true) @Valid PrDivide po, @Parameter(hidden = true) BindingResult bindingResult){
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        if(bindingResult != null && bindingResult.hasErrors()){
@@ -93,4 +101,44 @@
        return BaseResponseUtils.buildSuccess(true) ;
    }
    /**
     * 导出分水房列表
     * @param response
     * @param vo
     */
    @SneakyThrows(IOException.class)
    @RequestMapping(value = "/exportDivides", method = RequestMethod.GET)
    public void exportDivides(HttpServletResponse response, QueryVo vo) {
        setExcelRespProp(response, "分水房列表");
        //List<VoDivide> memberList = LocalJsonUtil.getListFromJson("json/members.json", VoDivide.class);
        List<VoDivide> memberList = divideSv.exportDivides(vo);
        EasyExcel.write(response.getOutputStream())
                .head(VoDivide.class)
                .excelType(ExcelTypeEnum.XLSX)
                .sheet("分水房列表")
                .doWrite(memberList);
    }
    @SneakyThrows
    @RequestMapping(value = "/importDivides", method = RequestMethod.POST)
    @ResponseBody
    public BaseResponse<Boolean> importDivides(@RequestPart("file") MultipartFile file) {
        List<VoDivide> memberList = EasyExcel.read(file.getInputStream())
                .head(VoDivide.class)
                .sheet()
                .doReadSync();
        return BaseResponseUtils.buildSuccess(memberList) ;
    }
    /**
     * 设置excel下载响应头属性
     */
    private void setExcelRespProp(HttpServletResponse response, String rawFileName) throws UnsupportedEncodingException {
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        response.setCharacterEncoding("utf-8");
        String fileName = URLEncoder.encode(rawFileName, "UTF-8").replaceAll("\\+", "%20");
        response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
    }
}