Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -46,14 +46,14 @@ public class PrintMqListener {
|
|||||||
log.info("接收到订单打印消息:{}", orderId);
|
log.info("接收到订单打印消息:{}", orderId);
|
||||||
MqLog mqLog = new MqLog().setQueue(RabbitConstants.Queue.ORDER_PRINT_QUEUE).setMsg(orderId).setType("orderPrint").setPlat("java.account").setCreateTime(DateUtil.date().toLocalDateTime());
|
MqLog mqLog = new MqLog().setQueue(RabbitConstants.Queue.ORDER_PRINT_QUEUE).setMsg(orderId).setType("orderPrint").setPlat("java.account").setCreateTime(DateUtil.date().toLocalDateTime());
|
||||||
try {
|
try {
|
||||||
// OrderInfo orderInfo = orderInfoService.getById(orderId);
|
OrderInfo orderInfo = orderInfoService.getById(orderId);
|
||||||
// if (orderInfo == null) {
|
if (orderInfo == null) {
|
||||||
// log.error("订单信息不存在, {}", orderId);
|
log.error("订单信息不存在, {}", orderId);
|
||||||
// throw new RuntimeException("订单信息不存在");
|
throw new RuntimeException("订单信息不存在");
|
||||||
// }
|
}
|
||||||
|
|
||||||
getPrintMachine(1L, "cash", "queue", "queue").forEach(machine -> {
|
getPrintMachine(1L, "cash", "one", "one").forEach(machine -> {
|
||||||
printerHandler.handleRequest(machine, null, 1L);
|
printerHandler.handleRequest(machine, orderInfo, null);
|
||||||
// printPlaceTicket(isReturn, machine, orderInfo, shopInfo);
|
// printPlaceTicket(isReturn, machine, orderInfo, shopInfo);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ public class FeiPrinter extends PrinterHandler implements PrinterImpl{
|
|||||||
|
|
||||||
private final PrintSignLabel printSignLabel = new PrintSignLabel()
|
private final PrintSignLabel printSignLabel = new PrintSignLabel()
|
||||||
.setBr("<BR>")
|
.setBr("<BR>")
|
||||||
|
|
||||||
.setCut("")
|
.setCut("")
|
||||||
.setF(new String[]{"<F>", "</F>"})
|
.setF(new String[]{"<F>", "</F>"})
|
||||||
.setL(new String[]{"<L>", "</L>"})
|
.setL(new String[]{"<L>", "</L>"})
|
||||||
@@ -94,12 +95,29 @@ public class FeiPrinter extends PrinterHandler implements PrinterImpl{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void returnDishesPrint(OrderInfo orderInfo, OrderDetail orderDetail, PrintMachine machine) {
|
protected void returnDishesPrint(OrderInfo orderInfo, OrderDetail orderDetail, PrintMachine machine) {
|
||||||
log.warn("退菜打印功能未实现");
|
String remark = orderDetail.getRemark();
|
||||||
|
String content = buildDishPrintData(true, getPickupNum(orderInfo), orderInfo.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")),
|
||||||
|
orderDetail.getProductName(), orderDetail.getSkuName(), orderDetail.getNum(), remark, orderDetail.getProGroupInfo());
|
||||||
|
sendPrintRequest(machine.getAddress(), content, null,"1");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void returnOrderPrint(OrderInfo orderInfo, PrintMachine machine, String balance, List<OrderDetail> detailList) {
|
protected void returnOrderPrint(OrderInfo orderInfo, PrintMachine machine, String balance, List<OrderDetail> detailList) {
|
||||||
log.warn("退单打印功能未实现");
|
ShopInfo shopInfo = shopInfoService.getById(orderInfo.getShopId());
|
||||||
|
String printerNum = "1";
|
||||||
|
if (StrUtil.isNotBlank(machine.getPrintQty())) {
|
||||||
|
printerNum = machine.getPrintQty().split("\\^")[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
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())
|
||||||
|
.setOriginalAmount(orderInfo.getOriginAmount().toPlainString()).setReturn(isReturn(orderInfo))
|
||||||
|
.setBalance(balance).setPayType((ObjectUtil.isEmpty(orderInfo.getPayType()) || ObjectUtil.isNull(orderInfo.getPayType()) ? "" : orderInfo.getPayType())).setIntegral("0")
|
||||||
|
.setOutNumber(orderInfo.getTakeCode()).setPrintTitle("结算单")
|
||||||
|
.setRemark(orderInfo.getRemark()).setDiscountAmount(orderInfo.getOriginAmount().subtract(orderInfo.getPayAmount()).toPlainString());
|
||||||
|
String string = buildOrderPrintData(printInfoDTO, detailList);
|
||||||
|
sendPrintRequest(machine.getAddress(), string, null, printerNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -36,6 +36,14 @@ public interface PrinterImpl {
|
|||||||
private String[] l;
|
private String[] l;
|
||||||
private String[] qr;
|
private String[] qr;
|
||||||
private String cut;
|
private String cut;
|
||||||
|
private String out;
|
||||||
|
|
||||||
|
public String getOut(int num) {
|
||||||
|
if (out != null) {
|
||||||
|
return StrUtil.format("<{}:{}>", out, num);
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -248,7 +256,7 @@ public interface PrinterImpl {
|
|||||||
// data.append(StrUtil.format("<L><BOLD>备注:{}</BOLD></L><BR>", printInfoDTO.getRemark()));
|
// data.append(StrUtil.format("<L><BOLD>备注:{}</BOLD></L><BR>", printInfoDTO.getRemark()));
|
||||||
}
|
}
|
||||||
if (Objects.nonNull(printInfoDTO.getOutNumber())) {
|
if (Objects.nonNull(printInfoDTO.getOutNumber())) {
|
||||||
data.append(getFormatLabel(printInfoDTO.getOutNumber(), signLabelInfo.qr))
|
data.append(getFormatLabel(printInfoDTO.getOutNumber(), signLabelInfo.center, signLabelInfo.qr))
|
||||||
.append(signLabelInfo.br);
|
.append(signLabelInfo.br);
|
||||||
// data.append("<QR>".concat(printInfoDTO.getOutNumber()).concat("</QR><BR>"));
|
// data.append("<QR>".concat(printInfoDTO.getOutNumber()).concat("</QR><BR>"));
|
||||||
}
|
}
|
||||||
@@ -257,6 +265,7 @@ public interface PrinterImpl {
|
|||||||
.append(signLabelInfo.br);
|
.append(signLabelInfo.br);
|
||||||
// data.append("<S>打印时间:").append(DateUtil.date().toDateStr()).append("</S><BR>");
|
// data.append("<S>打印时间:").append(DateUtil.date().toDateStr()).append("</S><BR>");
|
||||||
// data.append("<OUT:180>");
|
// data.append("<OUT:180>");
|
||||||
|
data.append(signLabelInfo.getOut(180));
|
||||||
data.append(signLabelInfo.cut);
|
data.append(signLabelInfo.cut);
|
||||||
// data.append("<PCUT>");
|
// data.append("<PCUT>");
|
||||||
return data.toString();
|
return data.toString();
|
||||||
@@ -293,11 +302,11 @@ public interface PrinterImpl {
|
|||||||
.append(signLabelInfo.br);
|
.append(signLabelInfo.br);
|
||||||
// builder.append("<S><L>时间: ").append(date).append(" </L></S><BR><BR><BR>");
|
// builder.append("<S><L>时间: ").append(date).append(" </L></S><BR><BR><BR>");
|
||||||
if (productName.length() > 4 || skuName.length() > 4) {
|
if (productName.length() > 4 || skuName.length() > 4) {
|
||||||
builder.append(getFormatLabel(StrUtil.format("{} x {}", productName, number.stripTrailingZeros().toPlainString()), signLabelInfo.bold, signLabelInfo.l))
|
builder.append(getFormatLabel(StrUtil.format("{} x {}", productName, number.stripTrailingZeros().toPlainString()), signLabelInfo.l))
|
||||||
.append(signLabelInfo.br);
|
.append(signLabelInfo.br);
|
||||||
// builder.append("<CS:32>").append(productName).append(" x ").append(number).append("</CS><BR>");
|
// builder.append("<CS:32>").append(productName).append(" x ").append(number).append("</CS><BR>");
|
||||||
if (StrUtil.isNotBlank(skuName)) {
|
if (StrUtil.isNotBlank(skuName)) {
|
||||||
builder.append(getFormatLabel(skuName, signLabelInfo.bold, signLabelInfo.l)).append(signLabelInfo.br);
|
builder.append(getFormatLabel(skuName, signLabelInfo.l)).append(signLabelInfo.br);
|
||||||
// builder.append("<CS:32>").append(skuName).append(" </CS><BR>");
|
// builder.append("<CS:32>").append(skuName).append(" </CS><BR>");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -326,6 +335,7 @@ public interface PrinterImpl {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
builder.append(signLabelInfo.br)
|
builder.append(signLabelInfo.br)
|
||||||
|
.append(signLabelInfo.getOut(150))
|
||||||
.append(signLabelInfo.cut);
|
.append(signLabelInfo.cut);
|
||||||
// builder.append("<OUT:150>");
|
// builder.append("<OUT:150>");
|
||||||
// builder.append("<PCUT>");
|
// builder.append("<PCUT>");
|
||||||
|
|||||||
@@ -57,13 +57,14 @@ public class YxyPrinter extends PrinterHandler implements PrinterImpl {
|
|||||||
|
|
||||||
private PrinterImpl.PrintSignLabel printSignLabel = new PrinterImpl.PrintSignLabel()
|
private PrinterImpl.PrintSignLabel printSignLabel = new PrinterImpl.PrintSignLabel()
|
||||||
.setBr("<BR>")
|
.setBr("<BR>")
|
||||||
.setCut("PCUT")
|
.setCut("<PCUT>")
|
||||||
|
.setOut("OUT")
|
||||||
.setF(new String[]{"<F>", "</F>"})
|
.setF(new String[]{"<F>", "</F>"})
|
||||||
.setL(new String[]{"<L>", "</L>"})
|
.setL(new String[]{"<L>", "</L>"})
|
||||||
.setS(new String[]{"<S>", "</S>"})
|
.setS(new String[]{"<S>", "</S>"})
|
||||||
.setQr(new String[]{"<QR>", "</QR>"})
|
.setQr(new String[]{"<QR>", "</QR>"})
|
||||||
.setCenter(new String[]{"<CB>", "</CB>"})
|
.setCenter(new String[]{"<C>", "</C>"})
|
||||||
.setBold(new String[]{"<BOLD>", "</BOLD>"});
|
.setBold(new String[]{"<B>", "</B>"});
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PrinterImpl.PrintSignLabel getSignLabelInfo() {
|
public PrinterImpl.PrintSignLabel getSignLabelInfo() {
|
||||||
@@ -110,23 +111,41 @@ public class YxyPrinter extends PrinterHandler implements PrinterImpl {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void normalDishesPrint(OrderInfo orderInfo, OrderDetail orderDetail, PrintMachine machine) {
|
protected void normalDishesPrint(OrderInfo orderInfo, OrderDetail orderDetail, PrintMachine machine) {
|
||||||
// todo 修改为bigdecimal
|
String buildDishPrintData = buildDishPrintData(false, getPickupNum(orderInfo), DateUtil.format(orderDetail.getCreateTime(), "yyyy-MM-dd HH:mm:ss"), orderDetail.getProductName(), orderDetail.getSkuName(),
|
||||||
String data = getPrintData("", getPickupNum(orderInfo),
|
orderDetail.getNum(), orderDetail.getRemark(), orderDetail.getProGroupInfo());
|
||||||
DateUtil.format(orderDetail.getCreateTime(), "yyyy-MM-dd HH:mm:ss"), orderDetail.getProductName(),
|
|
||||||
orderDetail.getNum().intValue(), orderDetail.getSkuName(), orderDetail.getRemark(), orderDetail.getProGroupInfo());
|
|
||||||
// String voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔新的订单,请及时处理\"}";
|
// String voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔新的订单,请及时处理\"}";
|
||||||
String voiceJson = "{\"bizType\":\"2\",\"content\":\"\"}";
|
String voiceJson = "{\"bizType\":\"2\",\"content\":\"\"}";
|
||||||
|
sendPrintRequest(machine.getAddress(), buildDishPrintData, voiceJson, "1");
|
||||||
// sendPrintRequest(voiceJson, 3, 1, machine.getAddress(), data);
|
// sendPrintRequest(voiceJson, 3, 1, machine.getAddress(), data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void returnDishesPrint(OrderInfo orderInfo, OrderDetail orderDetail, PrintMachine machine) {
|
protected void returnDishesPrint(OrderInfo orderInfo, OrderDetail orderDetail, PrintMachine machine) {
|
||||||
|
String buildDishPrintData = buildDishPrintData(true, getPickupNum(orderInfo), DateUtil.format(orderDetail.getCreateTime(), "yyyy-MM-dd HH:mm:ss"), orderDetail.getProductName(), orderDetail.getSkuName(),
|
||||||
|
orderDetail.getNum(), orderDetail.getRemark(), orderDetail.getProGroupInfo());
|
||||||
|
// String voiceJson = "{\"bizType\":\"2\",\"content\":\"您有一笔新的订单,请及时处理\"}";
|
||||||
|
String voiceJson = "{\"bizType\":\"2\",\"content\":\"\"}";
|
||||||
|
sendPrintRequest(machine.getAddress(), buildDishPrintData, voiceJson, "1");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void returnOrderPrint(OrderInfo orderInfo, PrintMachine machine, String balance, List<OrderDetail> detailList) {
|
protected void returnOrderPrint(OrderInfo orderInfo, PrintMachine machine, String balance, List<OrderDetail> detailList) {
|
||||||
|
ShopInfo shopInfo = shopInfoService.getById(orderInfo.getShopId());
|
||||||
|
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())
|
||||||
|
.setOriginalAmount(orderInfo.getOriginAmount().toPlainString()).setReturn(isReturn(orderInfo))
|
||||||
|
.setBalance(balance).setPayType((ObjectUtil.isEmpty(orderInfo.getPayType()) || ObjectUtil.isNull(orderInfo.getPayType()) ? "" : orderInfo.getPayType())).setIntegral("0")
|
||||||
|
.setOutNumber(orderInfo.getTakeCode()).setPrintTitle("结算单")
|
||||||
|
.setRemark(orderInfo.getRemark()).setDiscountAmount(orderInfo.getOriginAmount().subtract(orderInfo.getPayAmount()).toPlainString());
|
||||||
|
|
||||||
|
String data = buildOrderPrintData(printInfoDTO, detailList);
|
||||||
|
String voiceJson = "{\"PbizType\":\"2\",\"content\":\"您有一笔新的订单,请及时处理\"}";
|
||||||
|
// String voiceJson = "{\"bizType\":\"2\",\"content\":\"\"}";
|
||||||
|
String printerNum = "1";
|
||||||
|
if (StrUtil.isNotBlank(machine.getPrintQty())) {
|
||||||
|
printerNum = machine.getPrintQty().split("\\^")[1];
|
||||||
|
}
|
||||||
|
String resp = sendPrintRequest(machine.getAddress(), data, voiceJson, printerNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -156,53 +175,6 @@ public class YxyPrinter extends PrinterHandler implements PrinterImpl {
|
|||||||
sendPrintRequest(machine.getAddress(), resp, null, "1");
|
sendPrintRequest(machine.getAddress(), resp, null, "1");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 菜品票打印
|
|
||||||
*
|
|
||||||
* @param type 是否退菜单
|
|
||||||
* @param pickupNumber 取餐号
|
|
||||||
* @param date 时间
|
|
||||||
* @param productName 商品名
|
|
||||||
* @param number 数量
|
|
||||||
* @param skuName sku规格名
|
|
||||||
* @param note 备注
|
|
||||||
*/
|
|
||||||
public static String getPrintData(String type, String pickupNumber, String date, String productName, Integer number, String skuName, String note, String proGroupInfo) {
|
|
||||||
StringBuilder builder = new StringBuilder();
|
|
||||||
if ("return".equals(type)) {
|
|
||||||
builder.append("<C><B>").append(pickupNumber).append("【退】</B></C><BR><BR>");
|
|
||||||
} else {
|
|
||||||
builder.append("<C><B>").append(pickupNumber).append("</B></C><BR><BR>");
|
|
||||||
}
|
|
||||||
builder.append("<S><L>时间: ").append(date).append(" </L></S><BR><BR><BR>");
|
|
||||||
skuName = StrUtil.emptyToDefault(skuName, "");
|
|
||||||
if (productName.length() > 4 || skuName.length() > 4) {
|
|
||||||
builder.append("<CS:32>").append(productName).append(" x ").append(number).append("</CS><BR>");
|
|
||||||
if (StrUtil.isNotBlank(skuName)) {
|
|
||||||
builder.append("<CS:32>").append(skuName).append(" </CS><BR>");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
builder.append("<B>").append(productName).append(" x ").append(number).append("</B><BR>");
|
|
||||||
if (StrUtil.isNotBlank(skuName)) {
|
|
||||||
builder.append("<B>").append(skuName).append(" </B><BR>");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (StrUtil.isNotBlank(note)) {
|
|
||||||
builder.append("<S><L>备注: ").append(note).append(" </L></S><BR>");
|
|
||||||
}
|
|
||||||
if (!StrUtil.isBlank(proGroupInfo) && JSONUtil.isTypeJSONArray(proGroupInfo)) {
|
|
||||||
JSONArray subItems = cn.hutool.json.JSONUtil.parseArray(proGroupInfo);
|
|
||||||
for (int i = 0; i < subItems.size(); i++) {
|
|
||||||
String proName = subItems.getJSONObject(i).getStr("proName");
|
|
||||||
int qty = subItems.getJSONObject(i).getInt("number");
|
|
||||||
builder.append("<CS:32>(").append(i + 1).append(")").append(proName).append(" x ").append(qty).append("</CS><BR>");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
builder.append("<OUT:150>");
|
|
||||||
builder.append("<PCUT>");
|
|
||||||
return builder.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取TOKEN值
|
* 获取TOKEN值
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -75,6 +75,9 @@ public class AuthorizationServiceImpl implements AuthorizationService {
|
|||||||
if (StrUtil.isNotBlank(loginDTO.staffUserName())) {
|
if (StrUtil.isNotBlank(loginDTO.staffUserName())) {
|
||||||
// 查询主账号
|
// 查询主账号
|
||||||
SysUser sysUser = sysUserService.queryChain().eq(SysUser::getAccount, loginDTO.username()).one();
|
SysUser sysUser = sysUserService.queryChain().eq(SysUser::getAccount, loginDTO.username()).one();
|
||||||
|
if (sysUser == null) {
|
||||||
|
throw new ApiNotPrintException("登录账号不存在");
|
||||||
|
}
|
||||||
if (StatusEnum.DISABLE.value() == sysUser.getStauts()) {
|
if (StatusEnum.DISABLE.value() == sysUser.getStauts()) {
|
||||||
throw new ApiNotPrintException("账户未启用");
|
throw new ApiNotPrintException("账户未启用");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user