小票打印bug修复

This commit is contained in:
谭凯凯 2024-11-28 17:58:16 +08:00 committed by Tankaikai
parent 059d8718dd
commit 8394585422
3 changed files with 7 additions and 7 deletions

View File

@ -64,13 +64,12 @@ public class FeiPrinter extends PrinterHandler {
@Override @Override
protected void normalDishesPrint(TbOrderInfo orderInfo, TbOrderDetail orderDetail, TbPrintMachine machine) { protected void normalDishesPrint(TbOrderInfo orderInfo, TbOrderDetail orderDetail, TbPrintMachine machine) {
TbProductSkuWithBLOBs sku = tbProductSkuMapper.selectByPrimaryKey(orderDetail.getProductSkuId()); TbProductSkuWithBLOBs sku = tbProductSkuMapper.selectByPrimaryKey(orderDetail.getProductSkuId());
if (sku == null) { if (sku == null && orderDetail.getIsTemporary() == 0) {
log.warn("打印菜品票失败 sku商品不存在: {}", orderDetail); log.warn("打印菜品票失败 sku商品不存在: {}", orderDetail);
return; return;
} }
String remark = sku.getSpecSnap(); String remark = sku == null ? "" : sku.getSpecSnap();
// todo 修改为bigdecimal // todo 修改为bigdecimal
String[] resp = FeieyunPrintUtil.getPrintData(machine.getAddress(), orderInfo, String[] resp = FeieyunPrintUtil.getPrintData(machine.getAddress(), orderInfo,
DateUtils.getTime(new Date(orderInfo.getCreatedAt())), orderDetail.getProductName(), orderDetail.getNum().intValue(), remark); DateUtils.getTime(new Date(orderInfo.getCreatedAt())), orderDetail.getProductName(), orderDetail.getNum().intValue(), remark);
shopPrintLogService.save(machine, "新订单", resp[0], resp[1]); shopPrintLogService.save(machine, "新订单", resp[0], resp[1]);

View File

@ -116,7 +116,7 @@ public abstract class PrinterHandler {
long count = categoryInfos.stream().filter(c -> long count = categoryInfos.stream().filter(c ->
c.getId().toString().equals(finalCategoryId) c.getId().toString().equals(finalCategoryId)
).count(); ).count();
if (isTemporary == 0) { if (isTemporary == 1) {
count = 1; count = 1;
} }
if (machine.getClassifyPrint() != null && "1".equals(machine.getClassifyPrint()) && count == 0) { if (machine.getClassifyPrint() != null && "1".equals(machine.getClassifyPrint()) && count == 0) {
@ -153,7 +153,7 @@ public abstract class PrinterHandler {
} }
} }
if (isTemporary == 1) { if (isTemporary == 1) {
it.setProductName("【临时菜" + it.getProductName()); it.setProductName("【临" + it.getProductName());
} }
OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), NumberUtil.mul(it.getNum(), it.getPrice()).toPlainString(), remark); OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), NumberUtil.mul(it.getNum(), it.getPrice()).toPlainString(), remark);
detailList.add(detail); detailList.add(detail);

View File

@ -18,6 +18,7 @@ import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*; import java.util.*;
/** /**
@ -159,7 +160,7 @@ public class PrinterUtils {
sb.append("------------------------<BR>"); sb.append("------------------------<BR>");
String t = "" + (ObjectUtil.isEmpty(detailPO.getDiscountAmount()) || ObjectUtil.isNull(detailPO.getDiscountAmount()) ? toPlainStr(detailPO.getReceiptsAmount()) : NumberUtil.sub(new BigDecimal(detailPO.getReceiptsAmount()), new BigDecimal(detailPO.getDiscountAmount())).toPlainString()); String t = "" + (ObjectUtil.isEmpty(detailPO.getDiscountAmount()) || ObjectUtil.isNull(detailPO.getDiscountAmount()) ? toPlainStr(detailPO.getReceiptsAmount()) : NumberUtil.sub(new BigDecimal(detailPO.getReceiptsAmount()), new BigDecimal(detailPO.getDiscountAmount())).setScale(2, RoundingMode.DOWN).toPlainString());
t = String.format("%11s", t).replace(' ', paddingCharacter); t = String.format("%11s", t).replace(' ', paddingCharacter);
if (orderType.equals("return")) { if (orderType.equals("return")) {
sb.append("<F>应退" + t + "</F><BR>"); sb.append("<F>应退" + t + "</F><BR>");
@ -195,7 +196,7 @@ public class PrinterUtils {
} }
private static String toPlainStr(String str) { private static String toPlainStr(String str) {
if(StrUtil.isBlank(str)){ if (StrUtil.isBlank(str)) {
return "0"; return "0";
} }
return NumberUtil.roundDown(new BigDecimal(str), 2).toPlainString(); return NumberUtil.roundDown(new BigDecimal(str), 2).toPlainString();