Bladeren bron

feat:文件生成excel切换到xlsx

chenjianhua 2 weken geleden
bovenliggende
commit
f57a406aea

+ 7 - 7
service-base/src/main/java/com/simuwang/base/common/util/ExcelUtil.java

@@ -16,7 +16,7 @@ import org.apache.pdfbox.Loader;
 import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.poi.hssf.usermodel.*;
 import org.apache.poi.ss.usermodel.*;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.apache.poi.xssf.usermodel.*;
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
 import org.jsoup.nodes.Element;
@@ -382,19 +382,19 @@ public class ExcelUtil {
         return data;
     }
 
-    public static HSSFWorkbook getHSSFWorkbook(String sheetName, List<String> title, Map<String, List<List<String>>> valueMap, HSSFWorkbook wb) {
+    public static XSSFWorkbook getHSSFWorkbook(String sheetName, List<String> title, Map<String, List<List<String>>> valueMap, XSSFWorkbook wb) {
 
         // 第一步,创建一个HSSFWorkbook,对应一个Excel文件
         if (wb == null) {
-            wb = new HSSFWorkbook();
+            wb = new XSSFWorkbook();
         }
         try {
             // 第二步,在workbook中添加一个sheet,对应Excel文件中的sheet
-            HSSFSheet sheet = wb.createSheet(sheetName);
+            XSSFSheet sheet = wb.createSheet(sheetName);
             // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制
-            HSSFRow row = sheet.createRow(0);
+            XSSFRow row = sheet.createRow(0);
             // 第四步,创建单元格,并设置值表头 设置表头居中
-            HSSFCellStyle style = wb.createCellStyle();
+            XSSFCellStyle style = wb.createCellStyle();
             style.setAlignment(HorizontalAlignment.LEFT);
             style.setWrapText(true);
             sheet.setColumnWidth(0, 10000);
@@ -404,7 +404,7 @@ public class ExcelUtil {
             sheet.setColumnWidth(4, 8000);
             sheet.setColumnWidth(5, 5000);
             //声明列对象
-            HSSFCell cell = null;
+            XSSFCell cell = null;
             //创建标题
             for (int i = 0; i < title.size(); i++) {
                 cell = row.createCell(i);

+ 1 - 1
service-base/src/main/java/com/simuwang/base/mapper/daq/DeletionInfoMapper.java

@@ -60,7 +60,7 @@ public interface DeletionInfoMapper {
 
     int countFundDeletion(@Param("fundId")String fundId);
 
-    List<EmailDeletionInfoDO> selectDeletionDetailByFundId(@Param("fundId")String fundId,@Param("updateTime")String updateTime);
+    List<EmailDeletionInfoDO> selectDeletionDetailByFundId(@Param("fundId")String fundId);
 
     List<FundDeletionTypeDO> getFundDeletionTypeMapList();
 

+ 1 - 1
service-base/src/main/resources/mapper/daq/DeletionInfoMapper.xml

@@ -274,7 +274,7 @@
         left join pvn_company_info c on c.company_id=info.trust_id and c.isvalid=1
         left join channel_info ci on ci.id=d.channel_id and ci.isvalid=1
         where d.isvalid=1 and info.isvalid=1  and d.remark is null and d.is_send=0
-        and d.fund_id = #{fundId} and d.createtime >= #{updateTime}
+        and d.fund_id = #{fundId}
         order by info.fund_id desc,d.deletion_type desc,d.deletion_date desc
     </select>
     <select id="getFundDeletionTypeMapList" resultType="com.simuwang.base.pojo.dos.FundDeletionTypeDO">

+ 3 - 2
service-manage/src/main/java/com/simuwang/manage/api/deletion/DeletionController.java

@@ -17,6 +17,7 @@ import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -123,11 +124,11 @@ public class DeletionController {
             dataList.add(data);
         }
         values.put(sheetName,dataList);
-        HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName,head,values,null);
+        XSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName,head,values,null);
         try {
             response.setContentType("application/x-xls");
             response.setCharacterEncoding("utf-8");
-            response.addHeader("Content-Disposition", "attachment;filename=" + EncodeUtil.encodeUTF8("缺失明细.xls"));
+            response.addHeader("Content-Disposition", "attachment;filename=" + EncodeUtil.encodeUTF8("缺失明细.xlsx"));
             ServletOutputStream outputStream = response.getOutputStream();
             wb.write(outputStream);
             outputStream.flush();

+ 1 - 1
service-manage/src/main/java/com/simuwang/manage/service/DeletionService.java

@@ -34,7 +34,7 @@ public interface DeletionService {
 
     int countFundDeletion(String fundId);
 
-    List<EmailDeletionInfoDO> selectDeletionInfoByFundId(String fundId,String updateTime);
+    List<EmailDeletionInfoDO> selectDeletionInfoByFundId(String fundId);
 
     List<FundDeletionTypeDO> getFundDeletionTypeMapList();
 

+ 7 - 3
service-manage/src/main/java/com/simuwang/manage/service/impl/CompanyEmailConfigServiceImpl.java

@@ -18,6 +18,7 @@ import com.simuwang.manage.service.CompanyEmailConfigService;
 import com.simuwang.shiro.utils.UserUtils;
 import com.smppw.common.pojo.ResultVo;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,6 +27,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.File;
+import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.*;
@@ -228,8 +230,8 @@ public class CompanyEmailConfigServiceImpl implements CompanyEmailConfigService
             dataList.add(data);
         }
         values.put(sheetName,dataList);
-        HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName,head,values,null);
-        File file = new File(path+"/"+DateUtils.format(new Date(),DateUtils.YYYYMMDDHHMMSS)+"基金缺失明细.xls");
+        XSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName,head,values,null);
+        File file = new File(path+"/"+DateUtils.format(new Date(),DateUtils.YYYYMMDDHHMMSS)+"基金缺失明细.xlsx");
         if(!file.exists()){
             try {
                 file.createNewFile();
@@ -238,8 +240,10 @@ public class CompanyEmailConfigServiceImpl implements CompanyEmailConfigService
             }
         }
         try {
-            wb.write(file);
+            FileOutputStream fos = new FileOutputStream(file);
+            wb.write(fos);
             wb.close();
+            fos.close();
         } catch (IOException e) {
             throw new RuntimeException(e);
         }

+ 2 - 2
service-manage/src/main/java/com/simuwang/manage/service/impl/DeletionServiceImpl.java

@@ -215,9 +215,9 @@ public class DeletionServiceImpl implements DeletionService {
     }
 
     @Override
-    public List<EmailDeletionInfoDO> selectDeletionInfoByFundId(String fundId,String updateTime) {
+    public List<EmailDeletionInfoDO> selectDeletionInfoByFundId(String fundId) {
         //只查询每日新增的缺失数据
-        return deletionInfoMapper.selectDeletionDetailByFundId(fundId,updateTime);
+        return deletionInfoMapper.selectDeletionDetailByFundId(fundId);
     }
 
     @Override

+ 7 - 3
service-manage/src/main/java/com/simuwang/manage/task/ParseEmailFailTask.java

@@ -13,6 +13,7 @@ import com.simuwang.base.pojo.dos.*;
 import com.simuwang.base.pojo.dto.MailboxInfoDTO;
 import com.simuwang.shiro.utils.UserUtils;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,6 +21,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import java.io.File;
+import java.io.FileOutputStream;
 import java.io.IOException;
 import java.util.*;
 
@@ -121,8 +123,8 @@ public class ParseEmailFailTask {
             dataList.add(data);
         }
         values.put(sheetName,dataList);
-        HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName,head,values,null);
-        File file = new File(path+"/"+DateUtils.format(new Date(),DateUtils.YYYYMMDDHHMMSS)+"缺失产品清单.xls");
+        XSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName,head,values,null);
+        File file = new File(path+"/"+DateUtils.format(new Date(),DateUtils.YYYYMMDDHHMMSS)+"缺失产品清单.xlsx");
         if(!file.exists()){
             try {
                 file.createNewFile();
@@ -131,8 +133,10 @@ public class ParseEmailFailTask {
             }
         }
         try {
-            wb.write(file);
+            FileOutputStream fos = new FileOutputStream(file);
+            wb.write(fos);
             wb.close();
+            fos.close();
         } catch (IOException e) {
             throw new RuntimeException(e);
         }

+ 12 - 8
service-manage/src/main/java/com/simuwang/manage/task/SendDeletionEmailTask.java

@@ -17,6 +17,7 @@ import com.simuwang.base.pojo.dto.MailboxInfoDTO;
 import com.simuwang.manage.service.DeletionService;
 import com.simuwang.shiro.utils.UserUtils;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,6 +25,8 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FilterOutputStream;
 import java.io.IOException;
 import java.util.*;
 
@@ -53,7 +56,6 @@ public class SendDeletionEmailTask {
     public void sendDeletionEmail(){
         EmailTaskInfoDO emailTaskInfoDO = startEmailTask(null, 1);
         try{
-            String preDay = DateUtils.getAroundToday(-1) ;
             //获取有设置净值频率的基金ID
             List<FundDeletionBaseInfoDO> fundDeletionBaseInfoDOList = fundInfoMapper.getHasFrequencyFundInfo();
             Map<FundDeletionBaseInfoDO,List<EmailDeletionInfoDO>> fundDeletionBaseInfoDOListMap = new HashMap<>();
@@ -66,7 +68,7 @@ public class SendDeletionEmailTask {
                    }else{
                        fundDeletionBaseInfoDO.setIsDeletion(YesOrNoType.YES.getInfo());
                    }
-                   List<EmailDeletionInfoDO> fundDeletionDetailDOList = deletionService.selectDeletionInfoByFundId(fundId,preDay);
+                   List<EmailDeletionInfoDO> fundDeletionDetailDOList = deletionService.selectDeletionInfoByFundId(fundId);
                    if(fundDeletionDetailDOList.isEmpty()){
                        continue;
                    }
@@ -141,8 +143,8 @@ public class SendDeletionEmailTask {
             }
         }
         values.put(sheetName,dataList);
-        HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName,head,values,null);
-        File file = new File(path+"/"+DateUtils.format(new Date(),DateUtils.YYYYMMDDHHMMSS)+"缺失明细.xls");
+        XSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName,head,values,null);
+        File file = new File(path+"/"+DateUtils.format(new Date(),DateUtils.YYYYMMDDHHMMSS)+"缺失明细.xlsx");
         if(!file.exists()){
             try {
                 file.createNewFile();
@@ -151,8 +153,10 @@ public class SendDeletionEmailTask {
             }
         }
         try {
-            wb.write(file);
+            FileOutputStream fos = new FileOutputStream(file);
+            wb.write(fos);
             wb.close();
+            fos.close();
         } catch (IOException e) {
             throw new RuntimeException(e);
         }
@@ -230,8 +234,8 @@ public class SendDeletionEmailTask {
             dataList.add(data);
         }
         values.put(sheetName,dataList);
-        HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName,head,values,null);
-        File file = new File(path+"/"+DateUtils.format(new Date(),DateUtils.YYYYMMDDHHMMSS)+"缺失产品清单.xls");
+        XSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName,head,values,null);
+        File file = new File(path+"/"+DateUtils.format(new Date(),DateUtils.YYYYMMDDHHMMSS)+"缺失产品清单.xlsx");
         if(!file.exists()){
             try {
                 file.createNewFile();
@@ -240,7 +244,7 @@ public class SendDeletionEmailTask {
             }
         }
         try {
-            wb.write(file);
+            wb.write(new FileOutputStream(file));
             wb.close();
         } catch (IOException e) {
             throw new RuntimeException(e);