Ver código fonte

添加分摊报表支持大于256列的处理

JammeyJiang 8 meses atrás
pai
commit
7997c030b3
1 arquivos alterados com 30 adições e 3 exclusões
  1. 30 3
      src/main/java/com/kcim/web/ExcelController.java

+ 30 - 3
src/main/java/com/kcim/web/ExcelController.java

@@ -25,8 +25,6 @@ import com.kcim.service.impl.DepartmentServiceImpl;
 import com.kcim.service.impl.ProductServiceImpl;
 import com.kcim.vo.ResponsibilityDepartIdVO;
 import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.poi.ss.usermodel.Sheet;
@@ -523,7 +521,7 @@ public class ExcelController extends AbstractController {
 //
 //    }
     @ApiOperation("分摊报表输出2.0")
-    @GetMapping("/getShareReportTemplate")
+    @GetMapping("/getTemplate")
     public void getTemplate(HttpServletResponse response, Integer levelSort, String token, Integer year, Integer month, Long shareLevelId) throws IOException {
 //        int userId = jwtUtil.getUserId(token);
 //        User user = userService.getById(userId);
@@ -554,6 +552,35 @@ public class ExcelController extends AbstractController {
 
     }
 
+    @ApiOperation("分摊报表输出")
+    @GetMapping("/getShareReportTemplate")
+    public void getShareReportTemplate(HttpServletResponse response, Integer levelSort, Integer year, Integer month, Long shareLevelId) throws IOException {
+
+        ExcelWriter writer =ExcelUtil.getWriter(true);
+        Sheet sheet = writer.getSheet();
+        CostShareLevel service = shareLevelService.getById(shareLevelId);        // 第几次分摊
+        writer = allocationService.getShareReportTemplate(writer, levelSort, sheet, year, month, shareLevelId);
+
+        String fileName = service.getShareName() + "分摊.xlsx";
+        String headerKey = "Content-Disposition";
+        String encodedFileName = URLEncoder.encode(fileName, "UTF-8");
+        // 设置响应头
+        response.setCharacterEncoding("UTF-8");
+        //设置文件格式为.xlsx
+        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+        response.setHeader(headerKey, encodedFileName);
+
+        // 获取响应的输出流
+        ServletOutputStream out = response.getOutputStream();
+
+        // 将Excel内容写入响应的输出流中
+        writer.flush(out, true);
+
+        // 关闭ExcelWriter和输出流
+        writer.close();
+        out.close();
+    }
+
     /**
      * 获取执行类型的成本项目
      *