|  |  |  | 
|---|
|  |  |  | package com.doumee.core.utils; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import cn.hutool.core.io.IoUtil; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
|---|
|  |  |  | import com.doumee.core.constants.ResponseStatus; | 
|---|
|  |  |  | import com.doumee.core.exception.BusinessException; | 
|---|
|  |  |  | import com.doumee.core.model.LoginUserInfo; | 
|---|
|  |  |  | import com.fasterxml.jackson.annotation.JsonInclude; | 
|---|
|  |  |  | import com.fasterxml.jackson.core.JsonProcessingException; | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.fasterxml.jackson.databind.PropertyNamingStrategy; | 
|---|
|  |  |  | import io.swagger.models.auth.In; | 
|---|
|  |  |  | import org.apache.batik.util.Platform; | 
|---|
|  |  |  | import org.apache.commons.compress.archivers.zip.Zip64Mode; | 
|---|
|  |  |  | import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; | 
|---|
|  |  |  | import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream; | 
|---|
|  |  |  | import org.apache.commons.lang3.StringUtils; | 
|---|
|  |  |  | import org.springframework.util.CollectionUtils; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.io.File; | 
|---|
|  |  |  | import java.io.FileInputStream; | 
|---|
|  |  |  | import java.io.IOException; | 
|---|
|  |  |  | import java.io.OutputStream; | 
|---|
|  |  |  | import java.math.BigDecimal; | 
|---|
|  |  |  | import java.net.URLDecoder; | 
|---|
|  |  |  | import java.text.SimpleDateFormat; | 
|---|
|  |  |  | 
|---|
|  |  |  | public static final String YW_DEVICE ="YW_DEVICE" ; | 
|---|
|  |  |  | public static final String YW_PATROL ="YW_PATROL" ; | 
|---|
|  |  |  | public static final String YW_CONTRACT_BILL ="YW_CONTRACT_BILL" ; | 
|---|
|  |  |  | public static final String YW_MATERIAL ="YW_MATERIAL" ; | 
|---|
|  |  |  | public static final String YW_PROBLEM ="YW_PROBLEM" ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static final String RESERVATION_TOTAL_NUM ="RESERVATION_TOTAL_NUM" ; | 
|---|
|  |  |  | public static final String SIGN_IN_PLACE_LAT ="SIGN_IN_PLACE_LAT" ; | 
|---|
|  |  |  | 
|---|
|  |  |  | YW_CONTRACT_FILE(9, "合同附件 ", "合同附件 "), | 
|---|
|  |  |  | FN_CONTRACT_REVENUE_FILE(10, "收支流水附件 ", "合同账单附件 "), | 
|---|
|  |  |  | FN_PATROL_TASK_RECORD_FILE(11, "巡检任务点处理附件 ", "巡检任务点处理附件 "), | 
|---|
|  |  |  | MATERIAL_FILE(12, "资产附件 ", "资产附件 "), | 
|---|
|  |  |  | PROBLEM_FILE(13, "问题附件 ", "问题附件 "), | 
|---|
|  |  |  | FN_DEVICE_MAINTENANCE_FILE(14, "阜宁服务平台设备文件 ", "阜宁服务平台设备文件 "), | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ; | 
|---|
|  |  |  | // 成员变量 | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static void packFilesToZip(List<File> files, OutputStream os) throws IOException { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | ZipArchiveOutputStream zipOutputStream = new ZipArchiveOutputStream(os); | 
|---|
|  |  |  | zipOutputStream.setUseZip64(Zip64Mode.AsNeeded); | 
|---|
|  |  |  | for (File file : files) { | 
|---|
|  |  |  | if(!file.exists()){ | 
|---|
|  |  |  | System.out.println("===文件不存在======="+file.getPath()); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | System.out.println("===文件存在======="+file.getPath()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ZipArchiveEntry entry = new ZipArchiveEntry(file.getName()); | 
|---|
|  |  |  | zipOutputStream.putArchiveEntry(entry); | 
|---|
|  |  |  | FileInputStream fileInputStream = new FileInputStream(file); | 
|---|
|  |  |  | byte[] buffer = new byte[1024]; | 
|---|
|  |  |  | int length; | 
|---|
|  |  |  | while ((length = fileInputStream.read(buffer)) > 0) { | 
|---|
|  |  |  | zipOutputStream.write(buffer, 0, length); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | zipOutputStream.closeArchiveEntry(); | 
|---|
|  |  |  | zipOutputStream.flush(); | 
|---|
|  |  |  | IoUtil.close(fileInputStream); | 
|---|
|  |  |  | file.delete(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR.getCode(),"对不起,下载压缩文件失败"); | 
|---|
|  |  |  | }finally { | 
|---|
|  |  |  | if (os != null) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | os.close(); | 
|---|
|  |  |  | } catch (IOException e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|