feat:打印机异常消息提醒

This commit is contained in:
yanshikui 2024-11-25 16:36:32 +08:00
parent 6c3e07e6e4
commit 4be4db0604

View File

@ -74,13 +74,13 @@ public class PrintController {
Long businessId = printBarcodeModel.getBusinessId();
String businessCode = printBarcodeModel.getBusinessCode();
PrintPrinterConfig printPrinterConfig = printPrinterConfigService.selectPrintPrinterConfigByPrinterCode(printerCode);
if (printPrinterConfig == null) {
return AjaxResult.error("打印机:" + printerCode + "不存在");
}
String ip = printPrinterConfig.getPrinterIp();
String printPort = printPrinterConfig.getPrinterPort().toString();
String printName = printPrinterConfig.getPrinterName();
PrintMessageProto.Printer.DataType dataType = PrintMessageProto.Printer.DataType.IQC_PrintMessage;
if (printPrinterConfig == null) {
return AjaxResult.error("打印机:" + printerCode + "不存在");
}
//根据打印机编码id获取打印机你信息
String clientIp = printPrinterConfig.getClientIp();
if (StringUtils.isEmpty(clientIp)) {
@ -88,6 +88,7 @@ public class PrintController {
}
PrintMessageProto.Printer msg = null;
PrintMessageProto.Printer.PrintInfo printInfo = PrintMessageProto.Printer.PrintInfo.newBuilder().setIp(ip).setCode(printerCode).setName(printName).setPort(printPort).build();
switch (businessType) {
case UserConstants.BARCODE_TYPE_ITEM:
//物料标签打印
@ -370,26 +371,20 @@ public class PrintController {
// msg = PrintMessageProto.Printer.newBuilder().setIqcPrintMessage(iQCPrintMessage).setDataType(dataType).setPrintInfo(printClientInfoMessage).build();
break;
default:
// 默认执行代码块
//封装模板数据
//String sampleCode =params.get("sampleCode");
//String qcObject =params.get("qcObject");
//String sampleTime =params.get("sampleTime");
//String batchCode =params.get("batchCode");
//PrintMessageProt//o.Printer.IQCPrintMessage iQCPrintMessage = PrintMessageProto.Printer.IQCPrintMessage.newBuilder().setSampleCode(sampleCode).setQcObject(qcObject).setSampleTime(sampleTime).setBatchCode(batchCode).build();
// 构造对应的消息对象
// msg = PrintMessageProto.Printer.newBuilder().setIqcPrintMessage(iQCPrintMessage).setDataType(dataType).setPrintInfo(printClientInfoMessage).build();
// break;
return AjaxResult.error("打印机不支持当前模板:" + "(" + businessType + ")");
}
// 获取信道数据并发送消息对象给指定打印机客户端
//打印机名称和打印机客户端地址映射 一对一关系
ConcurrentHashMap<String, SocketAddress> socketAddress = PrintClientInfoMessageHandler.socketAddressMap;
//根据客户端和通道信息
ConcurrentHashMap<SocketAddress, Channel> channels = PrintServerDefaultHandler.chanelMap;
Channel channel = channels.get(socketAddress.get(clientIp));
if (channel == null) {
if (channels.isEmpty()
|| socketAddress.isEmpty()
|| socketAddress.get(clientIp) == null
|| channels.get(socketAddress.get(clientIp)) == null) {
return AjaxResult.error("打印机客户端连接异常" + "(" + clientIp + ")");
}
Channel channel = channels.get(socketAddress.get(clientIp));
channel.writeAndFlush(msg);
return AjaxResult.success("打印成功");
}