feat: 相同网元申请添加序号
This commit is contained in:
@@ -5,7 +5,6 @@ import cn.hutool.core.io.FileUtil;
|
|||||||
import cn.hutool.core.io.resource.ResourceUtil;
|
import cn.hutool.core.io.resource.ResourceUtil;
|
||||||
import cn.hutool.core.util.CharsetUtil;
|
import cn.hutool.core.util.CharsetUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.core.util.ZipUtil;
|
|
||||||
import cn.hutool.extra.compress.CompressUtil;
|
import cn.hutool.extra.compress.CompressUtil;
|
||||||
import cn.hutool.extra.compress.archiver.Archiver;
|
import cn.hutool.extra.compress.archiver.Archiver;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
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.transaction.annotation.Transactional;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@@ -196,6 +193,7 @@ public class LicenseServiceImpl implements LicenseService {
|
|||||||
.setUserId(userId).setTemplateCode(templateCode).setTemplateParams(templateParams));
|
.setUserId(userId).setTemplateCode(templateCode).setTemplateParams(templateParams));
|
||||||
|
|
||||||
// List<LicenseNeCodeVO> neCodeList = updateReqVO.getNeCodeList();
|
// List<LicenseNeCodeVO> neCodeList = updateReqVO.getNeCodeList();
|
||||||
|
List<String> resultList = new ArrayList<>(); // 初始化结果列表
|
||||||
|
|
||||||
for (LicenseDetailDO neCodeVO : licenseDetails) {
|
for (LicenseDetailDO neCodeVO : licenseDetails) {
|
||||||
// 添加数据到License提供者表
|
// 添加数据到License提供者表
|
||||||
@@ -224,6 +222,28 @@ public class LicenseServiceImpl implements LicenseService {
|
|||||||
}
|
}
|
||||||
neLabels.add(label);
|
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.setNeList(StrUtil.join(",", neLabels));
|
||||||
licenseProviderDO.setActivationCode(neCodeVO.getActivationCode());
|
licenseProviderDO.setActivationCode(neCodeVO.getActivationCode());
|
||||||
licenseProviderDO.setOperationType(1);
|
licenseProviderDO.setOperationType(1);
|
||||||
@@ -384,45 +404,7 @@ public class LicenseServiceImpl implements LicenseService {
|
|||||||
boolean isCompleted = licenseDetails.stream().allMatch(c -> StrUtil.isNotBlank(c.getFileUrl()));
|
boolean isCompleted = licenseDetails.stream().allMatch(c -> StrUtil.isNotBlank(c.getFileUrl()));
|
||||||
|
|
||||||
if (isCompleted && CollUtil.isNotEmpty(licenseDetails)) {
|
if (isCompleted && CollUtil.isNotEmpty(licenseDetails)) {
|
||||||
// 打包压缩上传
|
|
||||||
List<String> pathList = new ArrayList<>();
|
|
||||||
List<ByteArrayInputStream> 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());
|
licenseDO.setStatus(LicenseStatusEnum.COMPLETED.getCode());
|
||||||
licenseMapper.updateById(licenseDO);
|
licenseMapper.updateById(licenseDO);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user