From 26927ab59db36047f3259e90a0e0caf09c9d89fe Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Fri, 3 Apr 2026 14:10:46 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=80=E6=B2=A1=E7=9A=84=E5=95=86=E5=93=81?= =?UTF-8?q?=20=E4=B8=8D=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../czg/service/order/print/PrinterImpl.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/print/PrinterImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/print/PrinterImpl.java index 0fecb7ae1..63f9d3df8 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/print/PrinterImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/print/PrinterImpl.java @@ -266,7 +266,11 @@ public interface PrinterImpl { data.append(getFormatLabel(formatItemLine("品名", "单价", "数量", 18, 9), signLabelInfo.s)).append(signLabelInfo.br); for (OrderDetail detail : detailList) { - String number = detail.getNum().subtract(detail.getReturnNum()).stripTrailingZeros().toPlainString(); + BigDecimal subtract = detail.getNum().subtract(detail.getReturnNum()); + if (subtract.compareTo(BigDecimal.ZERO) <= 0) { + continue; + } + String number = subtract.stripTrailingZeros().toPlainString(); String unitPrice = toPlainStr(detail.getUnitPrice().stripTrailingZeros().toPlainString()); data.append(getFormatLabel(formatItemLine(detail.getProductName(), unitPrice, number, 18, 7), signLabelInfo.s)).append(signLabelInfo.br); @@ -347,7 +351,11 @@ public interface PrinterImpl { data.append(getFormatLabel(formatItemLine("品名", "单价", "数量", 18, 9), signLabelInfo.s)).append(signLabelInfo.br); for (OrderDetail detail : detailList) { - String number = detail.getNum().subtract(detail.getReturnNum()).stripTrailingZeros().toPlainString(); + BigDecimal subtract = detail.getNum().subtract(detail.getReturnNum()); + if (subtract.compareTo(BigDecimal.ZERO) <= 0) { + continue; + } + String number = subtract.stripTrailingZeros().toPlainString(); String unitPrice = toPlainStr(detail.getUnitPrice().stripTrailingZeros().toPlainString()); data.append(getFormatLabel(formatItemLine(detail.getProductName(), unitPrice, number, 18, 7), signLabelInfo.s)).append(signLabelInfo.br); @@ -774,23 +782,19 @@ public interface PrinterImpl { if (getStringWidth(text) <= maxWidth) { return text; } - StringBuilder sb = new StringBuilder(); int currentWidth = 0; int ellipsisWidth = getStringWidth("..."); for (char c : text.toCharArray()) { int charWidth = (c > 127) ? 2 : 1; - // 剩下的宽度必须能放下 当前字符 + ... if (currentWidth + charWidth + ellipsisWidth > maxWidth) { break; } - sb.append(c); currentWidth += charWidth; } - - return sb + "..."; // 超长自动加... + return sb + ".."; } }