|
@@ -127,6 +127,9 @@ public class GenerateCodeConsumer {
|
|
|
/** 一次生成数量 */
|
|
|
public static final int ONCE_GENERATE_NUMBER = 5000;
|
|
|
|
|
|
+ /** 声明码对应的值 */
|
|
|
+ public Long codeIndex = 0L;
|
|
|
+
|
|
|
/** 系统url */
|
|
|
@Value("${system.url}")
|
|
|
private String systemUrl;
|
|
@@ -138,35 +141,18 @@ public class GenerateCodeConsumer {
|
|
|
String str = JsonUtil.toBean(id, String.class);
|
|
|
QrPackageVO qrPackageVO = qrPackageMapper.selectQrPackageDetailById(Long.parseLong(str));
|
|
|
try {
|
|
|
- //声明码对应的值
|
|
|
- Long codeIndex = 0L;
|
|
|
Object code_qr_index = redisClient.get("code_qr_index");
|
|
|
if(ObjectUtils.isEmpty(code_qr_index)){
|
|
|
QueryWrapper<QrIndex> indexQuery= new QueryWrapper<>();
|
|
|
indexQuery.orderByDesc("index_current").last("limit 1");
|
|
|
QrIndex qrIndex = qrIndexMapper.selectOne(indexQuery);
|
|
|
- if(ObjectUtils.isEmpty(qrIndex)){
|
|
|
- QrIndex index = new QrIndex();
|
|
|
- index.setIndexCurrent(qrPackageVO.getQrNumber());
|
|
|
- qrIndexMapper.insert(index);
|
|
|
- redisClient.set("code_qr_index",qrPackageVO.getQrNumber());
|
|
|
- } else {
|
|
|
+ if(!ObjectUtils.isEmpty(qrIndex)){
|
|
|
codeIndex = qrIndex.getIndexCurrent();
|
|
|
- QrIndex index = new QrIndex();
|
|
|
- index.setIndexCurrent(qrIndex.getIndexCurrent()+qrPackageVO.getQrNumber());
|
|
|
- qrIndexMapper.insert(index);
|
|
|
- redisClient.set("code_qr_index",qrIndex.getIndexCurrent()+qrPackageVO.getQrNumber());
|
|
|
}
|
|
|
- } else {
|
|
|
- codeIndex = Long.parseLong(code_qr_index.toString());
|
|
|
- long l = qrPackageVO.getQrNumber() + Long.parseLong(code_qr_index.toString());
|
|
|
- QrIndex index = new QrIndex();
|
|
|
- index.setIndexCurrent(l);
|
|
|
- qrIndexMapper.insert(index);
|
|
|
- redisClient.set("code_qr_index",l);
|
|
|
+ redisClient.set("code_qr_index",codeIndex);
|
|
|
}
|
|
|
// 生成码
|
|
|
- loopGenerateCode(qrPackageVO,codeIndex);
|
|
|
+ loopGenerateCode(qrPackageVO);
|
|
|
} catch (Exception e) {
|
|
|
log.error("生成码失败", e);
|
|
|
// 回滚
|
|
@@ -184,7 +170,7 @@ public class GenerateCodeConsumer {
|
|
|
/**
|
|
|
* 生成码
|
|
|
*/
|
|
|
- private void loopGenerateCode(QrPackageVO qrPackageVO,Long codeIndex) {
|
|
|
+ private void loopGenerateCode(QrPackageVO qrPackageVO) {
|
|
|
//刷新码包信息
|
|
|
QrPackage qrPackage = qrPackageMapper.selectById(qrPackageVO.getId());
|
|
|
|
|
@@ -243,7 +229,7 @@ public class GenerateCodeConsumer {
|
|
|
* boxCodeFormat 箱码幅面
|
|
|
*/
|
|
|
// 循环生成码
|
|
|
- List<QrData> codeList = loopGenerateCode(qrRepertoryColumnList, qrRepertoryId, urlMap, qrRepertorySerialNumberMap, qrNumber, batchNumber, repeatTimes,boxCodeFormat,codeIndex);
|
|
|
+ List<QrData> codeList = loopGenerateCode(qrRepertoryColumnList, qrRepertoryId, urlMap, qrRepertorySerialNumberMap, qrNumber, batchNumber, repeatTimes,boxCodeFormat);
|
|
|
|
|
|
// 更新码库流水号
|
|
|
if (!qrRepertorySerialNumberMap.isEmpty()) {
|
|
@@ -300,6 +286,11 @@ public class GenerateCodeConsumer {
|
|
|
qrPackageService.sendEmailForQrPackageCreated(baseFactory.getEmail(),qrPackage.getSapOrderNo(),aliPath,qrPackage.getZipPassword());
|
|
|
//邮件发送后修改状态
|
|
|
qrPackageMapper.updateById(qrPackage);
|
|
|
+ QrIndex index = new QrIndex();
|
|
|
+ index.setIndexCurrent(codeIndex);
|
|
|
+ qrIndexMapper.insert(index);
|
|
|
+ redisClient.set("code_qr_index",codeIndex);
|
|
|
+ codeIndex = 0l;
|
|
|
qrDataList.clear();
|
|
|
}
|
|
|
|
|
@@ -372,8 +363,7 @@ public class GenerateCodeConsumer {
|
|
|
* repeatTimes 失败次数
|
|
|
* formatNumber 幅面数量
|
|
|
*/
|
|
|
- private List<QrData> loopGenerateCode(List<QrRepertoryColumnVO> qrRepertoryColumnList, Long qrRepertoryId, Map<Long, String> urlMap, Map<String, QrRepertorySerialNumber> qrRepertorySerialNumberMap, Long qrNumber, String batchNumber, int repeatTimes,QrBoxCodeFormat boxCodeFormat,Long codeIndex ) {
|
|
|
- codeIndex ++;
|
|
|
+ private List<QrData> loopGenerateCode(List<QrRepertoryColumnVO> qrRepertoryColumnList, Long qrRepertoryId, Map<Long, String> urlMap, Map<String, QrRepertorySerialNumber> qrRepertorySerialNumberMap, Long qrNumber, String batchNumber, int repeatTimes,QrBoxCodeFormat boxCodeFormat ) {
|
|
|
LocalDateTime localDateTime = LocalDateTime.now();
|
|
|
while (true) {
|
|
|
// 计算还需生成的数量
|
|
@@ -434,14 +424,14 @@ public class GenerateCodeConsumer {
|
|
|
QrInnerData qrInnerData = new QrInnerData();
|
|
|
qrInnerData.setCode(String.valueOf(chars)).setUrl(url);
|
|
|
qrInnerData.setQrRepertoryColumnId(qrRepertoryColumnId).setSortNumber(qrRepertoryColumn.getSortNumber());
|
|
|
- qrInnerData.setCodeIndex(codeIndex);
|
|
|
+ qrInnerData.setCodeIndex(codeIndex+=1);
|
|
|
qrInnerDataList.add(qrInnerData);
|
|
|
}
|
|
|
} else {
|
|
|
QrInnerData qrInnerData = new QrInnerData();
|
|
|
qrInnerData.setCode(code).setUrl(url);
|
|
|
qrInnerData.setQrRepertoryColumnId(qrRepertoryColumnId).setSortNumber(qrRepertoryColumn.getSortNumber());
|
|
|
- qrInnerData.setCodeIndex(codeIndex);
|
|
|
+ qrInnerData.setCodeIndex(codeIndex+=1);
|
|
|
qrInnerDataList.add(qrInnerData);
|
|
|
}
|
|
|
}
|