diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/OldSystemImportDTO.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/OldSystemImportDTO.java index ed5f3ef1..bc51330f 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/OldSystemImportDTO.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/OldSystemImportDTO.java @@ -60,7 +60,7 @@ public class OldSystemImportDTO { @Excel(name = "TY", width = 15, orderNum = "15") private String ty; - @Excel(name = "BZZT", width = 15, orderNum = "16", dicCode = "enterprise_standard_state") + @Excel(name = "BZZT", width = 15, orderNum = "16") private String bzzt; @Excel(name = "BZXZ", width = 15, orderNum = "17") diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java index 254731c4..c7ed95b0 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java @@ -239,10 +239,10 @@ public class LawsEnterpriseController { return Result.OK(); } - @AutoLog(value = "企业法规标准-老法规企标数据库Excel导入") - @ApiOperation(value="企业法规标准-老法规企标数据库Excel导入", notes="企业法规标准-老法规企标数据库Excel导入") - @PostMapping("/importExcelOldSystem") - public Result importExcelOldSystem(@RequestParam("file") MultipartFile file) { + @AutoLog(value = "企业法规标准-老法规企标数据库Zip导入") + @ApiOperation(value="企业法规标准-老法规企标数据库Zip导入", notes="企业法规标准-老法规企标数据库Zip导入") + @PostMapping("/importOldSystemESZip") + public Result importOldSystemESZip(@RequestParam("file") MultipartFile file) { enterpriseStandardService.importExcelOldSystem(file); return Result.OK("导入成功"); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsEnterpriseStandardServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsEnterpriseStandardServiceImpl.java index cb62cf7e..1a8344ee 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsEnterpriseStandardServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsEnterpriseStandardServiceImpl.java @@ -15,17 +15,26 @@ import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil; import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; import com.jero.modules.laws.standard.mapper.LawsEnterpriseStandardMapper; +import com.jero.modules.laws.standard.service.ILawsReplacedStandardService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.compress.utils.IOUtils; import org.apache.commons.lang3.StringUtils; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.entity.ImportParams; +import org.springframework.mock.web.MockMultipartFile; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; import java.util.*; import java.util.stream.Collectors; +import java.util.zip.ZipEntry; +import java.util.zip.ZipInputStream; /** * @author ThinkBook @@ -47,6 +56,9 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl list = null; + // 解压缩文件,查找Excel文件 + MultipartFile file = null; + try (ZipInputStream zis = new ZipInputStream(zipFile.getInputStream())) { + ZipEntry zipEntry; + while ((zipEntry = zis.getNextEntry()) != null) { + if (zipEntry.getName().endsWith(".xls") || zipEntry.getName().endsWith(".xlsx")) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + IOUtils.copy(zis, baos); + byte[] excelData = baos.toByteArray(); + file = new MockMultipartFile(zipEntry.getName(), zipEntry.getName(), "application/vnd.ms-excel", excelData); + zis.closeEntry(); + break; // 一旦找到Excel文件,就可以跳出循环 + } + zis.closeEntry(); + } + } catch (IOException e) { + throw new JeroBootException("处理压缩文件时发生错误:" + e.getMessage()); + } + + if (file == null) { + throw new JeroBootException("压缩包中未发现Excel文件。"); + } try { // 获取当前时间戳(毫秒) long startTime = System.currentTimeMillis(); @@ -80,6 +117,17 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl replaceCodeList = Arrays.asList(btdbzh.split(";")); + replaceCodeList.forEach(replaceCode -> { + lawsReplacedStandardService.addRelation(replaceCode, btdbzh, 1); + }); + } // 等级分类默认值 es.setGradeClassification("1"); esList.add(es);