瀏覽代碼

已生成码包位置-测试优化

luyanwen-001 4 年之前
父節點
當前提交
de6fcc1345

+ 16 - 26
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/infrastructure/mq/GenerateCodeConsumer.java

@@ -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);
 						}
 					}