新增业务打印绑定功能,整合打印模板与业务数据的映射配置,优化打印数据生成逻辑。新增免密接口,支持桌面端打印模板的查询与列表展示,提升用户体验和系统的实时数据同步能力。同时,重构相关控制器以增强系统的可维护性和扩展性。

This commit is contained in:
geht
2026-05-14 10:43:51 +08:00
parent 642cecb04d
commit 8bcc34aee0
649 changed files with 18804 additions and 70 deletions

View File

@@ -0,0 +1,11 @@
using Prism.Events;
namespace YY.Admin.Core.Events;
public class PrintBizTemplateBindChangedPayload
{
public string Action { get; set; } = string.Empty;
public string? BindId { get; set; }
}
public class PrintBizTemplateBindChangedEvent : PubSubEvent<PrintBizTemplateBindChangedPayload> { }

View File

@@ -0,0 +1,12 @@
using YY.Admin.Core.Entity;
namespace YY.Admin.Core.Services;
/// <summary>业务打印绑定:免密拉取 + 本地缓存(只读)</summary>
public interface IPrintBizTemplateBindService
{
IReadOnlyList<PrintBizTemplateBind> GetCached();
Task<IReadOnlyList<PrintBizTemplateBind>> ListAsync(CancellationToken ct = default);
Task<IReadOnlyList<PrintBizTemplateBind>> RefreshCacheAsync(CancellationToken ct = default);
Task<PrintBizTemplateBind?> GetByIdAsync(string id, CancellationToken ct = default);
}

View File

@@ -24,6 +24,9 @@ public interface IRawMaterialEntryService
/// <summary>调用后端接口生成条码/批次号格式QH+物料编码+yyMMdd+序号)</summary>
Task<string?> GenerateBarcodeAsync(string materialCode, CancellationToken ct = default);
/// <summary>按业务打印绑定准备模板 JSON 与 printData与后端 prepareNativePrint 一致,免密 anon。</summary>
Task<(string templateJson, string printDataJson, string? errorMessage)> PrepareNativePrintAsync(string id, CancellationToken ct = default);
/// <summary>
/// 同步读取本地缓存的「全量入场记录」快照(深拷贝),不会触发远端拉取。
/// 主要用于「磅单已入场重量」等跨表实时聚合,且需要保持与后端相同口径的场景。

View File

@@ -0,0 +1,19 @@
namespace YY.Admin.Core.Entity;
/// <summary>业务打印绑定print_biz_template_bind桌面端只读缓存</summary>
public class PrintBizTemplateBind
{
public string? Id { get; set; }
/// <summary>业务编码(菜单 permission id</summary>
public string? BizCode { get; set; }
public string? BizName { get; set; }
public string? TemplateId { get; set; }
public string? TemplateCode { get; set; }
/// <summary>字段映射 JSON</summary>
public string? FieldMappingJson { get; set; }
public string? Remark { get; set; }
public string? CreateBy { get; set; }
public DateTime? CreateTime { get; set; }
public string? UpdateBy { get; set; }
public DateTime? UpdateTime { get; set; }
}

View File

@@ -223,6 +223,9 @@ public class SysMenuSeedData : ISqlSugarEntitySeedData<SysMenu>
new SysMenu{ Id=1300300110401, Pid=1300300110101, Title="增加", Permission="sysPrint:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
new SysMenu{ Id=1300300110501, Pid=1300300110101, Title="删除", Permission="sysPrint:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
// 业务打印绑定桌面端只读列表Web 端可在「打印模板」模块维护)
new SysMenu{ Id=1300300110701, Pid=1300300000101, Title="业务打印绑定", Path="/platform/printBizBind", Name="printBizBind", Component="PrintBizTemplateBindListView", Icon="&#xe824;", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=195 },
// 系统配置
new SysMenu{ Id=1300300140101, Pid=1300300000101, Title="系统配置", Path="/platform/infoSetting", Name="sysInfoSetting", Component="/system/infoSetting/index", Icon="&#xe7a3;", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=220 },
#endregion

View File

@@ -117,6 +117,7 @@ public class SysTenantMenuSeedData : ISqlSugarEntitySeedData<SysTenantMenu>
new SysTenantMenu(){ TenantId=1300000000001,MenuId=1300200050401 },
new SysTenantMenu(){ TenantId=1300000000001,MenuId=1300300010501 },
new SysTenantMenu(){ TenantId=1300000000001,MenuId=1300300110501 },
new SysTenantMenu(){ TenantId=1300000000001,MenuId=1300300110701 },
new SysTenantMenu(){ TenantId=1300000000001,MenuId=1300200080401 },
new SysTenantMenu(){ TenantId=1300000000001,MenuId=1300200020501 },
new SysTenantMenu(){ TenantId=1300000000001,MenuId=1300300120501 },