预结算单实现
This commit is contained in:
@@ -101,7 +101,7 @@ public class FeiPrinter extends PrinterHandler implements PrinterImpl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void normalOrderPrint(OrderInfo orderInfo, PrintMachine machine, String balance, List<OrderDetail> detailList) {
|
protected void normalOrderPrint(OrderInfo orderInfo, boolean isPre, PrintMachine machine, String balance, List<OrderDetail> detailList) {
|
||||||
ShopInfo shopInfo = shopInfoService.getById(orderInfo.getShopId());
|
ShopInfo shopInfo = shopInfoService.getById(orderInfo.getShopId());
|
||||||
String printerNum = "1";
|
String printerNum = "1";
|
||||||
if (StrUtil.isNotBlank(machine.getPrintQty())) {
|
if (StrUtil.isNotBlank(machine.getPrintQty())) {
|
||||||
@@ -113,7 +113,7 @@ public class FeiPrinter extends PrinterHandler implements PrinterImpl {
|
|||||||
.setOrderNo(orderInfo.getOrderNo()).setTradeDate(DateUtil.date().toDateStr()).setOperator("【POS-1】001").setPayAmount(orderInfo.getPayAmount().toPlainString())
|
.setOrderNo(orderInfo.getOrderNo()).setTradeDate(DateUtil.date().toDateStr()).setOperator("【POS-1】001").setPayAmount(orderInfo.getPayAmount().toPlainString())
|
||||||
.setOriginalAmount(orderInfo.getOriginAmount().toPlainString()).setReturn(isReturn(orderInfo))
|
.setOriginalAmount(orderInfo.getOriginAmount().toPlainString()).setReturn(isReturn(orderInfo))
|
||||||
.setBalance(balance).setPayType((ObjectUtil.isEmpty(orderInfo.getPayType()) || ObjectUtil.isNull(orderInfo.getPayType()) ? "" : orderInfo.getPayType())).setIntegral("0")
|
.setBalance(balance).setPayType((ObjectUtil.isEmpty(orderInfo.getPayType()) || ObjectUtil.isNull(orderInfo.getPayType()) ? "" : orderInfo.getPayType())).setIntegral("0")
|
||||||
.setOutNumber(orderInfo.getTakeCode()).setPrintTitle("结算单")
|
.setOutNumber(orderInfo.getTakeCode()).setPrintTitle(isPre ? "预结算单" : "结算单")
|
||||||
.setRemark(orderInfo.getRemark()).setDiscountAmount(orderInfo.getOriginAmount().subtract(orderInfo.getPayAmount()).toPlainString());
|
.setRemark(orderInfo.getRemark()).setDiscountAmount(orderInfo.getOriginAmount().subtract(orderInfo.getPayAmount()).toPlainString());
|
||||||
String string = buildOrderPrintData(printInfoDTO, detailList);
|
String string = buildOrderPrintData(printInfoDTO, detailList);
|
||||||
sendPrintRequest(machine.getAddress(), string, null, printerNum);
|
sendPrintRequest(machine.getAddress(), string, null, printerNum);
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ public abstract class PrinterHandler {
|
|||||||
@Getter
|
@Getter
|
||||||
public enum PrintTypeEnum {
|
public enum PrintTypeEnum {
|
||||||
HANDOVER("交班", "handover"),
|
HANDOVER("交班", "handover"),
|
||||||
ORDER("订单", "order"), ONE("菜品", "one"), CALL("叫号", "call"), ONE_AND_ORDER("菜品和结算单同时打印", "oneAndOrder");
|
ORDER("订单", "order"), ONE("菜品", "one"), CALL("叫号", "call"), ONE_AND_ORDER("菜品和结算单同时打印", "oneAndOrder"), PRE_ORDER("预结算单", "preOrder");
|
||||||
private final String name;
|
private final String name;
|
||||||
private final String code;
|
private final String code;
|
||||||
|
|
||||||
@@ -197,7 +197,7 @@ public abstract class PrinterHandler {
|
|||||||
}
|
}
|
||||||
obj = orderInfo;
|
obj = orderInfo;
|
||||||
shopId = orderInfo.getShopId();
|
shopId = orderInfo.getShopId();
|
||||||
printMethod = "order";
|
printMethod = "normal";
|
||||||
printType = "order";
|
printType = "order";
|
||||||
break;
|
break;
|
||||||
case PrintTypeEnum.ONE:
|
case PrintTypeEnum.ONE:
|
||||||
@@ -208,6 +208,15 @@ public abstract class PrinterHandler {
|
|||||||
obj = orderInfo;
|
obj = orderInfo;
|
||||||
printMethod = "one";
|
printMethod = "one";
|
||||||
break;
|
break;
|
||||||
|
case PrintTypeEnum.PRE_ORDER:
|
||||||
|
orderInfo = orderInfoService.getById(data);
|
||||||
|
if (orderInfo == null) {
|
||||||
|
throw new RuntimeException("订单打印失败,订单不存在");
|
||||||
|
}
|
||||||
|
obj = orderInfo;
|
||||||
|
printMethod = "normal";
|
||||||
|
printType = "order";
|
||||||
|
break;
|
||||||
case PrintTypeEnum.ONE_AND_ORDER:
|
case PrintTypeEnum.ONE_AND_ORDER:
|
||||||
orderInfo = orderInfoService.getById(data);
|
orderInfo = orderInfoService.getById(data);
|
||||||
if (orderInfo == null) {
|
if (orderInfo == null) {
|
||||||
@@ -306,7 +315,16 @@ public abstract class PrinterHandler {
|
|||||||
log.info("准备开始打印订单");
|
log.info("准备开始打印订单");
|
||||||
if (data instanceof OrderInfo orderInfo) {
|
if (data instanceof OrderInfo orderInfo) {
|
||||||
List<OrderDetail> orderDetailList = orderDetailService.list(new QueryWrapper().eq(OrderDetail::getOrderId, orderInfo.getId()));
|
List<OrderDetail> orderDetailList = orderDetailService.list(new QueryWrapper().eq(OrderDetail::getOrderId, orderInfo.getId()));
|
||||||
onlyFrontDesk(machine, orderInfo, orderDetailList);
|
onlyFrontDesk(machine, false, orderInfo, orderDetailList);
|
||||||
|
}else {
|
||||||
|
throw new RuntimeException("传递数据类型有误");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case PrintTypeEnum.PRE_ORDER:
|
||||||
|
log.info("准备开始打印预结算订单");
|
||||||
|
if (data instanceof OrderInfo orderInfo) {
|
||||||
|
List<OrderDetail> orderDetailList = orderDetailService.list(new QueryWrapper().eq(OrderDetail::getOrderId, orderInfo.getId()));
|
||||||
|
onlyFrontDesk(machine, true, orderInfo, orderDetailList);
|
||||||
}else {
|
}else {
|
||||||
throw new RuntimeException("传递数据类型有误");
|
throw new RuntimeException("传递数据类型有误");
|
||||||
}
|
}
|
||||||
@@ -332,7 +350,7 @@ public abstract class PrinterHandler {
|
|||||||
log.info("准备开始打印菜品以及结算单");
|
log.info("准备开始打印菜品以及结算单");
|
||||||
if (data instanceof OrderInfo orderInfo) {
|
if (data instanceof OrderInfo orderInfo) {
|
||||||
List<OrderDetail> orderDetailList = orderDetailService.list(new QueryWrapper().eq(OrderDetail::getOrderId, orderInfo.getId()));
|
List<OrderDetail> orderDetailList = orderDetailService.list(new QueryWrapper().eq(OrderDetail::getOrderId, orderInfo.getId()));
|
||||||
onlyFrontDesk(machine, orderInfo, orderDetailList);
|
onlyFrontDesk(machine, false, orderInfo, orderDetailList);
|
||||||
onlyKitchen(machine, orderInfo, orderDetailList);
|
onlyKitchen(machine, orderInfo, orderDetailList);
|
||||||
}else {
|
}else {
|
||||||
throw new RuntimeException("传递数据类型有误");
|
throw new RuntimeException("传递数据类型有误");
|
||||||
@@ -417,7 +435,7 @@ public abstract class PrinterHandler {
|
|||||||
/**
|
/**
|
||||||
* 仅打印结算单「前台」
|
* 仅打印结算单「前台」
|
||||||
*/
|
*/
|
||||||
private void onlyFrontDesk(PrintMachine machine, OrderInfo orderInfo, List<OrderDetail> tbOrderDetailList) {
|
private void onlyFrontDesk(PrintMachine machine, boolean isPre, OrderInfo orderInfo, List<OrderDetail> tbOrderDetailList) {
|
||||||
// 判断订单是否是先付费或者已结算
|
// 判断订单是否是先付费或者已结算
|
||||||
if (OrderStatusEnums.UNPAID.getCode().equals(orderInfo.getStatus()) || OrderStatusEnums.CANCELLED.getCode().equals(orderInfo.getStatus())) {
|
if (OrderStatusEnums.UNPAID.getCode().equals(orderInfo.getStatus()) || OrderStatusEnums.CANCELLED.getCode().equals(orderInfo.getStatus())) {
|
||||||
log.warn("此订单未支付或已取消, 订单信息: {}", orderInfo);
|
log.warn("此订单未支付或已取消, 订单信息: {}", orderInfo);
|
||||||
@@ -471,7 +489,7 @@ public abstract class PrinterHandler {
|
|||||||
if (isReturn(orderInfo)) {
|
if (isReturn(orderInfo)) {
|
||||||
returnOrderPrint(orderInfo, machine, balance, tbOrderDetailList);
|
returnOrderPrint(orderInfo, machine, balance, tbOrderDetailList);
|
||||||
} else {
|
} else {
|
||||||
normalOrderPrint(orderInfo, machine, balance, tbOrderDetailList);
|
normalOrderPrint(orderInfo, isPre, machine, balance, tbOrderDetailList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -531,7 +549,7 @@ public abstract class PrinterHandler {
|
|||||||
|
|
||||||
protected abstract void returnOrderPrint(OrderInfo orderInfo, PrintMachine machine, String balance, List<OrderDetail> detailList);
|
protected abstract void returnOrderPrint(OrderInfo orderInfo, PrintMachine machine, String balance, List<OrderDetail> detailList);
|
||||||
|
|
||||||
protected abstract void normalOrderPrint(OrderInfo orderInfo, PrintMachine machine, String balance, List<OrderDetail> detailList);
|
protected abstract void normalOrderPrint(OrderInfo orderInfo, boolean isPre, PrintMachine machine, String balance, List<OrderDetail> detailList);
|
||||||
|
|
||||||
protected abstract void callNumPrint(PrintMachine machine, String callNum, String shopName, String tableName, String tableNote, String preNum,
|
protected abstract void callNumPrint(PrintMachine machine, String callNum, String shopName, String tableName, String tableNote, String preNum,
|
||||||
String codeUrl, LocalDateTime takeTime, String shopNote);
|
String codeUrl, LocalDateTime takeTime, String shopNote);
|
||||||
|
|||||||
@@ -147,13 +147,13 @@ public class YxyPrinter extends PrinterHandler implements PrinterImpl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void normalOrderPrint(OrderInfo orderInfo, PrintMachine machine, String balance, List<OrderDetail> detailList) {
|
protected void normalOrderPrint(OrderInfo orderInfo, boolean isPre, PrintMachine machine, String balance, List<OrderDetail> detailList) {
|
||||||
ShopInfo shopInfo = shopInfoService.getById(orderInfo.getShopId());
|
ShopInfo shopInfo = shopInfoService.getById(orderInfo.getShopId());
|
||||||
PrintInfoDTO printInfoDTO = new PrintInfoDTO().setShopName(shopInfo.getShopName()).setPrintType("普通打印").setPickupNum(getPickupNum(orderInfo))
|
PrintInfoDTO printInfoDTO = new PrintInfoDTO().setShopName(shopInfo.getShopName()).setPrintType("普通打印").setPickupNum(getPickupNum(orderInfo))
|
||||||
.setOrderNo(orderInfo.getOrderNo()).setTradeDate(DateUtil.date().toDateStr()).setOperator("【POS-1】001").setPayAmount(orderInfo.getPayAmount().toPlainString())
|
.setOrderNo(orderInfo.getOrderNo()).setTradeDate(DateUtil.date().toDateStr()).setOperator("【POS-1】001").setPayAmount(orderInfo.getPayAmount().toPlainString())
|
||||||
.setOriginalAmount(orderInfo.getOriginAmount().toPlainString()).setReturn(isReturn(orderInfo))
|
.setOriginalAmount(orderInfo.getOriginAmount().toPlainString()).setReturn(isReturn(orderInfo))
|
||||||
.setBalance(balance).setPayType((ObjectUtil.isEmpty(orderInfo.getPayType()) || ObjectUtil.isNull(orderInfo.getPayType()) ? "" : orderInfo.getPayType())).setIntegral("0")
|
.setBalance(balance).setPayType((ObjectUtil.isEmpty(orderInfo.getPayType()) || ObjectUtil.isNull(orderInfo.getPayType()) ? "" : orderInfo.getPayType())).setIntegral("0")
|
||||||
.setOutNumber(orderInfo.getTakeCode()).setPrintTitle("结算单")
|
.setOutNumber(orderInfo.getTakeCode()).setPrintTitle(isPre ? "预结算单" : "结算单")
|
||||||
.setRemark(orderInfo.getRemark()).setDiscountAmount(orderInfo.getOriginAmount().subtract(orderInfo.getPayAmount()).toPlainString());
|
.setRemark(orderInfo.getRemark()).setDiscountAmount(orderInfo.getOriginAmount().subtract(orderInfo.getPayAmount()).toPlainString());
|
||||||
|
|
||||||
String data = buildOrderPrintData(printInfoDTO, detailList);
|
String data = buildOrderPrintData(printInfoDTO, detailList);
|
||||||
|
|||||||
@@ -790,6 +790,15 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
|||||||
throw new ApiNotPrintException("订单信息不存在");
|
throw new ApiNotPrintException("订单信息不存在");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch (orderInfoPrintDTO.getType()) {
|
||||||
|
case 0:
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
rabbitPublisher.sendOrderPrintMsg(orderInfo.getId().toString());
|
rabbitPublisher.sendOrderPrintMsg(orderInfo.getId().toString());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user