Ejemplo n.º 1
0
        /// <summary>
        /// 获取自定义字段信息
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public UserDefinedFieldDto GetUdfInfo(long id)
        {
            var dal = new sys_udf_field_dal();
            var dto = dal.FindSignleBySql <UserDefinedFieldDto>($"select *,col_comment as `name`,cate_id as cate,data_type_id as data_type,is_required as required from sys_udf_field where id={id} and delete_time=0");

            if (dto == null)
            {
                return(null);
            }

            if (dto.data_type == (int)DicEnum.UDF_DATA_TYPE.LIST)
            {
                dto.list = dal.FindListBySql <sys_udf_list>($"select * from sys_udf_list where udf_field_id={dto.id} and status_id=0 and delete_time=0");
            }

            return(dto);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获取一个对象包含的用户自定义字段信息
        /// </summary>
        /// <param name="cate">对象分类</param>
        /// <returns></returns>
        public List <UserDefinedFieldDto> GetUdf(DicEnum.UDF_CATE cate)
        {
            var    dal        = new sys_udf_field_dal();
            var    udfListDal = new sys_udf_list_dal();
            string sql        = dal.QueryStringDeleteFlag($"SELECT id,col_name,col_comment as name,description,data_type_id as data_type,default_value,decimal_length,is_required as required,is_protected FROM sys_udf_field WHERE is_active=1 and delete_time=0 and cate_id = {(int)cate} ORDER BY sort_order");
            var    list       = dal.FindListBySql <UserDefinedFieldDto>(sql);

            foreach (var udf in list)
            {
                if (udf.data_type == (int)DicEnum.UDF_DATA_TYPE.LIST)
                {
                    var valList = udfListDal.FindListBySql <DictionaryEntryDto>(udfListDal.QueryStringDeleteFlag($"SELECT id as 'val',name as 'show',is_default as 'select' FROM sys_udf_list WHERE udf_field_id={udf.id} and delete_time=0 and status_id=0 ORDER BY sort_order"));
                    if (valList != null && valList.Count != 0)
                    {
                        udf.value_list = valList;
                    }
                }
            }

            return(list);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 新增编辑自定义字段
        /// </summary>
        /// <param name="cate"></param>
        /// <param name="udf"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        public bool EditUdf(DicEnum.UDF_CATE cate, UserDefinedFieldDto udf, long userId)
        {
            if (udf.id == 0)
            {
                return(AddUdf(cate, udf, userId));
            }

            var dal   = new sys_udf_field_dal();
            var field = dal.FindNoDeleteById(udf.id);

            if (field == null)
            {
                return(false);
            }

            field.col_comment           = udf.name;
            field.description           = udf.description;
            field.data_type_id          = udf.data_type;
            field.default_value         = udf.default_value;
            field.is_protected          = udf.is_protected;
            field.is_required           = udf.required;
            field.is_encrypted          = udf.is_encrypted;
            field.is_visible_in_portal  = udf.is_visible_in_portal;
            field.crm_to_project_udf_id = udf.crm_to_project;
            field.sort_order            = udf.sort_order;
            field.is_active             = udf.is_active;
            field.display_format_id     = udf.display_format;
            field.decimal_length        = udf.decimal_length;
            field.update_user_id        = userId;
            field.update_time           = Tools.Date.DateHelper.ToUniversalTimeStamp();

            var fieldOld = dal.FindById(field.id);
            var desc     = OperLogBLL.CompareValue <sys_udf_field>(fieldOld, field);

            if (!string.IsNullOrEmpty(desc))
            {
                dal.Update(field);
                OperLogBLL.OperLogUpdate(desc, field.id, userId, DicEnum.OPER_LOG_OBJ_CATE.SYS_UDF_FILED, "编辑自定义字段");
            }

            var listDal = new sys_udf_list_dal();
            var list    = dal.FindListBySql <sys_udf_list>($"select * from sys_udf_list where udf_field_id={field.id} and status_id=0 and delete_time=0");

            //var find=udf.list.Find(_=>_.is_default==1)
            foreach (var ufv in udf.list)
            {
                var find = list.Find(_ => _.id == ufv.id);
                if (find == null)
                {
                    sys_udf_list val = new sys_udf_list();
                    val.id             = listDal.GetNextIdCom();
                    val.is_default     = ufv.is_default;
                    val.name           = ufv.name;
                    val.sort_order     = ufv.sort_order;
                    val.udf_field_id   = udf.id;
                    val.status_id      = 0;
                    val.create_time    = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Now);
                    val.update_time    = val.create_time;
                    val.create_user_id = field.create_user_id;
                    val.update_user_id = val.create_user_id;
                    listDal.Insert(val);

                    OperLogBLL.OperLogAdd <sys_udf_list>(val, val.id, userId, DicEnum.OPER_LOG_OBJ_CATE.SYS_UDF_FILED_LIST, "新增自定义字段值");
                }
                else
                {
                    if (find.is_default != ufv.is_default)
                    {
                        find.is_default     = ufv.is_default;
                        find.update_time    = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Now);
                        find.update_user_id = userId;

                        var old = listDal.FindById(find.id);
                        listDal.Update(find);
                        OperLogBLL.OperLogUpdate(OperLogBLL.CompareValue <sys_udf_list>(old, find), find.id, userId, DicEnum.OPER_LOG_OBJ_CATE.SYS_UDF_FILED_LIST, "编辑自定义字段值");
                    }
                    list.Remove(find);
                }
            }

            foreach (var ufv in list)
            {
                ufv.delete_time    = Tools.Date.DateHelper.ToUniversalTimeStamp();
                ufv.delete_user_id = userId;
                listDal.Update(ufv);
                OperLogBLL.OperLogDelete <sys_udf_list>(ufv, ufv.id, userId, DicEnum.OPER_LOG_OBJ_CATE.SYS_UDF_FILED_LIST, "删除自定义字段值");
            }

            return(true);
        }
Ejemplo n.º 4
0
 private readonly sys_udf_field_dal udf_dal             = new sys_udf_field_dal();       //用户自定义字段
 /// <summary>
 /// 获取所有的用户自定义项
 /// </summary>
 /// <returns></returns>
 public List <sys_udf_field> GetAlludf(long group_id)
 {
     return(udf_dal.FindListBySql <sys_udf_field>($"SELECT a.id,a.col_comment,b.is_required,a.is_protected,b.sort_order from sys_udf_field a left join (select * from sys_udf_group_field where id={group_id}) b on a.id=b.udf_field_id where a.delete_time=0 order by b.sort_order,a.sort_order"));
 }