diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/license/LicenseServiceImpl.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/license/LicenseServiceImpl.java index 3f100c7..0c3255f 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/license/LicenseServiceImpl.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/license/LicenseServiceImpl.java @@ -5,7 +5,6 @@ import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.resource.ResourceUtil; import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.StrUtil; -import cn.hutool.core.util.ZipUtil; import cn.hutool.extra.compress.CompressUtil; import cn.hutool.extra.compress.archiver.Archiver; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -52,9 +51,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; -import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; -import java.io.File; import java.io.IOException; import java.time.LocalDate; import java.time.LocalDateTime; @@ -196,6 +193,7 @@ public class LicenseServiceImpl implements LicenseService { .setUserId(userId).setTemplateCode(templateCode).setTemplateParams(templateParams)); // List neCodeList = updateReqVO.getNeCodeList(); + List resultList = new ArrayList<>(); // 初始化结果列表 for (LicenseDetailDO neCodeVO : licenseDetails) { // 添加数据到License提供者表 @@ -224,6 +222,28 @@ public class LicenseServiceImpl implements LicenseService { } neLabels.add(label); } + // 重复网元后面添加序号 + String currentElement = neLabels.get(0); + boolean isDuplicate = false; + for (String item : resultList) { + if (item.equals(currentElement)) { + isDuplicate = true; + break; + } + } + if (isDuplicate) { + int count = 1; + String newElement = currentElement + "_" + count; + while (resultList.contains(newElement)) { + count++; + newElement = currentElement + "_" + count; + } + neLabels.set(0, newElement); + resultList.add(newElement); + } else { + resultList.add(currentElement); + } + licenseProviderDO.setNeList(StrUtil.join(",", neLabels)); licenseProviderDO.setActivationCode(neCodeVO.getActivationCode()); licenseProviderDO.setOperationType(1); @@ -384,45 +404,7 @@ public class LicenseServiceImpl implements LicenseService { boolean isCompleted = licenseDetails.stream().allMatch(c -> StrUtil.isNotBlank(c.getFileUrl())); if (isCompleted && CollUtil.isNotEmpty(licenseDetails)) { - // 打包压缩上传 - List pathList = new ArrayList<>(); - List inputStreamList = new ArrayList<>(); - for (LicenseDetailDO detail : licenseDetails) { - LicenseProviderDO licenseProviderDO = licenseProviderMapper.selectById(detail.getProviderId()); - String fileName = getFileName(licenseDO.getSerialNo(), detail.getNeList()); - if (StrUtil.isNotBlank(licenseProviderDO.getNewFilePath1())) { -// String preFileName = "45G_"; -// if (licenseProviderDO.getNewFilePath1().contains("Legacy_")) { -// preFileName = "Legacy_"; -// } - fileName = FileUtil.getName(licenseProviderDO.getNewFilePath1()); - pathList.add(fileName); - inputStreamList.add(new ByteArrayInputStream(FileUtil.readBytes(licenseProviderDO.getNewFilePath1()))); - } - if (StrUtil.isNotBlank(licenseProviderDO.getNewFilePath0())) { -// String preFileName = "45G_"; -// if (licenseProviderDO.getNewFilePath0().contains("Legacy_")) { -// preFileName = "Legacy_"; -// } - fileName = FileUtil.getName(licenseProviderDO.getNewFilePath0()); - pathList.add(fileName); - inputStreamList.add(new ByteArrayInputStream(FileUtil.readBytes(licenseProviderDO.getNewFilePath0()))); - } - if (StrUtil.isBlank(licenseProviderDO.getNewFilePath0()) && StrUtil.isBlank(licenseProviderDO.getNewFilePath1())) { - pathList.add(fileName); - inputStreamList.add(new ByteArrayInputStream(ResourceUtil.readBytes("file/MME_13750602_2024-08-02_system.ini"))); - } - } - -// File tempFile = new File("D:/temp/temp.zip"); - File tempFile = new File("/usr/local/licGen/temp.zip"); - - ZipUtil.zip(tempFile, pathList.toArray(new String[0]), inputStreamList.toArray(new ByteArrayInputStream[inputStreamList.size()])); - String fileURL = fileApi.createFile(FileUtil.readBytes(tempFile), licenseDO.getSerialNo() + "_" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + ".zip"); - - FileUtil.del(tempFile); - licenseDO.setFileUrl(fileURL); licenseDO.setStatus(LicenseStatusEnum.COMPLETED.getCode()); licenseMapper.updateById(licenseDO); }