Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
d662e1ca4d
|
|
@ -46,14 +46,14 @@ public class PrintMqListener {
|
|||
log.info("接收到订单打印消息:{}", orderId);
|
||||
MqLog mqLog = new MqLog().setQueue(RabbitConstants.Queue.ORDER_PRINT_QUEUE).setMsg(orderId).setType("orderPrint").setPlat("java.account").setCreateTime(DateUtil.date().toLocalDateTime());
|
||||
try {
|
||||
// OrderInfo orderInfo = orderInfoService.getById(orderId);
|
||||
// if (orderInfo == null) {
|
||||
// log.error("订单信息不存在, {}", orderId);
|
||||
// throw new RuntimeException("订单信息不存在");
|
||||
// }
|
||||
OrderInfo orderInfo = orderInfoService.getById(orderId);
|
||||
if (orderInfo == null) {
|
||||
log.error("订单信息不存在, {}", orderId);
|
||||
throw new RuntimeException("订单信息不存在");
|
||||
}
|
||||
|
||||
getPrintMachine(1L, "cash", "queue", "queue").forEach(machine -> {
|
||||
printerHandler.handleRequest(machine, null, 1L);
|
||||
getPrintMachine(1L, "cash", "one", "one").forEach(machine -> {
|
||||
printerHandler.handleRequest(machine, orderInfo, null);
|
||||
// printPlaceTicket(isReturn, machine, orderInfo, shopInfo);
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -69,6 +69,7 @@ public class FeiPrinter extends PrinterHandler implements PrinterImpl{
|
|||
|
||||
private final PrintSignLabel printSignLabel = new PrintSignLabel()
|
||||
.setBr("<BR>")
|
||||
|
||||
.setCut("")
|
||||
.setF(new String[]{"<F>", "</F>"})
|
||||
.setL(new String[]{"<L>", "</L>"})
|
||||
|
|
@ -94,12 +95,29 @@ public class FeiPrinter extends PrinterHandler implements PrinterImpl{
|
|||
|
||||
@Override
|
||||
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
|
||||
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
|
||||
|
|
|
|||
|
|
@ -36,6 +36,14 @@ public interface PrinterImpl {
|
|||
private String[] l;
|
||||
private String[] qr;
|
||||
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()));
|
||||
}
|
||||
if (Objects.nonNull(printInfoDTO.getOutNumber())) {
|
||||
data.append(getFormatLabel(printInfoDTO.getOutNumber(), signLabelInfo.qr))
|
||||
data.append(getFormatLabel(printInfoDTO.getOutNumber(), signLabelInfo.center, signLabelInfo.qr))
|
||||
.append(signLabelInfo.br);
|
||||
// data.append("<QR>".concat(printInfoDTO.getOutNumber()).concat("</QR><BR>"));
|
||||
}
|
||||
|
|
@ -257,6 +265,7 @@ public interface PrinterImpl {
|
|||
.append(signLabelInfo.br);
|
||||
// data.append("<S>打印时间:").append(DateUtil.date().toDateStr()).append("</S><BR>");
|
||||
// data.append("<OUT:180>");
|
||||
data.append(signLabelInfo.getOut(180));
|
||||
data.append(signLabelInfo.cut);
|
||||
// data.append("<PCUT>");
|
||||
return data.toString();
|
||||
|
|
@ -293,11 +302,11 @@ public interface PrinterImpl {
|
|||
.append(signLabelInfo.br);
|
||||
// builder.append("<S><L>时间: ").append(date).append(" </L></S><BR><BR><BR>");
|
||||
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);
|
||||
// builder.append("<CS:32>").append(productName).append(" x ").append(number).append("</CS><BR>");
|
||||
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>");
|
||||
}
|
||||
} else {
|
||||
|
|
@ -326,6 +335,7 @@ public interface PrinterImpl {
|
|||
}
|
||||
}
|
||||
builder.append(signLabelInfo.br)
|
||||
.append(signLabelInfo.getOut(150))
|
||||
.append(signLabelInfo.cut);
|
||||
// builder.append("<OUT:150>");
|
||||
// builder.append("<PCUT>");
|
||||
|
|
|
|||
|
|
@ -57,13 +57,14 @@ public class YxyPrinter extends PrinterHandler implements PrinterImpl {
|
|||
|
||||
private PrinterImpl.PrintSignLabel printSignLabel = new PrinterImpl.PrintSignLabel()
|
||||
.setBr("<BR>")
|
||||
.setCut("PCUT")
|
||||
.setCut("<PCUT>")
|
||||
.setOut("OUT")
|
||||
.setF(new String[]{"<F>", "</F>"})
|
||||
.setL(new String[]{"<L>", "</L>"})
|
||||
.setS(new String[]{"<S>", "</S>"})
|
||||
.setQr(new String[]{"<QR>", "</QR>"})
|
||||
.setCenter(new String[]{"<CB>", "</CB>"})
|
||||
.setBold(new String[]{"<BOLD>", "</BOLD>"});
|
||||
.setCenter(new String[]{"<C>", "</C>"})
|
||||
.setBold(new String[]{"<B>", "</B>"});
|
||||
|
||||
@Override
|
||||
public PrinterImpl.PrintSignLabel getSignLabelInfo() {
|
||||
|
|
@ -110,23 +111,41 @@ public class YxyPrinter extends PrinterHandler implements PrinterImpl {
|
|||
|
||||
@Override
|
||||
protected void normalDishesPrint(OrderInfo orderInfo, OrderDetail orderDetail, PrintMachine machine) {
|
||||
// todo 修改为bigdecimal
|
||||
String data = getPrintData("", getPickupNum(orderInfo),
|
||||
DateUtil.format(orderDetail.getCreateTime(), "yyyy-MM-dd HH:mm:ss"), orderDetail.getProductName(),
|
||||
orderDetail.getNum().intValue(), orderDetail.getSkuName(), orderDetail.getRemark(), orderDetail.getProGroupInfo());
|
||||
String buildDishPrintData = buildDishPrintData(false, 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");
|
||||
// sendPrintRequest(voiceJson, 3, 1, machine.getAddress(), data);
|
||||
}
|
||||
|
||||
@Override
|
||||
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
|
||||
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
|
||||
|
|
@ -156,53 +175,6 @@ public class YxyPrinter extends PrinterHandler implements PrinterImpl {
|
|||
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值
|
||||
*
|
||||
|
|
|
|||
|
|
@ -75,6 +75,9 @@ public class AuthorizationServiceImpl implements AuthorizationService {
|
|||
if (StrUtil.isNotBlank(loginDTO.staffUserName())) {
|
||||
// 查询主账号
|
||||
SysUser sysUser = sysUserService.queryChain().eq(SysUser::getAccount, loginDTO.username()).one();
|
||||
if (sysUser == null) {
|
||||
throw new ApiNotPrintException("登录账号不存在");
|
||||
}
|
||||
if (StatusEnum.DISABLE.value() == sysUser.getStauts()) {
|
||||
throw new ApiNotPrintException("账户未启用");
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue