新增打印模块功能,支持图片分析生成原生模板JSON,查询可用打印机,服务端直打功能,优化打印设计器界面,添加打印机选择和快速打印选项,同时更新依赖项以支持PDF处理。

This commit is contained in:
geht
2026-04-14 17:18:50 +08:00
parent 0024c071ff
commit e04169a694
55 changed files with 30188 additions and 1595 deletions

View File

@@ -0,0 +1,169 @@
-- 打印模板分类字典 + 纸张规格字典幂等初始化
-- 分类字典
INSERT INTO `sys_dict` (`id`, `dict_name`, `dict_code`, `description`, `del_flag`, `create_by`, `create_time`, `type`, `tenant_id`)
SELECT REPLACE(UUID(), '-', ''), '打印模板分类', 'print_template_category', '打印模板分类', 0, 'admin', NOW(), 0, 0
WHERE NOT EXISTS (
SELECT 1 FROM `sys_dict` WHERE `dict_code` = 'print_template_category' AND `del_flag` = 0
);
-- 纸张规格字典
INSERT INTO `sys_dict` (`id`, `dict_name`, `dict_code`, `description`, `del_flag`, `create_by`, `create_time`, `type`, `tenant_id`)
SELECT REPLACE(UUID(), '-', ''), '打印纸张规格', 'print_paper_preset', '打印纸张规格预设', 0, 'admin', NOW(), 0, 0
WHERE NOT EXISTS (
SELECT 1 FROM `sys_dict` WHERE `dict_code` = 'print_paper_preset' AND `del_flag` = 0
);
-- 分类字典项
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '条码', 'barcode', 1, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_template_category'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'barcode');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '标签', 'label', 2, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_template_category'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'label');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '快递面单', 'waybill', 3, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_template_category'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'waybill');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '吊牌', 'hangtag', 4, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_template_category'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'hangtag');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '物料卡', 'materialCard', 5, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_template_category'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'materialCard');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '箱唛', 'cartonMark', 6, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_template_category'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'cartonMark');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '质检单', 'qc', 7, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_template_category'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'qc');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '入库单', 'inbound', 8, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_template_category'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'inbound');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '出库单', 'outbound', 9, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_template_category'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'outbound');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '工单', 'workOrder', 10, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_template_category'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'workOrder');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '表单套打', 'form', 11, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_template_category'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'form');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '报表', 'report', 12, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_template_category'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'report');
-- 纸张规格字典项
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, 'A4(210×297)', 'A4', 1, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_paper_preset'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'A4');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, 'A5(148×210)', 'A5', 2, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_paper_preset'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'A5');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, 'A6(105×148)', 'A6', 3, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_paper_preset'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'A6');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, 'B5(176×250)', 'B5', 4, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_paper_preset'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'B5');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, 'B6(125×176)', 'B6', 5, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_paper_preset'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'B6');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '10×12mm超小条码', 'L_10_12', 6, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_paper_preset'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'L_10_12');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '20×10mm珠宝标签', 'L_20_10', 7, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_paper_preset'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'L_20_10');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '25×15mm小标签', 'L_25_15', 8, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_paper_preset'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'L_25_15');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '30×20mm小标签', 'L_30_20', 9, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_paper_preset'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'L_30_20');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '40×30mm小条码', 'L_40_30', 10, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_paper_preset'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'L_40_30');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '50×30mm药盒/资产', 'L_50_30', 11, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_paper_preset'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'L_50_30');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '60×40mm常用条码', 'L_60_40', 12, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_paper_preset'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'L_60_40');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '70×50mm物流标签', 'L_70_50', 13, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_paper_preset'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'L_70_50');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '80×50mm物流标签', 'L_80_50', 14, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_paper_preset'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'L_80_50');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '90×60mm物流标签', 'L_90_60', 15, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_paper_preset'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'L_90_60');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '100×70mm物流标签', 'L_100_70', 16, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_paper_preset'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'L_100_70');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '100×150mm快递热敏', 'L_100_150', 17, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_paper_preset'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'L_100_150');
INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
SELECT REPLACE(UUID(), '-', ''), d.id, '100×180mm快递热敏', 'L_100_180', 18, 1, 'admin', NOW()
FROM `sys_dict` d
WHERE d.`dict_code` = 'print_paper_preset'
AND NOT EXISTS (SELECT 1 FROM `sys_dict_item` i WHERE i.`dict_id` = d.id AND i.`item_value` = 'L_100_180');