فهرست منبع

加日志找bug

tanzhongran 3 سال پیش
والد
کامیت
9677061c85

+ 1 - 1
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/infrastructure/config/mybatis/ResultSqlInterceptor.java

@@ -38,7 +38,7 @@ public class ResultSqlInterceptor implements Interceptor {
         Object result = invocation.proceed();
         long endTime = System.currentTimeMillis();
         String str = JSONUtil.toJsonStr(result);
-        log.info("-------------->mybatis 出参:" + str);
+//        log.info("-------------->mybatis 出参:" + str);
         log.info("-------------->mybatis 执行时间: " + (endTime - startTime) + " ms");
         return result;
     }

+ 67 - 65
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/GenerateCodeServiceImpl.java

@@ -374,83 +374,84 @@ public class GenerateCodeServiceImpl implements GenerateCodeService {
      * formatNumber 幅面数量
      */
     private List<QrData> doLoopGenerateCode(List<QrRepertoryColumnVO> qrRepertoryColumnList, Long qrRepertoryId, Map<Long, String> urlMap, Map<String, QrRepertorySerialNumber> qrRepertorySerialNumberMap, Long qrNumber, String batchNumber, int repeatTimes, QrBoxCodeFormat boxCodeFormat, Map<Long, QrBoxCodeFormatSplit> splitCache ) {
+        if (qrNumber <= 0) {
+            log.info("批次号:{},码生成完毕", batchNumber);
+            return null;
+        }
+
         //生成码数据
         final List<QrData> qrDataList = new LinkedList<>();
         Long qrIndex = getQrIndex();
 
-        while (true) {
-            log.info("doLoopGenerateCode 的疑似死循环.1");
-            LocalDateTime localDateTime = LocalDateTime.now();
-            // 计算还需生成的数量
-            long needGenerateNumber = qrNumber;
-            if (needGenerateNumber <= 0) {
-                log.info("批次号:{},码生成完毕", batchNumber);
-                break;
-            }
-            // 用Set存放不重复的码
-            HashSet<String> uniqueSet = new HashSet<>();
-            // 生成码要用的参数
-            Map<String, Object> paramMap = new HashMap<>();
-            // 码
-            StringBuilder codeSb = new StringBuilder();
-            for (int i = 0; i < needGenerateNumber; i++) {
-                log.info("doLoopGenerateCode 的疑似死循环.2");
-                QrData qrData = new QrData()
-                        .setQrRepertoryId(qrRepertoryId)
-                        .setBatchNumber(batchNumber)
-                        .setQrRepertoryType(QrRepertoryTypeEnum.SYSTEM_GENERATE.getCode())
-                        .setCreateTime(localDateTime);
-
-                List<QrInnerData> qrInnerDataList = new LinkedList<>();
-                //箱子码幅面
-                for (int a = 0; a < boxCodeFormat.getFormatNumber(); a++) {
-                    log.info("doLoopGenerateCode 的疑似死循环.3");
-                    for (int j = 0; j < qrRepertoryColumnList.size(); j++) {
-                        log.info("doLoopGenerateCode 的疑似死循环.4");
-                        QrRepertoryColumnVO qrRepertoryColumn = qrRepertoryColumnList.get(j);
-                        Long qrRepertoryColumnId = qrRepertoryColumn.getId();
-                        //声明拆分数量
-                        int splitNum = 0;
-                        if(splitCache.containsKey(qrRepertoryColumnId)){
-                            splitNum = splitCache.get(qrRepertoryColumnId).getSplitNum();
-                        }
-                        // 非clone列,设置code和url
-                        String code = buildUniqueCode(uniqueSet, qrRepertoryColumn, codeSb, paramMap, qrRepertorySerialNumberMap, 0);
-                        if (code == null) {
-                            throw new RuntimeException("生成码失败,重复生成码次数超过" + REPEAT_BUILD_CODE_TIMES + "次");
-                        }
-                        //判断拆分数量是否为空
-                        if( splitNum >0){
-                            List<char[]> codeStr = segmentation(code, splitNum);
-                            for (char[] chars:codeStr) {
-                                QrInnerData qrInnerData = new QrInnerData();
-                                qrInnerData.setCode(String.valueOf(chars));
-                                qrInnerData.setQrRepertoryColumnId(qrRepertoryColumnId).setSortNumber(qrRepertoryColumn.getSortNumber());
-                                qrInnerData.setCodeIndex(++qrIndex);
-                                qrInnerDataList.add(qrInnerData);
-                            }
-                        } else {
+        log.info("doLoopGenerateCode 的疑似死循环.1");
+        LocalDateTime localDateTime = LocalDateTime.now();
+        // 计算还需生成的数量
+        long needGenerateNumber = qrNumber;
+
+        // 用Set存放不重复的码
+        HashSet<String> uniqueSet = new HashSet<>();
+        // 生成码要用的参数
+        Map<String, Object> paramMap = new HashMap<>();
+        // 码
+        StringBuilder codeSb = new StringBuilder();
+
+        for (int i = 0; i < needGenerateNumber; i++) {
+            log.info("doLoopGenerateCode 的疑似死循环.2");
+            QrData qrData = new QrData()
+                    .setQrRepertoryId(qrRepertoryId)
+                    .setBatchNumber(batchNumber)
+                    .setQrRepertoryType(QrRepertoryTypeEnum.SYSTEM_GENERATE.getCode())
+                    .setCreateTime(localDateTime);
+
+            List<QrInnerData> qrInnerDataList = new LinkedList<>();
+            //箱子码幅面
+            for (int a = 0; a < boxCodeFormat.getFormatNumber(); a++) {
+                log.info("doLoopGenerateCode 的疑似死循环.3");
+                for (int j = 0; j < qrRepertoryColumnList.size(); j++) {
+                    log.info("doLoopGenerateCode 的疑似死循环.4");
+                    QrRepertoryColumnVO qrRepertoryColumn = qrRepertoryColumnList.get(j);
+                    Long qrRepertoryColumnId = qrRepertoryColumn.getId();
+                    //声明拆分数量
+                    int splitNum = 0;
+                    if(splitCache.containsKey(qrRepertoryColumnId)){
+                        splitNum = splitCache.get(qrRepertoryColumnId).getSplitNum();
+                    }
+                    // 非clone列,设置code和url
+                    String code = buildUniqueCode(uniqueSet, qrRepertoryColumn, codeSb, paramMap, qrRepertorySerialNumberMap, 0);
+                    if (code == null) {
+                        throw new RuntimeException("生成码失败,重复生成码次数超过" + REPEAT_BUILD_CODE_TIMES + "次");
+                    }
+                    //判断拆分数量是否为空
+                    if( splitNum >0){
+                        List<char[]> codeStr = segmentation(code, splitNum);
+                        for (char[] chars:codeStr) {
                             QrInnerData qrInnerData = new QrInnerData();
-                            qrInnerData.setCode(code);
+                            qrInnerData.setCode(String.valueOf(chars));
                             qrInnerData.setQrRepertoryColumnId(qrRepertoryColumnId).setSortNumber(qrRepertoryColumn.getSortNumber());
                             qrInnerData.setCodeIndex(++qrIndex);
                             qrInnerDataList.add(qrInnerData);
                         }
+                    } else {
+                        QrInnerData qrInnerData = new QrInnerData();
+                        qrInnerData.setCode(code);
+                        qrInnerData.setQrRepertoryColumnId(qrRepertoryColumnId).setSortNumber(qrRepertoryColumn.getSortNumber());
+                        qrInnerData.setCodeIndex(++qrIndex);
+                        qrInnerDataList.add(qrInnerData);
                     }
                 }
-                qrData.setInnerDataList(qrInnerDataList);
-                qrDataList.add(qrData);
             }
-            //保存index
-            setQrIndex(qrIndex);
-
-            try {
-                return qrDataList;
-            } catch (Exception e) {
-                log.error("封装码失败", e);
-                if (++repeatTimes >= REPEAT_BUILD_CODE_TIMES) {
-                    throw new RuntimeException("生成码失败,重复生成码次数超过" + REPEAT_BUILD_CODE_TIMES + "次");
-                }
+            qrData.setInnerDataList(qrInnerDataList);
+            qrDataList.add(qrData);
+        }
+        //保存index
+        setQrIndex(qrIndex);
+
+        try {
+            return qrDataList;
+        } catch (Exception e) {
+            log.error("封装码失败", e);
+            if (++repeatTimes >= REPEAT_BUILD_CODE_TIMES) {
+                throw new RuntimeException("生成码失败,重复生成码次数超过" + REPEAT_BUILD_CODE_TIMES + "次");
             }
         }
 
@@ -563,6 +564,7 @@ public class GenerateCodeServiceImpl implements GenerateCodeService {
         }
 
         // 码重复,递归执行下一次
+        log.info("码重复,递归执行下一次");
         return buildUniqueCode(uniqueSet, qrRepertoryColumn, codeSb, paramMap, qrRepertorySerialNumberMap, ++buildTimes);
     }