feat:打印优化

This commit is contained in:
dzc committed 2026-09-22 13:29:10 +08:00
1 parent 22c4d4b9b9
commit 383ea2ad4b
32 files changed
+1879 -154

No files matched your search

@@ -131,6 +131,25 @@ abstract class SyncPrintTool {
existing.status == PrintStatus.ERROR &&
incomingVersion > existing.retryVersion;
/// 服务端打印方式与终端固定图片打印不一致时,上报 IMAGE 纠偏配置。
///
/// 纠偏失败只记日志:打印链路本身不受影响,下一次补拉会再次尝试。
static Future<void> _healPrintModeIfNeeded(SysSetting setting) async {
if (!AppSettingTool.needsPrintModeHeal(setting)) return;
final hardId = setting.serviceId;
if (hardId == null || hardId.isEmpty) return;
try {
await HardApi.reportPrinterInfo(
hardId: hardId,
request:
const PrinterInfoReportRequest(printMode: PrinterOutputMode.image),
);
logger.i('|$_tag|服务端打印方式已纠偏为图片打印|printer:|${setting.printerHardId}|');
} catch (error, stack) {
logger.w('|$_tag|图片打印方式纠偏上报失败error:|$error|stack:$stack|');
}
}
/// 在登录、MQTT 重连、应用恢复和周期检查时补拉当前业务终端代理的待办。
static Future<void> pullPendingTasks() async {
if (_isPulling || !AppNetworkTool.isAutoNetwork()) {
@@ -144,6 +163,8 @@ abstract class SyncPrintTool {
await HardApi.getPrinterBinding(),
);
if (setting.printerHardId == null) return;
// 终端固定图片打印;服务端若被误配为指令打印,这里上报纠偏让其跳过指令流生成。
unawaited(_healPrintModeIfNeeded(setting));
final tasks = await HardApi.getPrinterTasks();
for (final task in tasks) {
if (task.historyId == null ||