|
@@ -23,6 +23,8 @@ import com.abi.task.common.api.exception.BusinessException;
|
|
|
import com.abi.task.common.utils.PojoConverterUtils;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.google.common.collect.Lists;
|
|
|
+import com.google.common.collect.Maps;
|
|
|
+import com.google.common.collect.Sets;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import net.lingala.zip4j.core.ZipFile;
|
|
|
import net.lingala.zip4j.exception.ZipException;
|
|
@@ -385,27 +387,26 @@ public class GenerateCodeServiceImpl implements GenerateCodeService {
|
|
|
}
|
|
|
|
|
|
//生成码数据
|
|
|
- final List<QrData> qrDataList = new LinkedList<>();
|
|
|
+ final List<QrData> qrDataList = Lists.newLinkedList();
|
|
|
Long qrIndex = getQrIndex();
|
|
|
|
|
|
// 计算还需生成的数量
|
|
|
long needGenerateNumber = qrNumber;
|
|
|
|
|
|
// 用Set存放不重复的码
|
|
|
- HashSet<String> uniqueSet = new HashSet<>();
|
|
|
+ HashSet<String> uniqueSet = Sets.newHashSet();
|
|
|
// 生成码要用的参数
|
|
|
- Map<String, Object> paramMap = new HashMap<>();
|
|
|
+ Map<String, Object> paramMap = Maps.newHashMap();
|
|
|
// 码
|
|
|
StringBuilder codeSb = new StringBuilder();
|
|
|
-
|
|
|
- for (int i = 0; i < needGenerateNumber; i++) {
|
|
|
- QrData qrData = new QrData()
|
|
|
- .setQrRepertoryId(qrRepertoryId)
|
|
|
- .setBatchNumber(batchNumber)
|
|
|
- .setQrRepertoryType(QrRepertoryTypeEnum.SYSTEM_GENERATE.getCode())
|
|
|
- .setCreateTime(LocalDateTime.now());
|
|
|
-
|
|
|
- List<QrInnerData> qrInnerDataList = new LinkedList<>();
|
|
|
+ QrData qrData = new QrData()
|
|
|
+ .setQrRepertoryId(qrRepertoryId)
|
|
|
+ .setBatchNumber(batchNumber)
|
|
|
+ .setQrRepertoryType(QrRepertoryTypeEnum.SYSTEM_GENERATE.getCode())
|
|
|
+ .setCreateTime(LocalDateTime.now());
|
|
|
+ try {
|
|
|
+ for (int i = 0; i < needGenerateNumber; i++) {
|
|
|
+ List<QrInnerData> qrInnerDataList = Lists.newLinkedList();
|
|
|
//箱子码幅面
|
|
|
for (int a = 0; a < boxCodeFormat.getFormatNumber(); a++) {
|
|
|
for (int j = 0; j < qrRepertoryColumnList.size(); j++) {
|
|
@@ -414,7 +415,7 @@ public class GenerateCodeServiceImpl implements GenerateCodeService {
|
|
|
// 非clone列,设置code
|
|
|
String code = buildUniqueCode(uniqueSet, qrRepertoryColumn, codeSb, paramMap, qrRepertorySerialNumberMap, 0);
|
|
|
if (code == null) {
|
|
|
- throw new RuntimeException("生成码失败,重复生成码次数超过" + REPEAT_BUILD_CODE_TIMES + "次");
|
|
|
+ throw new BusinessException("生成码失败,重复生成码次数超过" + REPEAT_BUILD_CODE_TIMES + "次");
|
|
|
}
|
|
|
// 判断拆分数量是否为空
|
|
|
int splitNum = 0;
|
|
@@ -427,15 +428,16 @@ public class GenerateCodeServiceImpl implements GenerateCodeService {
|
|
|
qrInnerData.setCodeIndex(++qrIndex);
|
|
|
qrInnerData.setSplitNum(splitNum);
|
|
|
qrInnerDataList.add(qrInnerData);
|
|
|
+ qrInnerData = null;
|
|
|
}
|
|
|
}
|
|
|
qrData.setInnerDataList(qrInnerDataList);
|
|
|
qrDataList.add(qrData);
|
|
|
+ qrData.setInnerDataList(null);
|
|
|
}
|
|
|
//保存index
|
|
|
setQrIndex(qrIndex);
|
|
|
|
|
|
- try {
|
|
|
return qrDataList;
|
|
|
} catch (Exception e) {
|
|
|
log.error("封装码失败", e);
|