pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/controller/ProductBomApprovingController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/ProductBomApprovingService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/util/Zip4jUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
pom.xml
@@ -181,6 +181,11 @@ <artifactId>edtFTPj</artifactId> <version>1.5.3</version> </dependency> <dependency> <groupId>net.lingala.zip4j</groupId> <artifactId>zip4j</artifactId> <version>1.3.2</version> </dependency> </dependencies> <build> src/main/java/com/whyc/controller/ProductBomApprovingController.java
@@ -3,6 +3,7 @@ import com.whyc.dto.Response; import com.whyc.pojo.ProductBomApproving; import com.whyc.service.ProductBomApprovingService; import com.whyc.util.Zip4jUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; @@ -44,4 +45,11 @@ return response; } @PostMapping("zipParse") @ApiOperation("zip解析") public Response zipParse(@RequestParam("file") MultipartFile file) throws IOException { return service.zipParse(file); } } src/main/java/com/whyc/service/ProductBomApprovingService.java
@@ -1,15 +1,18 @@ package com.whyc.service; import com.whyc.dto.Response; import com.whyc.mapper.ProductBomApprovingMapper; import com.whyc.pojo.DocUser; import com.whyc.pojo.ProductBomApproving; import com.whyc.pojo.WorksheetMain; import com.whyc.util.ActionUtil; import com.whyc.util.CommonUtil; import com.whyc.util.Zip4jUtil; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.usermodel.*; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.xml.crypto.Data; @@ -104,4 +107,52 @@ public void insert(List<ProductBomApproving> bomList) { mapper.insertBatchSomeColumn(bomList); } public Response zipParse(MultipartFile file) throws IOException { Response response = new Response(); //检查是否为zip boolean isZip = Zip4jUtil.checkZipFileParam(file); if(!isZip){ return response.set(1,false,"上传的文件格式不是zip"); } //zip存储路径:doc_file/product_approving/${username}/{dateFormat}/${timeStamp} String rootFile = CommonUtil.getRootFile(); DocUser user = ActionUtil.getUser(); String dateFormat = new SimpleDateFormat("YYYY-MM").format(new Date()); long timeStamp = System.currentTimeMillis(); String zipPath = rootFile + File.separator + "product_approving" + File.separator + user.getName() + File.separator + dateFormat+ File.separator + timeStamp; File zipFile = new File(zipPath); if(!zipFile.exists()){ zipFile.mkdirs(); } file.transferTo(zipFile); //解压文件夹 Zip4jUtil.unPackZip(zipFile,null,zipPath); //遍历解压后的文件夹路径,解析excel System.out.println(zipPath); File[] bomFileDirArr = zipFile.listFiles(); for (File bomFileDir : bomFileDirArr){ String bomFileDirName = bomFileDir.getName(); System.out.println(bomFileDirName); File[] bomFileArr = bomFileDir.listFiles(); for (File bomFile : bomFileArr){ String bomFileName = bomFile.getName(); //解析excel while (bomFileName.contains(".xls")){ System.out.println("待解析的excel文件为:"+bomFileName); } } } return null; } public static void main(String[] args) throws IOException, InvalidFormatException { File file = new File("C:\\Users\\29550\\Desktop\\当前项目\\202207图纸管理\\0940000072(BOM).xls"); boolean exists = file.exists(); System.out.println(exists); Workbook workbook = WorkbookFactory.create(file); Sheet sheet = workbook.getSheetAt(0); int lastRowNum = sheet.getLastRowNum(); System.out.println(lastRowNum); } } src/main/java/com/whyc/util/Zip4jUtil.java
New file @@ -0,0 +1,41 @@ package com.whyc.util; import net.lingala.zip4j.core.ZipFile; import org.springframework.web.multipart.MultipartFile; import java.io.File; public class Zip4jUtil { public static boolean checkZipFileParam(MultipartFile zipFile) { String contentType = zipFile.getContentType(); //【导入Zip文件】上传的文件类型不是Zip return "application/zip".equals(contentType) || "application/x-zip-compressed".equals(contentType); } /** * zip文件解压 * * @param destPath 解压文件路径 * @param zipFile 压缩文件 * @param password 解压密码(如果有) */ public static boolean unPackZip(File zipFile, String password, String destPath) { try { ZipFile zip = new ZipFile(zipFile); /*zip4j默认用GBK编码去解压,这里设置编码为GBK的*/ zip.setFileNameCharset("GBK"); System.out.println("begin unpack zip file...."); zip.extractAll(destPath); // 如果解压需要密码 if (password != null) { if (zip.isEncrypted()) { zip.setPassword(password); } } } catch (Exception e) { return false; } return true; } }