diff --git a/src/main/java/com/gaotao/modules/base/service/Impl/LabelDataProcessorServiceImpl.java b/src/main/java/com/gaotao/modules/base/service/Impl/LabelDataProcessorServiceImpl.java index 4b97ba39..6176cef3 100644 --- a/src/main/java/com/gaotao/modules/base/service/Impl/LabelDataProcessorServiceImpl.java +++ b/src/main/java/com/gaotao/modules/base/service/Impl/LabelDataProcessorServiceImpl.java @@ -380,7 +380,12 @@ public class LabelDataProcessorServiceImpl implements LabelDataProcessorService @Override public ReportLabelList processElementData(ReportLabelList element, Map dataMap,Boolean nextSeqNotExist,Boolean printFlag) { - if (element == null || element.getData() == null || element.getData().isEmpty()) { + if (element == null) { + return element; + } + // 流水号规则允许为空。空规则仍要生成纯流水号,否则隐藏流水号被二维码等组合引用时没有内容。 + boolean serialElement = "serialNumber".equals(element.getType()); + if (!serialElement && (element.getData() == null || element.getData().isEmpty())) { return element; } @@ -1713,10 +1718,11 @@ public class LabelDataProcessorServiceImpl implements LabelDataProcessorService try { log.debug("开始处理流水号元素: itemNo={}, data={}, showSerialNumber={}", element.getItemNo(), element.getData(), element.getShowSerialNumber()); - // 检查是否显示流水号(默认显示) + // 隐藏只决定流水号元素自身是否打印,不能在这里把值清空。 + // 二维码等组合元素读取的就是本次生成结果;隐藏时若返回空串,引用内容也会丢失。 + // 元素自身是否输出由 ZplGenerator.generateSerialNumberZPL 按 showSerialNumber 控制。 if (element.getShowSerialNumber() != null && "false".equals(element.getShowSerialNumber())) { - log.debug("流水号元素设置为不显示,跳过处理"); - return ""; // 不显示时返回空字符串 + log.debug("流水号元素设置为不显示,仍生成流水号供组合元素引用: itemNo={}", element.getItemNo()); } if (element.getParentSerialLabelNo() != null && StringUtils.isNotBlank(element.getParentSerialLabelNo())) {