添加飞蛾打印机
This commit is contained in:
@@ -30,6 +30,8 @@ public class OrderDetailPO implements Serializable {
|
|||||||
|
|
||||||
List<Detail> detailList;
|
List<Detail> detailList;
|
||||||
|
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public static class Detail implements Serializable{
|
public static class Detail implements Serializable{
|
||||||
@@ -41,6 +43,8 @@ public class OrderDetailPO implements Serializable {
|
|||||||
|
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
private String spec;
|
||||||
|
|
||||||
public Detail(String productName, String number, String amount, String remark) {
|
public Detail(String productName, String number, String amount, String remark) {
|
||||||
this.productName = productName;
|
this.productName = productName;
|
||||||
this.number = number;
|
this.number = number;
|
||||||
@@ -51,7 +55,7 @@ public class OrderDetailPO implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public OrderDetailPO(String merchantName, String printType, String masterId, String orderNo, String tradeDate, String operator, String receiptsAmount, String balance, String payType, String integral, List<Detail> detailList) {
|
public OrderDetailPO(String merchantName, String printType, String masterId, String orderNo, String tradeDate, String operator, String receiptsAmount, String balance, String payType, String integral, List<Detail> detailList,String remark) {
|
||||||
this.merchantName = merchantName;
|
this.merchantName = merchantName;
|
||||||
this.printType = printType;
|
this.printType = printType;
|
||||||
this.masterId = masterId;
|
this.masterId = masterId;
|
||||||
@@ -63,5 +67,6 @@ public class OrderDetailPO implements Serializable {
|
|||||||
this.payType = payType;
|
this.payType = payType;
|
||||||
this.integral = integral;
|
this.integral = integral;
|
||||||
this.detailList = detailList;
|
this.detailList = detailList;
|
||||||
|
this.remark=remark;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,6 +44,10 @@ public class PrintMechineConsumer {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private TbProductMapper tbProductMapper;
|
private TbProductMapper tbProductMapper;
|
||||||
|
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private TbOrderDetailMapper tbOrderDetailMapper;
|
||||||
|
|
||||||
@RabbitHandler
|
@RabbitHandler
|
||||||
public void listener(String message) {
|
public void listener(String message) {
|
||||||
String orderId = message;
|
String orderId = message;
|
||||||
@@ -167,7 +171,7 @@ public class PrintMechineConsumer {
|
|||||||
}
|
}
|
||||||
if(ObjectUtil.isNotEmpty(detailList)&&detailList.size()>0){
|
if(ObjectUtil.isNotEmpty(detailList)&&detailList.size()>0){
|
||||||
|
|
||||||
OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getTableName(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList);
|
OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getTableName(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList,orderInfo.getRemark());
|
||||||
String data= PrinterUtils.getCashPrintData(detailPO,"结算单");
|
String data= PrinterUtils.getCashPrintData(detailPO,"结算单");
|
||||||
PrinterUtils.printTickets(1, Integer.valueOf(printerNum), tbPrintMachineWithBLOBs.getAddress(), data);
|
PrinterUtils.printTickets(1, Integer.valueOf(printerNum), tbPrintMachineWithBLOBs.getAddress(), data);
|
||||||
}
|
}
|
||||||
@@ -256,6 +260,137 @@ public class PrintMechineConsumer {
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case "cash": //小票打印机
|
case "cash": //小票打印机
|
||||||
|
switch (model) {
|
||||||
|
case "normal": //普通出单
|
||||||
|
|
||||||
|
if ("return".equals(orderInfo.getOrderType())) {
|
||||||
|
List<TbOrderDetail> tbOrderDetails = tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId));
|
||||||
|
if (ObjectUtil.isNotEmpty(tbOrderDetails) && tbOrderDetails.size() > 0) {
|
||||||
|
List<OrderDetailPO.Detail> detailList = new ArrayList<>();
|
||||||
|
tbOrderDetails.parallelStream().forEach(it -> {
|
||||||
|
String categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId();
|
||||||
|
|
||||||
|
Long count = categoryInfos.stream().filter(c ->
|
||||||
|
c.getId().toString().equals(categoryId)
|
||||||
|
).count();
|
||||||
|
log.info("获取当前类别是否未打印类别:{}", count);
|
||||||
|
|
||||||
|
|
||||||
|
TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getProductSkuId()));
|
||||||
|
String remark = "";
|
||||||
|
if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) {
|
||||||
|
remark = tbProductSkuWithBLOBs.getSpecSnap();
|
||||||
|
}
|
||||||
|
OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), it.getPriceAmount().toPlainString(), remark);
|
||||||
|
detailList.add(detail);
|
||||||
|
|
||||||
|
});
|
||||||
|
String balance = "0";
|
||||||
|
|
||||||
|
if ("deposit".equals(orderInfo.getPayType())) {
|
||||||
|
TbShopUser user = tbShopUserMapper.selectByPrimaryKey(orderInfo.getMemberId());
|
||||||
|
if (ObjectUtil.isNotEmpty(user) && ObjectUtil.isNotEmpty(user.getAmount())) {
|
||||||
|
balance = user.getAmount().toPlainString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(detailList) && detailList.size() > 0) {
|
||||||
|
// OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList);
|
||||||
|
OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", ObjectUtil.isEmpty(orderInfo.getMasterId()) || ObjectUtil.isNull(orderInfo.getMasterId()) ? orderInfo.getTableName() : orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList, orderInfo.getRemark());
|
||||||
|
|
||||||
|
String printType = "退款单";
|
||||||
|
|
||||||
|
String data = PrinterUtils.getCashPrintData(detailPO, printType);
|
||||||
|
PrinterUtils.printTickets(1, Integer.valueOf(printerNum), tbPrintMachineWithBLOBs.getAddress(), data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
cashierCarts = cashierCarts = tbCashierCartMapper.selectByOrderId(orderInfo.getId().toString(), "final");
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(cashierCarts) && cashierCarts.size() > 0) {
|
||||||
|
List<OrderDetailPO.Detail> detailList = new ArrayList<>();
|
||||||
|
cashierCarts.parallelStream().forEach(it -> {
|
||||||
|
String categoryId;
|
||||||
|
if (ObjectUtil.isEmpty(it.getCategoryId())) {
|
||||||
|
categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId();
|
||||||
|
} else {
|
||||||
|
categoryId = it.getCategoryId();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Long count = categoryInfos.stream().filter(c ->
|
||||||
|
c.getId().toString().equals(categoryId)
|
||||||
|
).count();
|
||||||
|
|
||||||
|
if (count > 0) {
|
||||||
|
TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getSkuId()));
|
||||||
|
String remark = "";
|
||||||
|
if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) {
|
||||||
|
remark = tbProductSkuWithBLOBs.getSpecSnap();
|
||||||
|
}
|
||||||
|
OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getName(), it.getNumber().toString(), it.getTotalAmount().toPlainString(), remark);
|
||||||
|
detailList.add(detail);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
String balance = "0";
|
||||||
|
|
||||||
|
if ("deposit".equals(orderInfo.getPayType())) {
|
||||||
|
TbShopUser user = tbShopUserMapper.selectByPrimaryKey(orderInfo.getMemberId());
|
||||||
|
if (ObjectUtil.isNotEmpty(user) && ObjectUtil.isNotEmpty(user.getAmount())) {
|
||||||
|
balance = user.getAmount().toPlainString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isNotEmpty(detailList) && detailList.size() > 0) {
|
||||||
|
OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getOrderType().equals("miniapp") ? orderInfo.getTableName() : orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, (ObjectUtil.isEmpty(orderInfo.getPayType()) || ObjectUtil.isNull(orderInfo.getPayType()) ? "" : orderInfo.getPayType()), "0", detailList, orderInfo.getRemark());
|
||||||
|
String printType = "结算单";
|
||||||
|
|
||||||
|
if ("return".equals(orderInfo.getOrderType())) {
|
||||||
|
printType = "退款单";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
FeieyunPrintUtil.getCashPrintData(detailPO, tbPrintMachineWithBLOBs.getAddress(), printType, printType);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case "one": //一菜一品
|
||||||
|
|
||||||
|
cashierCarts = tbCashierCartMapper.selectByOrderId(orderId, "final");
|
||||||
|
if (ObjectUtil.isNotEmpty(cashierCarts) && cashierCarts.size() > 0) {
|
||||||
|
|
||||||
|
cashierCarts.parallelStream().forEach(it -> {
|
||||||
|
|
||||||
|
String categoryId;
|
||||||
|
if (ObjectUtil.isEmpty(it.getCategoryId())) {
|
||||||
|
categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId();
|
||||||
|
} else {
|
||||||
|
categoryId = it.getCategoryId();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Long count = categoryInfos.stream().filter(c ->
|
||||||
|
c.getId().toString().equals(categoryId)
|
||||||
|
).count();
|
||||||
|
|
||||||
|
if (count > 0) {
|
||||||
|
TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getSkuId()));
|
||||||
|
String remark = "";
|
||||||
|
if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) {
|
||||||
|
remark = tbProductSkuWithBLOBs.getSpecSnap();
|
||||||
|
}
|
||||||
|
FeieyunPrintUtil.getPrintData(tbPrintMachineWithBLOBs.getAddress(), orderInfo.getTableName(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), it.getName(), it.getNumber(), remark);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case "kitchen": //出品打印机
|
case "kitchen": //出品打印机
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -42,6 +42,10 @@ public class CloudPrinterService {
|
|||||||
private TbProductMapper tbProductMapper;
|
private TbProductMapper tbProductMapper;
|
||||||
|
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private TbOrderDetailMapper tbOrderDetailMapper;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public Result printReceipt(String type,String orderId,Boolean ispre){
|
public Result printReceipt(String type,String orderId,Boolean ispre){
|
||||||
@@ -167,7 +171,7 @@ public class CloudPrinterService {
|
|||||||
}
|
}
|
||||||
if(ObjectUtil.isNotEmpty(detailList)&&detailList.size()>0){
|
if(ObjectUtil.isNotEmpty(detailList)&&detailList.size()>0){
|
||||||
|
|
||||||
OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getTableName(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList);
|
OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getTableName(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList,orderInfo.getRemark());
|
||||||
String data= PrinterUtils.getCashPrintData(detailPO,"结算单");
|
String data= PrinterUtils.getCashPrintData(detailPO,"结算单");
|
||||||
PrinterUtils.printTickets(1, Integer.valueOf(printerNum), tbPrintMachineWithBLOBs.getAddress(), data);
|
PrinterUtils.printTickets(1, Integer.valueOf(printerNum), tbPrintMachineWithBLOBs.getAddress(), data);
|
||||||
}
|
}
|
||||||
@@ -256,6 +260,137 @@ public class CloudPrinterService {
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case "cash": //小票打印机
|
case "cash": //小票打印机
|
||||||
|
switch (model) {
|
||||||
|
case "normal": //普通出单
|
||||||
|
|
||||||
|
if ("return".equals(orderInfo.getOrderType())) {
|
||||||
|
List<TbOrderDetail> tbOrderDetails = tbOrderDetailMapper.selectAllByOrderId(Integer.valueOf(orderId));
|
||||||
|
if (ObjectUtil.isNotEmpty(tbOrderDetails) && tbOrderDetails.size() > 0) {
|
||||||
|
List<OrderDetailPO.Detail> detailList = new ArrayList<>();
|
||||||
|
tbOrderDetails.parallelStream().forEach(it -> {
|
||||||
|
String categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId();
|
||||||
|
|
||||||
|
Long count = categoryInfos.stream().filter(c ->
|
||||||
|
c.getId().toString().equals(categoryId)
|
||||||
|
).count();
|
||||||
|
log.info("获取当前类别是否未打印类别:{}", count);
|
||||||
|
|
||||||
|
|
||||||
|
TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getProductSkuId()));
|
||||||
|
String remark = "";
|
||||||
|
if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) {
|
||||||
|
remark = tbProductSkuWithBLOBs.getSpecSnap();
|
||||||
|
}
|
||||||
|
OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getProductName(), it.getNum().toString(), it.getPriceAmount().toPlainString(), remark);
|
||||||
|
detailList.add(detail);
|
||||||
|
|
||||||
|
});
|
||||||
|
String balance = "0";
|
||||||
|
|
||||||
|
if ("deposit".equals(orderInfo.getPayType())) {
|
||||||
|
TbShopUser user = tbShopUserMapper.selectByPrimaryKey(orderInfo.getMemberId());
|
||||||
|
if (ObjectUtil.isNotEmpty(user) && ObjectUtil.isNotEmpty(user.getAmount())) {
|
||||||
|
balance = user.getAmount().toPlainString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(detailList) && detailList.size() > 0) {
|
||||||
|
// OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList);
|
||||||
|
OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", ObjectUtil.isEmpty(orderInfo.getMasterId()) || ObjectUtil.isNull(orderInfo.getMasterId()) ? orderInfo.getTableName() : orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList, orderInfo.getRemark());
|
||||||
|
|
||||||
|
String printType = "退款单";
|
||||||
|
|
||||||
|
String data = PrinterUtils.getCashPrintData(detailPO, printType);
|
||||||
|
PrinterUtils.printTickets(1, Integer.valueOf(printerNum), tbPrintMachineWithBLOBs.getAddress(), data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
cashierCarts = cashierCarts = tbCashierCartMapper.selectByOrderId(orderInfo.getId().toString(), "final");
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(cashierCarts) && cashierCarts.size() > 0) {
|
||||||
|
List<OrderDetailPO.Detail> detailList = new ArrayList<>();
|
||||||
|
cashierCarts.parallelStream().forEach(it -> {
|
||||||
|
String categoryId;
|
||||||
|
if (ObjectUtil.isEmpty(it.getCategoryId())) {
|
||||||
|
categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId();
|
||||||
|
} else {
|
||||||
|
categoryId = it.getCategoryId();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Long count = categoryInfos.stream().filter(c ->
|
||||||
|
c.getId().toString().equals(categoryId)
|
||||||
|
).count();
|
||||||
|
|
||||||
|
if (count > 0) {
|
||||||
|
TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getSkuId()));
|
||||||
|
String remark = "";
|
||||||
|
if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) {
|
||||||
|
remark = tbProductSkuWithBLOBs.getSpecSnap();
|
||||||
|
}
|
||||||
|
OrderDetailPO.Detail detail = new OrderDetailPO.Detail(it.getName(), it.getNumber().toString(), it.getTotalAmount().toPlainString(), remark);
|
||||||
|
detailList.add(detail);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
String balance = "0";
|
||||||
|
|
||||||
|
if ("deposit".equals(orderInfo.getPayType())) {
|
||||||
|
TbShopUser user = tbShopUserMapper.selectByPrimaryKey(orderInfo.getMemberId());
|
||||||
|
if (ObjectUtil.isNotEmpty(user) && ObjectUtil.isNotEmpty(user.getAmount())) {
|
||||||
|
balance = user.getAmount().toPlainString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isNotEmpty(detailList) && detailList.size() > 0) {
|
||||||
|
OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getOrderType().equals("miniapp") ? orderInfo.getTableName() : orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, (ObjectUtil.isEmpty(orderInfo.getPayType()) || ObjectUtil.isNull(orderInfo.getPayType()) ? "" : orderInfo.getPayType()), "0", detailList, orderInfo.getRemark());
|
||||||
|
String printType = "结算单";
|
||||||
|
|
||||||
|
if ("return".equals(orderInfo.getOrderType())) {
|
||||||
|
printType = "退款单";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
FeieyunPrintUtil.getCashPrintData(detailPO, tbPrintMachineWithBLOBs.getAddress(), printType, printType);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case "one": //一菜一品
|
||||||
|
|
||||||
|
cashierCarts = tbCashierCartMapper.selectByOrderId(orderId, "final");
|
||||||
|
if (ObjectUtil.isNotEmpty(cashierCarts) && cashierCarts.size() > 0) {
|
||||||
|
|
||||||
|
cashierCarts.parallelStream().forEach(it -> {
|
||||||
|
|
||||||
|
String categoryId;
|
||||||
|
if (ObjectUtil.isEmpty(it.getCategoryId())) {
|
||||||
|
categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId();
|
||||||
|
} else {
|
||||||
|
categoryId = it.getCategoryId();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Long count = categoryInfos.stream().filter(c ->
|
||||||
|
c.getId().toString().equals(categoryId)
|
||||||
|
).count();
|
||||||
|
|
||||||
|
if (count > 0) {
|
||||||
|
TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByPrimaryKey(Integer.valueOf(it.getSkuId()));
|
||||||
|
String remark = "";
|
||||||
|
if (ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs) && ObjectUtil.isNotEmpty(tbProductSkuWithBLOBs.getSpecSnap())) {
|
||||||
|
remark = tbProductSkuWithBLOBs.getSpecSnap();
|
||||||
|
}
|
||||||
|
FeieyunPrintUtil.getPrintData(tbPrintMachineWithBLOBs.getAddress(), orderInfo.getTableName(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), it.getName(), it.getNumber(), remark);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case "kitchen": //出品打印机
|
case "kitchen": //出品打印机
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -152,13 +152,13 @@ public class PayService {
|
|||||||
if(response.getStatusCodeValue()==200&&ObjectUtil.isNotEmpty(response.getBody())){
|
if(response.getStatusCodeValue()==200&&ObjectUtil.isNotEmpty(response.getBody())){
|
||||||
JSONObject object=JSONObject.parseObject(response.getBody());
|
JSONObject object=JSONObject.parseObject(response.getBody());
|
||||||
if(object.get("code").equals("0")){
|
if(object.get("code").equals("0")){
|
||||||
|
|
||||||
payment.setTradeNumber(object.getJSONObject("data").get("orderNumber").toString());
|
payment.setTradeNumber(object.getJSONObject("data").get("orderNumber").toString());
|
||||||
payment.setUpdatedAt(System.currentTimeMillis());
|
payment.setUpdatedAt(System.currentTimeMillis());
|
||||||
tbOrderPaymentMapper.updateByPrimaryKeySelective(payment);
|
tbOrderPaymentMapper.updateByPrimaryKeySelective(payment);
|
||||||
orderInfo.setStatus("paying");
|
orderInfo.setStatus("paying");
|
||||||
orderInfo.setPayOrderNo(payment.getTradeNumber());
|
orderInfo.setPayOrderNo(payment.getTradeNumber());
|
||||||
|
|
||||||
|
|
||||||
tbOrderInfoMapper.updateByPrimaryKey(orderInfo);
|
tbOrderInfoMapper.updateByPrimaryKey(orderInfo);
|
||||||
String key= RedisCst.TABLE_CART.concat(orderInfo.getTableId()).concat("-").concat(orderInfo.getShopId());
|
String key= RedisCst.TABLE_CART.concat(orderInfo.getTableId()).concat("-").concat(orderInfo.getShopId());
|
||||||
//清除缓存购物车数据
|
//清除缓存购物车数据
|
||||||
@@ -190,7 +190,6 @@ public class PayService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if("paying".equals(orderInfo.getStatus())){
|
if("paying".equals(orderInfo.getStatus())){
|
||||||
|
|
||||||
TbOrderPayment payment= tbOrderPaymentMapper.selectByOrderId(orderInfo.getId().toString());
|
TbOrderPayment payment= tbOrderPaymentMapper.selectByOrderId(orderInfo.getId().toString());
|
||||||
if(ObjectUtil.isNotEmpty(payment)&&ObjectUtil.isNotEmpty(payment.getTradeNumber())){
|
if(ObjectUtil.isNotEmpty(payment)&&ObjectUtil.isNotEmpty(payment.getTradeNumber())){
|
||||||
|
|
||||||
@@ -199,8 +198,6 @@ public class PayService {
|
|||||||
if(ObjectUtil.isEmpty(thirdApply)||ObjectUtil.isNull(thirdApply)){
|
if(ObjectUtil.isEmpty(thirdApply)||ObjectUtil.isNull(thirdApply)){
|
||||||
return Result.fail("支付通道不存在");
|
return Result.fail("支付通道不存在");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TradeQueryReq req=new TradeQueryReq();
|
TradeQueryReq req=new TradeQueryReq();
|
||||||
req.setAppId(thirdApply.getAppId());
|
req.setAppId(thirdApply.getAppId());
|
||||||
req.setTimestamp(System.currentTimeMillis());
|
req.setTimestamp(System.currentTimeMillis());
|
||||||
@@ -301,7 +298,6 @@ public class PayService {
|
|||||||
|
|
||||||
|
|
||||||
TbMerchantThirdApply thirdApply= tbMerchantThirdApplyMapper.selectByPrimaryKey(Integer.valueOf(shopInfo.getMerchantId()));
|
TbMerchantThirdApply thirdApply= tbMerchantThirdApplyMapper.selectByPrimaryKey(Integer.valueOf(shopInfo.getMerchantId()));
|
||||||
|
|
||||||
if(ObjectUtil.isEmpty(thirdApply)||ObjectUtil.isNull(thirdApply)){
|
if(ObjectUtil.isEmpty(thirdApply)||ObjectUtil.isNull(thirdApply)){
|
||||||
return Result.fail("支付通道不存在");
|
return Result.fail("支付通道不存在");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package com.chaozhanggui.system.cashierservice.util;
|
package com.chaozhanggui.system.cashierservice.util;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.chaozhanggui.system.cashierservice.model.OrderDetailPO;
|
||||||
import org.apache.commons.codec.digest.DigestUtils;
|
import org.apache.commons.codec.digest.DigestUtils;
|
||||||
import org.apache.http.HttpEntity;
|
import org.apache.http.HttpEntity;
|
||||||
import org.apache.http.NameValuePair;
|
import org.apache.http.NameValuePair;
|
||||||
@@ -15,6 +17,7 @@ import org.apache.http.util.EntityUtils;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class FeieyunPrintUtil {
|
public class FeieyunPrintUtil {
|
||||||
@@ -114,6 +117,223 @@ public class FeieyunPrintUtil {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getPrintData(String sn,String pickupNumber,String date,String productName,Integer number,String remark) {
|
||||||
|
StringBuilder builder = new StringBuilder();
|
||||||
|
|
||||||
|
builder.append("<CB>"+pickupNumber+"</CB><BR><BR>");
|
||||||
|
builder.append("<L>时间: "+date+" </L><BR><BR><BR>");
|
||||||
|
|
||||||
|
if(productName.length()>4||remark.length()>4){
|
||||||
|
builder.append("<B><BOLD>"+productName+" "+number+"</BOLD></B><BR><BR>");
|
||||||
|
builder.append("<B><BOLD>"+remark+" </BOLD></B><BR>");
|
||||||
|
}else {
|
||||||
|
builder.append("<B><BOLD>"+productName+" "+number+"</BOLD></B><BR><BR>");
|
||||||
|
builder.append("<B><BOLD>"+remark+" </BOLD></B><BR>");
|
||||||
|
}
|
||||||
|
builder.append("<CUT>");
|
||||||
|
|
||||||
|
String content=builder.toString();
|
||||||
|
|
||||||
|
System.out.println("content:".concat(content));
|
||||||
|
|
||||||
|
//通过POST请求,发送打印信息到服务器
|
||||||
|
RequestConfig requestConfig = RequestConfig.custom()
|
||||||
|
.setSocketTimeout(30000)//读取超时
|
||||||
|
.setConnectTimeout(30000)//连接超时
|
||||||
|
.build();
|
||||||
|
|
||||||
|
CloseableHttpClient httpClient = HttpClients.custom()
|
||||||
|
.setDefaultRequestConfig(requestConfig)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
HttpPost post = new HttpPost(URL);
|
||||||
|
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
|
||||||
|
nvps.add(new BasicNameValuePair("user",USER));
|
||||||
|
String STIME = String.valueOf(System.currentTimeMillis()/1000);
|
||||||
|
nvps.add(new BasicNameValuePair("stime",STIME));
|
||||||
|
nvps.add(new BasicNameValuePair("sig",signature(USER,UKEY,STIME)));
|
||||||
|
nvps.add(new BasicNameValuePair("apiname","Open_printMsg"));//固定值,不需要修改
|
||||||
|
nvps.add(new BasicNameValuePair("sn",sn));
|
||||||
|
nvps.add(new BasicNameValuePair("content",content));
|
||||||
|
nvps.add(new BasicNameValuePair("times","1"));//打印联数
|
||||||
|
|
||||||
|
CloseableHttpResponse response = null;
|
||||||
|
String result = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
post.setEntity(new UrlEncodedFormEntity(nvps,"utf-8"));
|
||||||
|
response = httpClient.execute(post);
|
||||||
|
int statecode = response.getStatusLine().getStatusCode();
|
||||||
|
if(statecode == 200){
|
||||||
|
HttpEntity httpentity = response.getEntity();
|
||||||
|
if (httpentity != null){
|
||||||
|
//服务器返回的JSON字符串,建议要当做日志记录起来
|
||||||
|
result = EntityUtils.toString(httpentity);
|
||||||
|
System.out.println("result:".concat(result));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
finally{
|
||||||
|
try {
|
||||||
|
if(response!=null){
|
||||||
|
response.close();
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
post.abort();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
httpClient.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static String getCashPrintData(OrderDetailPO detailPO, String sn, String type, String orderType){
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append("<CB>"+detailPO.getMerchantName()+"</CB><BR><BR>");
|
||||||
|
sb.append("<C><BOLD>"+type+"【"+detailPO.getMasterId()+"】</BOLD></C><BR><BR>");
|
||||||
|
sb.append("订单号: "+detailPO.getOrderNo()+" <BR>");
|
||||||
|
sb.append("交易时间: "+detailPO.getTradeDate()+" <BR>");
|
||||||
|
sb.append("收银员: "+detailPO.getOperator()+" <BR><BR><BR>");
|
||||||
|
sb.append("------------------------<BR>");
|
||||||
|
char paddingCharacter = ' ';
|
||||||
|
sb.append("<S>"+String.format("%-15s","品名").replace(' ', paddingCharacter)+String.format("%-4s","数量").replace(' ', paddingCharacter)+String.format("%4s","小计").replace(' ', paddingCharacter)+"</S><BR>");
|
||||||
|
for (OrderDetailPO.Detail detail : detailPO.getDetailList()) {
|
||||||
|
if(detail.getProductName().length()>4){
|
||||||
|
|
||||||
|
int count=getProducrName(detail.getProductName());
|
||||||
|
if(count<=0){
|
||||||
|
int length=15-(detail.getProductName().length()-4);
|
||||||
|
sb.append(""+String.format("%-"+length+"s",detail.getProductName()).replace(' ', paddingCharacter)+String.format("%-4s",detail.getNumber()).replace(' ', paddingCharacter)+String.format("%8s",detail.getAmount()).replace(' ', paddingCharacter)+"<BR>");
|
||||||
|
}else {
|
||||||
|
int length=15+count-(detail.getProductName().length()-4);
|
||||||
|
sb.append(""+String.format("%-"+length+"s",detail.getProductName()).replace(' ', paddingCharacter)+String.format("%-4s",detail.getNumber()).replace(' ', paddingCharacter)+String.format("%8s",detail.getAmount()).replace(' ', paddingCharacter)+"<BR>");
|
||||||
|
}
|
||||||
|
|
||||||
|
}else {
|
||||||
|
sb.append(""+String.format("%-15s",detail.getProductName()).replace(' ', paddingCharacter)+String.format("%-4s",detail.getNumber()).replace(' ', paddingCharacter)+String.format("%8s",detail.getAmount()).replace(' ', paddingCharacter)+"<BR>");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(detail.getSpec()!=null&& ObjectUtil.isNotEmpty(detail.getSpec())){
|
||||||
|
sb.append("规格:"+detail.getSpec()+"<BR>");
|
||||||
|
}
|
||||||
|
|
||||||
|
sb.append("<BR>");
|
||||||
|
|
||||||
|
}
|
||||||
|
sb.append("------------------------<BR>");
|
||||||
|
String t="¥"+detailPO.getReceiptsAmount();
|
||||||
|
t=String.format("%11s",t).replace(' ', paddingCharacter);
|
||||||
|
if(orderType.equals("return")){
|
||||||
|
sb.append("<B>应退"+t+"</B><BR>");
|
||||||
|
}else {
|
||||||
|
sb.append("<B>应收"+t+"</B><BR>");
|
||||||
|
}
|
||||||
|
if(ObjectUtil.isNotEmpty(detailPO.getPayType())&&ObjectUtil.isNotNull(detailPO.getPayType())&&detailPO.getPayType().equals("deposit")){
|
||||||
|
sb.append("储值¥"+detailPO.getReceiptsAmount()+" <BR>");
|
||||||
|
sb.append("------------------------<BR>");
|
||||||
|
sb.append("积分:"+detailPO.getIntegral()+"<BR>");
|
||||||
|
}
|
||||||
|
|
||||||
|
sb.append("余额:"+detailPO.getBalance()+"<BR>");
|
||||||
|
sb.append("------------------------<BR>");
|
||||||
|
|
||||||
|
if(ObjectUtil.isNotEmpty(detailPO.getRemark())&&ObjectUtil.isNotNull(detailPO.getRemark())){
|
||||||
|
sb.append("<L>备注:"+detailPO.getRemark()+"</L><BR>");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sb.append("打印时间:"+DateUtils.getTime(new Date())+"<BR>");
|
||||||
|
|
||||||
|
sb.append("<CUT>");
|
||||||
|
|
||||||
|
String content=sb.toString();
|
||||||
|
|
||||||
|
//通过POST请求,发送打印信息到服务器
|
||||||
|
RequestConfig requestConfig = RequestConfig.custom()
|
||||||
|
.setSocketTimeout(30000)//读取超时
|
||||||
|
.setConnectTimeout(30000)//连接超时
|
||||||
|
.build();
|
||||||
|
|
||||||
|
CloseableHttpClient httpClient = HttpClients.custom()
|
||||||
|
.setDefaultRequestConfig(requestConfig)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
HttpPost post = new HttpPost(URL);
|
||||||
|
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
|
||||||
|
nvps.add(new BasicNameValuePair("user",USER));
|
||||||
|
String STIME = String.valueOf(System.currentTimeMillis()/1000);
|
||||||
|
nvps.add(new BasicNameValuePair("stime",STIME));
|
||||||
|
nvps.add(new BasicNameValuePair("sig",signature(USER,UKEY,STIME)));
|
||||||
|
nvps.add(new BasicNameValuePair("apiname","Open_printMsg"));//固定值,不需要修改
|
||||||
|
nvps.add(new BasicNameValuePair("sn",sn));
|
||||||
|
nvps.add(new BasicNameValuePair("content",content));
|
||||||
|
nvps.add(new BasicNameValuePair("times","1"));//打印联数
|
||||||
|
|
||||||
|
CloseableHttpResponse response = null;
|
||||||
|
String result = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
post.setEntity(new UrlEncodedFormEntity(nvps,"utf-8"));
|
||||||
|
response = httpClient.execute(post);
|
||||||
|
int statecode = response.getStatusLine().getStatusCode();
|
||||||
|
if(statecode == 200){
|
||||||
|
HttpEntity httpentity = response.getEntity();
|
||||||
|
if (httpentity != null){
|
||||||
|
//服务器返回的JSON字符串,建议要当做日志记录起来
|
||||||
|
result = EntityUtils.toString(httpentity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
finally{
|
||||||
|
try {
|
||||||
|
if(response!=null){
|
||||||
|
response.close();
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
post.abort();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
httpClient.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static int getProducrName(String str){
|
public static int getProducrName(String str){
|
||||||
|
|||||||
@@ -217,9 +217,9 @@ public class PrinterUtils {
|
|||||||
detailList.add(detail);
|
detailList.add(detail);
|
||||||
detailList.add(detail3);
|
detailList.add(detail3);
|
||||||
detailList.add(detail4);
|
detailList.add(detail4);
|
||||||
OrderDetailPO detailPO=new OrderDetailPO("牛叉闪闪","普通打印","#365","DD20240306134718468","2024-03-06 15:00:00","【POS-1】001","79000.80","5049758.96","deposit","0",detailList);
|
// OrderDetailPO detailPO=new OrderDetailPO("牛叉闪闪","普通打印","#365","DD20240306134718468","2024-03-06 15:00:00","【POS-1】001","79000.80","5049758.96","deposit","0",detailList);
|
||||||
|
|
||||||
|
|
||||||
printTickets(1,1,"ZF544PG03W00001",getCashPrintData(detailPO,"结算单"));
|
// printTickets(1,1,"ZF544PG03W00001",getCashPrintData(detailPO,"结算单"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user