feat: 新增IM即时通讯(浮窗)、工作流、打印模块及工作台增强

- IM: 新增浮窗聊天(ImFloatWindow)、管理页(monitor/config/service/message)、SSE推送
- 工作流: 新增待办/我的流程页面及后端服务
- 打印: 新增打印模板、出库单打印(PrintPage)、模板种子脚本
- 工作台: 增强快捷入口与工作台数据
- 修复: TagsView页签关闭、CrudPage通用表格增强
- 移除导航菜单中的即时通讯入口,改为右下角浮窗
This commit is contained in:
2026-08-16 00:19:24 +08:00
parent 7235265749
commit 1bec470647
49 changed files with 5791 additions and 51 deletions
+102
View File
@@ -0,0 +1,102 @@
namespace F9MES.Application.Im;
/// <summary>发送单聊消息入参</summary>
public class ImSendInput
{
/// <summary>接收人用户ID</summary>
public long PeerId { get; set; }
/// <summary>消息内容</summary>
public string Content { get; set; } = "";
}
/// <summary>标记已读入参</summary>
public class ImReadInput
{
/// <summary>对端用户ID(标记与该用户的所有未读)</summary>
public long PeerId { get; set; }
}
/// <summary>系统/业务通知入参(群发)</summary>
public class ImNotifyInput
{
/// <summary>接收人用户ID列表(空=全部启用用户)</summary>
public List<long>? UserIds { get; set; }
/// <summary>消息类型:0=系统通知 1=业务提醒 2=审批通知 3=预警</summary>
public int MsgType { get; set; } = 0;
/// <summary>标题</summary>
public string Title { get; set; } = "";
/// <summary>内容</summary>
public string Content { get; set; } = "";
}
/// <summary>会话条目</summary>
public class ImSessionDto
{
public long PeerId { get; set; }
public string PeerName { get; set; } = "";
public string? LastContent { get; set; }
public DateTime LastTime { get; set; }
public int Unread { get; set; }
public int MsgType { get; set; }
/// <summary>是否系统通知/公告会话(PeerId=0</summary>
public bool IsSystem { get; set; }
}
/// <summary>消息条目</summary>
public class ImMessageDto
{
public long Id { get; set; }
public long SenderId { get; set; }
public string SenderName { get; set; } = "";
public long ReceiverId { get; set; }
public string Content { get; set; } = "";
/// <summary>标题(系统通知/公告标题)</summary>
public string? Title { get; set; }
public int MsgType { get; set; }
public DateTime SendTime { get; set; }
/// <summary>是否我发出的</summary>
public bool Mine { get; set; }
/// <summary>是否系统通知/公告消息</summary>
public bool IsSystem { get; set; }
}
/// <summary>IM 配置项(读写入参/返回)</summary>
public class ImConfigInput
{
/// <summary>配置键</summary>
public string Key { get; set; } = "";
/// <summary>配置值</summary>
public string Value { get; set; } = "";
/// <summary>配置名称</summary>
public string Name { get; set; } = "";
}
/// <summary>IM 管理消息条目</summary>
public class ImAdminMessageDto
{
public long Id { get; set; }
/// <summary>发送人ID0=系统)</summary>
public long SenderId { get; set; }
/// <summary>发送人姓名</summary>
public string SenderName { get; set; } = "";
/// <summary>接收人ID</summary>
public long ReceiverId { get; set; }
/// <summary>接收人姓名</summary>
public string ReceiverName { get; set; } = "";
/// <summary>标题</summary>
public string Title { get; set; } = "";
/// <summary>内容</summary>
public string Content { get; set; } = "";
/// <summary>消息类型:0=系统 1=业务 2=审批 3=预警 4=单聊</summary>
public int MsgType { get; set; }
/// <summary>是否已读</summary>
public int IsRead { get; set; }
/// <summary>发送时间</summary>
public DateTime SendTime { get; set; }
}