二开插件 - 创建主控台广播的方法

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

二开插件 - 创建主控台广播的方法

客户需求: 客户希望能创建广播,在主控台右下角弹出广播提醒。点击广播,跳转到信息中心对应节点列表。


解决方法: 目前广播消息有3种

1)sendType=2,待办消息,点击打开信息中心--任务--待处理任务。

2)sendType=3,流程消息,点击打开信息中心--消息--流程消息。

3)sendType=4,普通消息,点击打开信息中心--消息--普通消息。


1. 创建广播记录参考如下代码。

public void CreateBroadCast(Context ctx, List<long> receiverIds, string title, string content, int sendType, string markId)
{
    //构建待办任务广播消息
    if (receiverIds.IsEmpty()) return;
    var lstRec = GetIsProMsgWindowReminds(ctx, receiverIds).Where(m => m.Value).Select(m => m.Key).ToList();
    if (lstRec.IsEmpty()) return;
    BroadCastMsg msg = new BroadCastMsg(new DynamicObject(BroadCastMsg.BroadCastMsgType))
    {
        Title = new LocaleValue(title),
        Content = new LocaleValue(content),
        Id = ServiceHelper.GetService<IDBService>().GetSequenceInt64(ctx, "T_BAS_BROADCASTMSG", 1).ElementAt(0),
        FailureTime = ServiceHelper.GetService<ITimeService>().GetSystemDateTime(ctx).AddMinutes(6),//发广播消息心跳为300s,设置失效时间为6min,
        SendType = sendType,//2: 待办消息;3:流程消息 ;4:普通消息
        MarkId = markId
    };
    List<DynamicObject> recList = new List<DynamicObject>();
    lstRec.ForEach(m => { recList.Add(new BroadCastReceiver() { Id = msg.Id, Receiver = (int)m }); });
    var service = ServiceHelper.GetService<ISaveService>();
    service.Save(ctx, new DynamicObject[] { msg });//保存广播
    service.Save(ctx, recList.ToArray<DynamicObject>());//保存广播接收人
}


2. 只有在信息中心--设置--信息中心设置中开启了对应消息才能接收到广播,所以没开启的用户我们不用给她创建广播消息。


3. 通过如下函数读取对应用户是否开启了流程消息配置。其它消息类型可以参考下面的代码。

private static Dictionary<long, bool> GetIsProMsgWindowReminds(Context ctx, IEnumerable<long> receiverIds)
{
    string sql = string.Format("SELECT T0.FUSERID,T0.FPROMSGWINDOWREMIND FROM T_WF_MESSAGESETTING T0 INNER JOIN T_SEC_USER T1 ON T0.FUSERID = T1.FUSERID WHERE T1.FUSERID IN ({0})", string.Join(",", receiverIds.Distinct()));
    return DBUtils.ExecuteDynamicObject(ctx, sql).ToDictionary(key => ObjectUtils.Object2Int64(key[0]), m => Convert.ToBoolean(ObjectUtils.Object2Int(m[1])));
}


二开插件 - 创建主控台广播的方法

客户需求: 客户希望能创建广播,在主控台右下角弹出广播提醒。点击广播,跳转到信息中心对应节点列表。解决方法: 目前广播消息有3种1)s...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息