|
@@ -1,66 +0,0 @@
|
|
|
-package shop.alien.store.service.impl;
|
|
|
|
|
-
|
|
|
|
|
-import com.github.anastaciocintra.escpos.EscPos;
|
|
|
|
|
-import com.github.anastaciocintra.escpos.Style;
|
|
|
|
|
-import shop.alien.entity.store.Receipt;
|
|
|
|
|
-import shop.alien.store.service.ReceiptPrinter;
|
|
|
|
|
-import java.net.Socket;
|
|
|
|
|
-import java.io.OutputStream;
|
|
|
|
|
-import java.text.SimpleDateFormat;
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-public class NetworkReceiptPrinter implements ReceiptPrinter {
|
|
|
|
|
- private final String ip;
|
|
|
|
|
- private final int port;
|
|
|
|
|
-
|
|
|
|
|
- public NetworkReceiptPrinter(String ip, int port) {
|
|
|
|
|
- this.ip = ip;
|
|
|
|
|
- this.port = port;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- @Override
|
|
|
|
|
- public void print(Receipt receipt) throws Exception {
|
|
|
|
|
- try (Socket socket = new Socket(ip, port);
|
|
|
|
|
- OutputStream out = socket.getOutputStream()) {
|
|
|
|
|
-
|
|
|
|
|
- EscPos escpos = new EscPos(out);
|
|
|
|
|
- doPrint(escpos, receipt);
|
|
|
|
|
-
|
|
|
|
|
- escpos.cut(EscPos.CutMode.FULL);
|
|
|
|
|
- escpos.flush();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- private void doPrint(EscPos escpos, Receipt receipt) throws Exception {
|
|
|
|
|
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
-
|
|
|
|
|
-// escpos.setAlign(Style.Align.CENTER)
|
|
|
|
|
-// .setFontSize(Style.FontSize._2, Style.FontSize._2)
|
|
|
|
|
-// .writeLn("XX便利店")
|
|
|
|
|
-// .feed(1);
|
|
|
|
|
-//
|
|
|
|
|
-// escpos.setFontSize(Style.FontSize._1, Style.FontSize._1)
|
|
|
|
|
-// .setAlign(Style.Align.LEFT)
|
|
|
|
|
-// .writeLn("单号:" + receipt.getOrderNo())
|
|
|
|
|
-// .writeLn("时间:" + sdf.format(receipt.getCreateTime()))
|
|
|
|
|
-// .writeLn("------------------------------");
|
|
|
|
|
-//
|
|
|
|
|
-// for (ReceiptItem item : receipt.getItems()) {
|
|
|
|
|
-// escpos.writeLn(item.getName() + " ×" + item.getQty());
|
|
|
|
|
-// escpos.writeLn(String.format(" %s × %s = %s",
|
|
|
|
|
-// item.getPrice(), item.getQty(), item.getAmount()));
|
|
|
|
|
-// }
|
|
|
|
|
-//
|
|
|
|
|
-// escpos.writeLn("------------------------------")
|
|
|
|
|
-// .setAlign(Style.Align.RIGHT)
|
|
|
|
|
-// .writeLn("合计:" + receipt.getTotalAmount())
|
|
|
|
|
-// .writeLn("支付:" + receipt.getPayType())
|
|
|
|
|
-// .feed(3);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-}
|
|
|