diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbOrderDetail.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbOrderDetail.java index 59cd315..6b91d47 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbOrderDetail.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbOrderDetail.java @@ -51,6 +51,7 @@ public class TbOrderDetail implements Serializable { private static final long serialVersionUID = 1L; private Integer isMember; + private Integer isTemporary; private Integer isThirdCoupon; } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/print/PrinterHandler.java b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/print/PrinterHandler.java index ee2c163..62cad14 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/print/PrinterHandler.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/print/PrinterHandler.java @@ -85,14 +85,23 @@ public abstract class PrinterHandler { private void onlyKitchen(TbPrintMachine machine, TbOrderInfo orderInfo, List tbOrderDetailList, List categoryInfos, boolean isReturn) { tbOrderDetailList.forEach(item -> { log.info("开始打印退单菜品,商品名:{}", item.getProductName()); + Integer isTemporary = ObjectUtil.defaultIfNull(item.getIsTemporary(), 0); + String categoryId = "0"; + if (isTemporary == 1) { + item.setProductId(0); + } // 台位费不打印 if (item.getProductId().equals(-999)) { log.info("台位费商品,不打印"); return; } - String categoryId = tbProductMapper.selectByPrimaryKey(item.getProductId()).getCategoryId(); + + TbProduct product = tbProductMapper.selectByPrimaryKey(item.getProductId()); + if(isTemporary == 0) { + categoryId = product.getCategoryId(); + } TbProductSkuWithBLOBs sku = tbProductSkuMapper.selectByPrimaryKey(item.getProductSkuId()); - if (sku == null) { + if (isTemporary == 0 && sku == null) { log.error("商品不存在, id: {}", item.getProductSkuId()); return; } @@ -100,10 +109,13 @@ public abstract class PrinterHandler { log.error("分类打印是空, classifyPrint: {}", machine.getClassifyPrint()); return; } + String finalCategoryId = categoryId; long count = categoryInfos.stream().filter(c -> - c.getId().toString().equals(categoryId) + c.getId().toString().equals(finalCategoryId) ).count(); - + if(isTemporary == 0) { + count = 1; + } if (machine.getClassifyPrint() != null && "1".equals(machine.getClassifyPrint()) && count == 0) { log.warn("分类未添加菜品: {} : {}", item.getProductName(), sku.getSpecSnap()); return; @@ -129,10 +141,16 @@ public abstract class PrinterHandler { } List detailList = new ArrayList<>(); tbOrderDetailList.forEach(it -> { - TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(it.getProductSkuId()); + Integer isTemporary = ObjectUtil.defaultIfNull(it.getIsTemporary(), 0); String remark = ""; - if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) { - remark = tbProductSkuWithBLOBs.getSpecSnap(); + if(isTemporary == 0){ + TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(it.getProductSkuId()); + if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) { + remark = tbProductSkuWithBLOBs.getSpecSnap(); + } + } + if(isTemporary == 1) { + it.setProductName("【临时菜】"+it.getProductName()); } OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), NumberUtil.mul(it.getNum(),it.getPrice()).toPlainString(), remark); detailList.add(detail); diff --git a/src/main/resources/mapper/TbOrderDetailMapper.xml b/src/main/resources/mapper/TbOrderDetailMapper.xml index ba0243e..1e59c72 100644 --- a/src/main/resources/mapper/TbOrderDetailMapper.xml +++ b/src/main/resources/mapper/TbOrderDetailMapper.xml @@ -18,10 +18,11 @@ + id, order_id, shop_id, product_id, product_sku_id, num, product_name, product_sku_name, - product_img, create_time, update_time, price, price_amount,status,pack_amount,return_num + product_img, create_time, update_time, price, price_amount,status,pack_amount,return_num,is_temporary