创建需求分类

/// <summary>
/// 创建需求分类
/// </summary>
/// <param name="SOLineD"></param>
private void CreateDemandCode(SOLine SOLineD) 
{
    var type = ExtEnumType.Finder.Find("Code = 'UFIDA.U9.CBO.Enums.DemandCodeEnum'");
    try
    {
        // 枚举编码
        var EnumCode = $"{SOLineD.SO.DocNo}_{SOLineD.DocLineNo}";
        // 查询枚举实体
        var enumValue = ExtEnumValue.Finder.Find($"Code = '{EnumCode}' and ExtEnumTypeUID = '{type.UID}'");
        // 需求分类枚举值
        var EValue = enumValue?.EValue;
        if (enumValue is null)
        {
            // 创建枚举
            using (ISession session = Session.Open())
            {
                var value4 = type.ExtEnumValues.AddNew();
                // 枚举编码
                value4.Code = EnumCode;
                // 枚举名称
                value4.Name = EnumCode;
                // 枚举值
                var SQL = $"SELECT ISNULL(MAX(EValue) ,0) AS maxEValue FROM UBF_Sys_ExtEnumValue WHERE ExtEnumTypeUID = '{type.UID}'";
                DataAccessor.RunSQL(DataAccessor.GetConn(), SQL, null, out object obj);
                if (obj is null || string.IsNullOrEmpty(obj.ToString()))
                    value4.EValue = 1;
                else
                    value4.EValue = int.Parse(obj.ToString()) + 1;

                session.Commit();

                EValue = value4.EValue;
            }
        }

        // 回写销售订单子行需求分类枚举值
        string strSql = $"UPDATE SM_SOShipline SET DemandType = {EValue} WHERE SOLine = {SOLineD.ID}";
        DataAccessor.RunSQL(DataAccessor.GetConn(), strSql, null);
    }
    catch (Exception ex)
    {
        throw new Exception($"需求分类[{SOLineD.SO.DocNo}_{SOLineD.DocLineNo}]删除失败!{ex.Message}");
    }
}

删除需求分类

/// <summary>
/// 删除需求分类
/// </summary>
/// <param name="SOLineD"></param>
private void DeleteDemandCode(SOLine SOLineD)
{
    var type = ExtEnumType.Finder.Find("Code = 'UFIDA.U9.CBO.Enums.DemandCodeEnum'");
    try
    {
        using (ISession session = Session.Open())
        {
            var enumValue = ExtEnumValue.Finder.Find($"Code = '{SOLineD.SO.DocNo}_{SOLineD.DocLineNo}' and ExtEnumTypeUID = '{type.UID}'");
            enumValue?.Remove();
            session.Commit();
        }
    }
    catch (Exception ex)
    {
        throw new Exception($"需求分类[{SOLineD.SO.DocNo}_{SOLineD.DocLineNo}]删除失败!{ex.Message}");
    }
}