diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPrintMachine.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPrintMachine.java index 61ef6b4..9f11261 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPrintMachine.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPrintMachine.java @@ -28,6 +28,8 @@ public class TbPrintMachine implements Serializable { private String categoryIds; + private String categoryList; + private String contentType; private Long createdAt; @@ -200,6 +202,14 @@ public class TbPrintMachine implements Serializable { return receiptSize; } + public String getCategoryList() { + return categoryList; + } + + public void setCategoryList(String categoryList) { + this.categoryList = categoryList; + } + public void setReceiptSize(String receiptSize) { this.receiptSize = receiptSize; } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPrintMachineLog.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPrintMachineLog.java index f74d311..1236732 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPrintMachineLog.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbPrintMachineLog.java @@ -65,7 +65,7 @@ public class TbPrintMachineLog implements Serializable { */ private String printQty; /** - * 打印方式 1-普通 2-单个菜 + * 打印方式 normal-普通出单 one-一菜一品 callTicket-排队取号 */ private String printMethod; /** diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopTable.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopTable.java index 044a26a..3294d8f 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopTable.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopTable.java @@ -41,5 +41,8 @@ public class TbShopTable implements Serializable { private Integer autoClear; - + private Integer productNum; + private BigDecimal totalAmount; + private BigDecimal realAmount; + private Integer useNum; } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/ShopPrintLogDTO.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/ShopPrintLogDTO.java index c857921..0fc219b 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/ShopPrintLogDTO.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/ShopPrintLogDTO.java @@ -59,7 +59,7 @@ public class ShopPrintLogDTO implements Serializable { */ private String printQty; /** - * 打印方式 1-普通 2-单个菜 + * 打印方式 normal-普通出单 one-一菜一品 callTicket-排队取号 */ private String printMethod; /** diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/print/FeiPrinter.java b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/print/FeiPrinter.java index 3e539c0..d2a048b 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/print/FeiPrinter.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/print/FeiPrinter.java @@ -22,7 +22,7 @@ import java.util.List; @Component @Slf4j -public class FeiPrinter extends PrinterHandler{ +public class FeiPrinter extends PrinterHandler { private final MPOrderInfoMapper mPOrderInfoMapper; private final MpShopInfoMapper mpShopInfoMapper; @@ -88,7 +88,7 @@ public class FeiPrinter extends PrinterHandler{ } @Override - protected void callNumPrint(CallNumPrintDTO printDTO) { + protected void callNumPrint(TbPrintMachine machine, CallNumPrintDTO printDTO) { log.error("未实现打印方法"); } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/print/LocalLabelPrinter.java b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/print/LocalLabelPrinter.java index 5985e43..d61639d 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/print/LocalLabelPrinter.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/print/LocalLabelPrinter.java @@ -22,7 +22,7 @@ import java.util.List; @Component @Slf4j -public class LocalLabelPrinter extends PrinterHandler{ +public class LocalLabelPrinter extends PrinterHandler { private final MPOrderDetailMapper mPOrderDetailMapper; private final TbProductSkuMapper tbProductSkuMapper; @@ -67,7 +67,7 @@ public class LocalLabelPrinter extends PrinterHandler{ } @Override - protected void callNumPrint(CallNumPrintDTO printDTO) { + protected void callNumPrint(TbPrintMachine machine, CallNumPrintDTO printDTO) { log.error("未实现打印方法"); } 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 3fc5dfc..a3dae45 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 @@ -1,27 +1,22 @@ package com.chaozhanggui.system.cashierservice.rabbit.print; -import cn.hutool.core.lang.func.Func0; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSONObject; import com.chaozhanggui.system.cashierservice.dao.TbProductMapper; import com.chaozhanggui.system.cashierservice.dao.TbProductSkuMapper; import com.chaozhanggui.system.cashierservice.dao.TbShopUserMapper; import com.chaozhanggui.system.cashierservice.entity.*; import com.chaozhanggui.system.cashierservice.entity.dto.CallNumPrintDTO; +import com.chaozhanggui.system.cashierservice.exception.MsgException; import com.chaozhanggui.system.cashierservice.model.CategoryInfo; import com.chaozhanggui.system.cashierservice.model.OrderDetailPO; -import com.chaozhanggui.system.cashierservice.util.DateUtils; import com.chaozhanggui.system.cashierservice.util.JSONUtil; -import com.chaozhanggui.system.cashierservice.util.PrinterUtils; import com.chaozhanggui.system.cashierservice.util.Utils; import lombok.Setter; import lombok.ToString; import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; import java.util.ArrayList; -import java.util.Date; import java.util.List; @Slf4j @@ -43,14 +38,13 @@ public abstract class PrinterHandler { } protected void print(TbPrintMachine machine, boolean isReturn, TbOrderInfo orderInfo, List tbOrderDetailList, CallNumPrintDTO printDTO) { - String configStr = machine.getConfig(); - Utils.checkValueUnReturn(configStr, "打印机配置为空"); - JSONObject config = JSONObject.parseObject(configStr); - String model = JSONObject.parseObject(configStr).getString("model"); + String printMethod = machine.getPrintMethod(); + if (StrUtil.isBlank(printMethod)) { + throw new MsgException("打印机配置为空"); + } + List categoryInfos = JSONUtil.parseJSONStr2TList(StrUtil.emptyToDefault(machine.getCategoryList(), "[]"), CategoryInfo.class); - List categoryInfos = JSONUtil.parseJSONStr2TList(config.getJSONArray("categoryList").toString(), CategoryInfo.class); - - switch (model) { + switch (printMethod) { case "one": tbOrderDetailList.forEach(item -> { log.info("开始打印退单菜品,商品名:{}", item.getProductName()); @@ -122,10 +116,10 @@ public abstract class PrinterHandler { } break; case "callTicket": - callNumPrint(printDTO); + callNumPrint(machine, printDTO); break; default: - log.warn("未知打印类型: {}", model); + log.warn("未知打印类型: {}", printMethod); } } @@ -149,7 +143,7 @@ public abstract class PrinterHandler { protected abstract void normalOrderPrint(TbOrderInfo orderInfo, TbPrintMachine machine, String balance, List detailList); - protected abstract void callNumPrint(CallNumPrintDTO printDTO); + protected abstract void callNumPrint(TbPrintMachine machine, CallNumPrintDTO printDTO); // 抽象方法,子类实现判断能否处理请求 boolean canHandleRequest(String currentBrand, String connectType) { diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/print/YxyPrinter.java b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/print/YxyPrinter.java index a1f0e2f..da2f20b 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/print/YxyPrinter.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/print/YxyPrinter.java @@ -121,7 +121,7 @@ public class YxyPrinter extends PrinterHandler { } @Override - protected void callNumPrint(CallNumPrintDTO printDTO) { + protected void callNumPrint(TbPrintMachine machine, CallNumPrintDTO printDTO) { TbCallQueue queue = tbCallQueueMapper.selectById(printDTO.getCallQueueId()); if (queue == null) { log.warn("叫号记录不存在"); @@ -146,9 +146,7 @@ public class YxyPrinter extends PrinterHandler { po.setShopNote(StrUtil.format("过号顺延{}桌 {}桌后需重新排号 谢谢理解!", tbCallTable.getPostponeNum(), tbCallTable.getPostponeNum())); String data = PrinterUtils.getCallNumPrintData(po); String voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一条新的排号记录\"}"; - String resp = PrinterUtils.printTickets(voiceJson, 3, 1, "ZF544PG03W00005", data); - TbPrintMachine machine = new TbPrintMachine(); - machine.setAddress("ZF544PG03W00005"); + String resp = PrinterUtils.printTickets(voiceJson, 3, 1, machine.getAddress(), data); shopPrintLogService.save(machine, "叫号单", data, resp); } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java index fdf035e..1772411 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -125,6 +125,9 @@ public class OrderService { @Resource private TbOrderPaymentMapper tbOrderPaymentMapper; + @Resource + private MPOrderDetailMapper mpOrderDetailMapper; + public OrderService(WxAccountUtil wxAccountUtil, MPCashierCartMapper mpCashierCartMapper, TbShopOpenIdMapper shopOpenIdMapper, MpShopTableMapper mpShopTableMapper, @@ -1888,5 +1891,38 @@ public class OrderService { } tbOrderPaymentMapper.updateByPrimaryKey(payment); } + mpOrderDetailMapper.update(null, new LambdaUpdateWrapper() + .eq(TbOrderDetail::getOrderId, entity.getId()) + .set(TbOrderDetail::getStatus, "closed") + .set(TbOrderDetail::getUpdateTime, new Date()) + ); + mpCashierCartMapper.update(null, new LambdaUpdateWrapper(). + eq(TbCashierCart::getOrderId, entity.getId()) + .set(TbCashierCart::getStatus, "final") + .set(TbCashierCart::getUpdatedAt, System.currentTimeMillis()) + ); + if (StrUtil.isBlank(entity.getTableId())) { + return; + } + mpShopTableMapper.update(null, new LambdaUpdateWrapper() + .eq(TbShopTable::getQrcode, entity.getTableId()) + .eq(TbShopTable::getAutoClear, 1) + .set(TbShopTable::getStatus, "idle") + .set(TbShopTable::getProductNum, 0) + .set(TbShopTable::getTotalAmount, BigDecimal.ZERO) + .set(TbShopTable::getRealAmount, BigDecimal.ZERO) + .set(TbShopTable::getUseNum, 0) + .set(TbShopTable::getUpdatedAt, System.currentTimeMillis()) + ); + mpShopTableMapper.update(null, new LambdaUpdateWrapper() + .eq(TbShopTable::getQrcode, entity.getTableId()) + .eq(TbShopTable::getAutoClear, 0) + .set(TbShopTable::getStatus, "cleaning") + .set(TbShopTable::getProductNum, 0) + .set(TbShopTable::getTotalAmount, BigDecimal.ZERO) + .set(TbShopTable::getRealAmount, BigDecimal.ZERO) + .set(TbShopTable::getUseNum, 0) + .set(TbShopTable::getUpdatedAt, System.currentTimeMillis()) + ); } } diff --git a/src/main/resources/mapper/TbPrintMachineLogMapper.xml b/src/main/resources/mapper/TbPrintMachineLogMapper.xml index 0646fab..8e8ed76 100644 --- a/src/main/resources/mapper/TbPrintMachineLogMapper.xml +++ b/src/main/resources/mapper/TbPrintMachineLogMapper.xml @@ -1,7 +1,7 @@ - + \ No newline at end of file