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.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<LicenseNeCodeVO> neCodeList = updateReqVO.getNeCodeList();
|
||||
List<String> 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<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());
|
||||
licenseMapper.updateById(licenseDO);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user