BE插件触发事件模板

public void Notify(params object[] args)
{
    if ((args is not null) && (args.Length is not 0) && (args[0] is EntityEvent @event))
    {
        BusinessEntity.EntityKey key = @event.EntityKey;
        if(key is null) return;
        var head = key.GetEntity() as SM.SO.SO;

        //string EventName = ((EntityEvent)(args[0])).Name; // 通过命名空间判断时使用

        if (key.GetEntity() is not SM.SO.SO DocData) return;

        switch (DocData.SysState)
        {
            case ObjectState.Updated: // 修改
                // 提交操作
                if (head.Status == SODocStatusEnum.Approving && head.OriginalData.Status == SODocStatusEnum.Open)
                    if (head.TradePath is null || head.CooperateStep.Value is 0 or -1)
                        CallOA(head);
                break;
            case ObjectState.NotExist: // 不存在
            case ObjectState.Unchanged: // 未改变状态
            case ObjectState.Unknown: // 未知状态
            case ObjectState.Inserted: // 新增
            case ObjectState.Deleted: // 删除
            case ObjectState.Operating: // 操作
            case ObjectState.NeedLoad: // 加载时
            default: break;
        }
    }
}