/// <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); }
/// <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); }
/// <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); }
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")); }