From e32fc76d4159be3e9a6fc37f64d84c5942abe136 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期二, 13 八月 2024 09:48:13 +0800 Subject: [PATCH] 空单生成空指针异常处理 --- ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java | 59 ++++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 38 insertions(+), 21 deletions(-) diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java index 8943806..992dcee 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java @@ -1,40 +1,37 @@ package com.ycl.platform.service.impl; -import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; +import com.alibaba.excel.EasyExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.platform.domain.entity.CalculateRecord; import com.ycl.platform.domain.entity.CalculateReport; +import com.ycl.platform.domain.excel.CalculateExport; import com.ycl.platform.domain.form.CalculateReportBackfillForm; -import com.ycl.platform.domain.vo.CalculateRecordVO; +import com.ycl.platform.domain.form.CalculateReportForm; +import com.ycl.platform.domain.query.CalculateReportQuery; import com.ycl.platform.domain.vo.CalculateReportDetailVO; +import com.ycl.platform.domain.vo.CalculateReportVO; import com.ycl.platform.mapper.CalculateRecordMapper; import com.ycl.platform.mapper.CalculateReportMapper; import com.ycl.platform.service.CalculateReportService; import com.ycl.system.Result; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ycl.platform.domain.form.CalculateReportForm; -import com.ycl.platform.domain.vo.CalculateReportVO; -import com.ycl.platform.domain.query.CalculateReportQuery; - -import java.math.BigDecimal; -import java.util.List; - -import com.ycl.utils.SecurityUtils; -import enumeration.general.CalculateReportStatusEnum; -import org.apache.commons.lang3.StringUtils; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.ycl.system.page.PageUtil; -import org.springframework.stereotype.Service; -import org.springframework.security.core.context.SecurityContextHolder; +import enumeration.general.CalculateReportStatusEnum; +import jakarta.servlet.http.HttpServletResponse; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; -import java.util.ArrayList; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.List; import java.util.Objects; import java.util.stream.Collectors; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; -import lombok.RequiredArgsConstructor; -import org.springframework.util.CollectionUtils; /** * 鏍哥畻鎶ュ憡 鏈嶅姟瀹炵幇绫� @@ -198,4 +195,24 @@ baseMapper.updateById(report); return Result.ok("鎿嶄綔鎴愬姛"); } + + @Override + @SneakyThrows + public void export(Integer contractId, HttpServletResponse response) { + // 鑾峰彇鏁版嵁 + List<CalculateExport> list = baseMapper.exportData(contractId); + CalculateExport calculateExport = new CalculateExport(); + calculateExport.setRuleName("鍚堣"); + calculateExport.setNum(list.stream().mapToInt(CalculateExport::getNum).sum()); + calculateExport.setScore(100 + list.stream().mapToInt(CalculateExport::getScore).sum()); + list.add(calculateExport); + // 杈撳嚭鏂囦欢 + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("鏍哥畻鎶ュ憡", StandardCharsets.UTF_8).replace("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); + EasyExcel.write(response.getOutputStream(), CalculateExport.class) + .sheet("鏍哥畻鎶ュ憡") + .doWrite(list); + } } -- Gitblit v1.8.0