示例#1
0
        /// <summary>
        /// 获取权限菜单
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="userCode"></param>
        /// <returns></returns>
        public static IEnumerable <MenuRolesModel> GetAuthorizationMenuInfo(string userCode, string roleCode)
        {
            string sql = @"Select mr.RoleCode,m.MenuCode,MenuName,MenuIcon,ParentCode,MenuPath,Component,Title,AlwaysShow
                                From Menus m
                                Inner Join MenusRole mr on m.MenuCode = mr.MenuCode
                                Inner Join Users u on u.RoleCode = mr.RoleCode
                            Where mr.RoleCode=@RoleCode And u.UserCode=@UserCode";

            var param = new DynamicParameters();

            param.Add("@RoleCode", roleCode);

            param.Add("@UserCode", userCode);

            IEnumerable <MenuRolesModel> menuRoles = AppDataBase.Query <MenuRolesModel>(sql, param);

            IEnumerable <MenuRolesModel> menuRolesModels = from x in menuRoles where object.Equals(x.ParentCode, null) select x;

            foreach (MenuRolesModel item in menuRolesModels)
            {
                item.Children = (from x in menuRoles where x.ParentCode == item.MenuCode select x);
            }

            return(menuRolesModels);
        }
示例#2
0
        public GetExportData GetExportData(string objectCode)
        {
            GetExportData getExportData = new GetExportData();

            using (IDbConnection dbConnection = (new AppDataBase()).connection)
            {
                dbConnection.Open();
                // IDbTransaction transaction = dbConnection.BeginTransaction();
                try
                {
                    string sql = @"select * from V_FLC_OBJECTPROPERTY   where obj_code = '" + objectCode + @"'  and lan = 'zn_CN'
                 order by obj_table ,obj_pro_using desc,obj_pro_null desc  ";
                    getExportData.v_FLC_s = AppDataBase.Query <V_FLC_OBJECTPROPERTY>(sql, null, null, dbConnection);

                    string sql2 = @"select *from flc_objects   objs
                                    left join flc_lang lan on lan.key=objs.obj_code||'.'||objs.obj_table
                                      where obj_code='" + objectCode + "'   and lan='zn_CN'  and is_main=0         ";
                    getExportData.objectsUnions = AppDataBase.Query <ObjectsUnionLang>(sql2, null, null, dbConnection);
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
            return(getExportData);
        }
        private static void Update_FLC_Lang(IDbCommand dbCommand, string key, string zn_CN, string en_US, IDbTransaction dbTransaction = null)
        {
            string sql = "delete FLC_LANG where key=:key";

            var param = new DynamicParameters();

            param.Add(":key", key);
            AppDataBase.Execute(sql, param, dbTransaction);

            sql = "Insert into FLC_LANG(key,value,lan) values (:key,:zn_CN,:en_US)";
            //FLC_LANG中value列设置不允许为空,如果为空则不插入
            if (!(zn_CN == null || zn_CN == string.Empty))
            {
                sql = "Insert into FLC_LANG(key,value,lan) values (:key,:zn_CN,:en_US)";
                param.Add(":zn_CN", zn_CN);
                param.Add(":en_US", "zn_CN");
                AppDataBase.Execute(sql, param, dbTransaction);
            }

            if (!(en_US == null || en_US == string.Empty))
            {
                param = new DynamicParameters();
                param.Add(":key", key);
                param.Add(":zn_CN", en_US);
                param.Add(":en_US", "En_US");
                AppDataBase.Execute(sql, param, dbTransaction);
            }
        }
示例#4
0
        public IEnumerable <dynamic> GetObjectDataL()
        {
            IEnumerable <dynamic> dynamics = null;

            using (IDbConnection dbConnection = (new AppDataBase()).connection)
            {
                dbConnection.Open();
                try
                {
                    string sql = @"Select Obj.Id,Obj.Obj_Code,Lng.Key,Lng.Value as Chinese,Flc.Value as English,
                                case Obj.Is_Enable when 1 then '是' when 0 then '否' end Is_Enable,
                                case Obj.Is_System when 1 then '是' when 0 then '否' end Is_System
                                        From FLC_OBJECT Obj 
                                        Left Join FLC_LANG Lng On Lng.Key=Obj.Obj_Code And Lng.lan='zn_CN'
                                        Left Join FLC_LANG Flc On Flc.Key=Lng.Key And Flc.lan='en_US'
                                        where is_show='1'
                                        Order By Obj.Obj_Code Asc";
                    dynamics = AppDataBase.Query <dynamic>(sql, null, null, dbConnection);
                }
                catch (Exception e)
                {
                    throw e;
                }
            }

            return(dynamics);
        }
示例#5
0
        public IEnumerable <dynamic> GetProdclineDA(string opseq, string cinvcode)
        {
            IEnumerable <dynamic> GetProdclineDA = null;

            using (IDbConnection dbConnection = (new AppDataBase()).connection)
            {
                dbConnection.Open();
                try
                {
                    string sql = @"select *from Data_PRODCLLIN_Item0 item0 
                            inner join data_PRODCLLIN duc on item0.mid=duc.id 
                            inner join data_INVENTORY inv on inv.cinvccode=duc.ccinvcode
                            where item0.opseq='" + opseq + "' and inv.cinvcode='" + cinvcode + @"' and versioncode=(select max(versioncode) from 
                            (select *from Data_PRODCLLIN_Item0 item0 
                            inner join data_PRODCLLIN duc on item0.mid=duc.id 
                            inner join data_INVENTORY inv on inv.cinvccode=duc.ccinvcode
                            where item0.opseq='" + opseq + "' and inv.cinvcode='" + cinvcode + @"') t
                            )";
                    GetProdclineDA = AppDataBase.Query <dynamic>(sql, null, null, dbConnection);
                }
                catch (Exception e)
                {
                    throw e;
                }
            }

            return(GetProdclineDA);
        }
示例#6
0
        public IEnumerable <V_FLC_MENU> GetObjectList(string lan)
        {
            IEnumerable <V_FLC_MENU> v_FLC_MENUs = null;

            lan = string.IsNullOrEmpty(lan) ? "zn_CN" : lan;
            using (IDbConnection dbConnection = (new AppDataBase()).connection)
            {
                dbConnection.Open();
                try
                {
                    string sql = @"select t1.* from v_FLC_MENU t1 where lan = :lan 
                        and is_sys <> 1 and is_enable = 1 and is_show = 1  and is_from_model <> 0   order by disp_order";

                    var parm = new DynamicParameters();
                    parm.Add(":lan", lan);
                    v_FLC_MENUs = AppDataBase.Query <V_FLC_MENU>(sql, parm, null, dbConnection);
                }
                catch (Exception e)
                {
                    throw e;
                }
            }

            return(v_FLC_MENUs);
        }
示例#7
0
        public GetProperty GetProperty(string obj_code)
        {
            GetProperty getExportData = new GetProperty();

            using (IDbConnection dbConnection = (new AppDataBase()).connection)
            {
                dbConnection.Open();
                // IDbTransaction transaction = dbConnection.BeginTransaction();
                try
                {
                    string sql  = @"select * from V_FLC_OBJECTPROPERTY 
                           where obj_code = :obj_code    and lan = 'zn_CN' ";
                    var    para = new DynamicParameters();
                    para.Add(":obj_code", obj_code);

                    getExportData.objects = AppDataBase.Query <V_FLC_OBJECTPROPERTY>(sql, para, null, dbConnection);

                    string sql2 = @"select *from flc_objects   objs
                                    left join flc_lang lan on lan.key=objs.obj_code||'.'||objs.obj_table
                                      where obj_code=:obj_code   and lan='zn_CN'  and is_main=0         ";
                    getExportData.tables = AppDataBase.Query <ObjectsUnionLang>(sql2, para, null, dbConnection);
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
            return(getExportData);
        }
        public void InstanceDB()
        {
            AppDataBase db = new AppDataBase();

            Realms.Realm instance = db.GetInstanceSync();
            ReceiptDao = new ReceiptDao(instance);
        }
        /// <summary>
        /// 获取全部菜单权限
        /// </summary>
        /// <param name="role"></param>
        /// <param name="lan"></param>
        public GetAllAuthByRole GetAllAuthByRole(string role, string lan)
        {
            //尽管role没有用到,考虑客户端调用的时候 传值了,为了减少更改
            //所有还是留着了

            lan = string.IsNullOrEmpty(lan) ? "zn_CN" : lan;

            GetAllAuthByRole getAllAuthByRole = new GetAllAuthByRole();

            using (IDbConnection dbConnection = (new AppDataBase()).connection)
            {
                dbConnection.Open();
                try
                {
                    string sql  = @"select * from v_FLC_MENU  
                                                    where lan = :lan order by disp_order ";
                    var    parm = new DynamicParameters();
                    parm.Add(":lan", lan);

                    getAllAuthByRole.dtNodes = AppDataBase.Query <V_FLC_MENU>(sql, parm, null, dbConnection);

                    sql = @"select t.*,t1.value from FLC_OBJ_OPERATION t
                            left join FLC_LANG t1 on t.operation_id = t1.key order by obj_code,page,btn_index";

                    getAllAuthByRole.dtOperation = AppDataBase.Query <FLC_OBJ_OPERATION>(sql, null, null, dbConnection);
                }
                catch (Exception e)
                {
                    throw e;
                }
            }

            return(getAllAuthByRole);
        }
示例#10
0
        /// <summary>
        /// 获取权限列表
        /// </summary>
        /// <returns></returns>
        public static IEnumerable <RoleModel> GetRoles()
        {
            string sql = "Select AutoID,RoleCode,RoleName From Roles";

            IEnumerable <RoleModel> roleModels = AppDataBase.Query <RoleModel>(sql);

            return(roleModels);
        }
        public static string CrateObject_Drop(string obj_code)
        {
            //删除1.flc_object flc_objects flc_object_property flc_lang对应数据清除 2.对应表清除
            string del_obj = "delete from flc_object where obj_code like '" + obj_code + "%'";

            string del_objs = "delete from flc_objects where obj_code like '" + obj_code + "%'";

            string del_obj_pro = "delete from flc_object_property where obj_code like '" + obj_code + "%'";

            string del_lang = "delete from flc_lang where key like '" + obj_code + "%'";

            string sql;

            var param = new DynamicParameters();

            using (IDbConnection dbConnection = AppDataBase.DbConection)
            {
                dbConnection.Open();
                IDbTransaction transaction = dbConnection.BeginTransaction();
                try
                {
                    sql = "Select * from FLC_OBJECTS where obj_code = :obj_code";
                    param.Add(":obj_code", obj_code);
                    IEnumerable <Flc_Objects> obj_relations = AppDataBase.Query <Flc_Objects>(sql, param, transaction);

                    foreach (Flc_Objects item in obj_relations)
                    {
                        string[] args = item.Obj_Table.Split('_');
                        if (!(args[0] == "FLC"))
                        {
                            AppDataBase.Execute(del_obj, null, transaction);
                            AppDataBase.Execute(del_objs, null, transaction);
                            AppDataBase.Execute(del_obj_pro, null, transaction);
                            AppDataBase.Execute(del_lang, null, transaction);
                            string setable = "select count(1) coun from user_tables where  table_name=:obj_table";
                            param = new DynamicParameters();
                            param.Add(":obj_table", item.Obj_Table);

                            int count = Convert.ToInt32(AppDataBase.ExecuteScalar(setable, dbConnection, param));
                            if (count > 0)
                            {
                                sql = "drop table " + item.Obj_Table;
                                AppDataBase.Execute(sql, null, transaction);
                            }
                        }
                    }
                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw e;
                }
            }

            return("ok");
        }
示例#12
0
        public DbActor()
        {
            Context.System.Scheduler.ScheduleTellRepeatedly(AppDataBase.EventualConsistencyReloadingInterval, AppDataBase.EventualConsistencyReloadingInterval, Self, new CheckReHyDrationMessage(), Self);
            Receive <CheckReHyDrationMessage>(_ =>
            {
                if (AppDataBase.TurnOnEventualConsistencyReloading)
                {
                    foreach (var className in AppDataBase.GetAllAccessedClasses())
                    {
                        if (AppDataBase.HasRecentlyAccessed(className))
                        {
                            AppDataBase.ResetLastAccessUtc(className);
                            if (AppDataBase.DbActorFacts.ContainsKey(className))
                            {
                                DbReHydrationActorActor.Tell(new CheckReHyDrationMessage(className));
                            }
                        }
                    }
                }
            });
            this.Receive <DbActorRequestMessage>(message =>
            {
                if (message.TransactionId == null || message.TransactionId.Count == 0)
                {
                    return;
                }

                if (message.Operation == null)
                {
                    RemoveAllStoredTransactionRoutes(message);
                    return;
                }
                string transactionSig = null;
                transactionSig        = GetTransactionSigIfTransactionIdIsPresentInTransactionRoute(message);

                if (transactionSig == null && message.TransactionId.Count > 1)
                {
                    transactionSig = CreateNewTransactionActor(transactionSig, message);
                }
                if (transactionSig != null)
                {
                    _transactionActors[transactionSig].Forward(message);
                }
                else
                {
                    var id = message.TransactionId[0];
                    if (!_actors.ContainsKey(id))
                    {
                        _actors.Add(id, Context.System.ActorOf(Props.Create(() => new DbPerIdActor(id, false))));
                    }
                    _actors[id].Forward(message);
                }
            });
        }
示例#13
0
 /// <summary>
 /// AppDataのインスタンスを取得する。
 /// </summary>
 /// <returns>AppDataのインスタンス</returns>
 internal static AppData GetInstance()
 {
     if (null == AppDataBase <AppData> ._instance)
     {
         return(AppDataBase <AppData> .GetInstanceBase(AppCommon.GetAppPath() + FileName));
     }
     else
     {
         return(AppDataBase <AppData> .GetInstanceBase());
     }
 }
示例#14
0
        public void PublishNewMessageAsync(Message message)
        {
            string topic = string.Format("{0}/{1}", message.Receiver, PhoneNumber);

            byte[] data = Encoding.UTF8.GetBytes(message.Text);
            if (mqttClient.IsConnected)
            {
                mqttClient.Publish(topic, data, MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, true);
                AppDataBase.SaveItemAsync(message);
            }
        }
        /// <summary>
        /// 通过用户编码获取菜单
        /// </summary>
        /// <param name="user_code"></param>
        /// <param name="lan"></param>
        /// <param name="bAdmin"></param>
        /// <returns></returns>
        public IEnumerable <V_FLC_MENU> GetMenuAuthByUser(string user_code, string lan, string bAdmin)
        {
            string sql = "";

            lan = string.IsNullOrEmpty(lan) ? "zn_CN" : lan;
            if (user_code == "admins_group")
            {
                bAdmin = "1";
            }

            IEnumerable <V_FLC_MENU> v_FLC_MENUs = null;

            using (IDbConnection dbConnection = (new AppDataBase()).connection)
            {
                dbConnection.Open();
                IDbTransaction transaction = dbConnection.BeginTransaction();
                try
                {
                    //查看该用户是否拥有管理员角色
                    sql = @" select count(1) from DATA_ROLE_USER where user_code='" + user_code + "' and role_code='admins_group'";
                    string count = AppDataBase.ExecuteScalar(sql, dbConnection, null, transaction).ToString();
                    if (count != "0")
                    {
                        bAdmin = "1";
                    }

                    var para = new DynamicParameters();
                    para.Add(":lan", lan);
                    para.Add(":user_code", user_code);

                    sql = @"select t1.* from FLC_MENU_AUTH t  left join v_FLC_MENU t1 on t.menu_id = t1.menucode
                        where lan = :lan and t.role_code in   (select role_code from DATA_ROLE_USER where user_code = :user_code) 
                        and is_sys = 0 and is_enable = 1 and is_show=1  order by disp_order";

                    if (bAdmin == "1")
                    {
                        sql = @"select t1.* from v_FLC_MENU t1 where lan = :lan 
                                and is_sys = 0 and is_enable = 1 and is_show=1 and is_admin=0 order by disp_order";
                    }

                    v_FLC_MENUs = AppDataBase.Query <V_FLC_MENU>(sql, para, transaction, dbConnection);

                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw e;
                }
            }

            return(v_FLC_MENUs);
        }
示例#16
0
        /// <summary>
        /// 根据流水表的主键直接获取流水号
        /// 如果obj不存在则插入
        /// 返回值 1  说明是新插入的流水行值
        /// </summary>
        /// <param name="obj">对象名</param>
        /// <param name="connString">连接串</param>
        /// <returns></returns>
        public static int getSerialNumInt(string obj, IDbTransaction transaction = null, IDbConnection dbConnection = null)
        {
            int type = 1;
            var par  = new DynamicParameters();

            par.Add("@keyCode", obj);
            par.Add("@Type", type);
            par.Add("@SerialNum", 0, DbType.Int32, ParameterDirection.Output);
            par.Add("@SerialLength", 0, DbType.Int32, ParameterDirection.Output);
            DynamicParameters Last_par = (DynamicParameters)AppDataBase.QueryStoredProcedure("GetSerialNum", par, transaction, dbConnection);

            return(Last_par.Get <int>("@SerialNum"));
        }
        /// <summary>
        /// 登录函数
        /// </summary>
        /// <param name="userModel"></param>
        /// <returns></returns>
        public static UsersModel GetUserModel(UserModel userModel)
        {
            string sql = @"Selecat usercode,password,username From flc_user Where UserCode=:UserCode";

            var param = new DynamicParameters();

            param.Add(":UserCode", userModel.UserCode);

            UsersModel userModels = AppDataBase.QuerySingle <UsersModel>(sql, param);

            userModels.ConvertDescription();

            return(userModels);
        }
 public static string ChangePwd(string UserCode, string NewPwd)
 {
     try
     {
         string sql   = "Update DATA_UA_USER set password = :newPwd where CUSER_ID = :userCode";
         var    param = new DynamicParameters();
         param.Add(":newPwd", NewPwd);
         param.Add(":userCode", UserCode);
         int num = AppDataBase.Execute(sql, param);
         return(num.ToString());
     }
     catch (Exception ex)
     {
         return(ex.Message);
     }
 }
        /// <summary>
        /// 对角色设置权限
        /// </summary>
        /// <param name="setAuthToRole"></param>
        /// <returns></returns>
        public string SetAuthToRole(SetAuthToRole setAuthToRole)
        {
            string Role = setAuthToRole.Role;

            using (IDbConnection dbConnection = (new AppDataBase()).connection)
            {
                dbConnection.Open();
                IDbTransaction transaction = dbConnection.BeginTransaction();
                try
                {
                    string sql = "Delete FLC_AUTHORIZATION_ROLE where role_code = :role_code";

                    var para = new DynamicParameters();
                    para.Add(":role_code", Role);

                    AppDataBase.Execute(sql, para, transaction, dbConnection);
                    sql = @"Insert into FLC_AUTHORIZATION_ROLE (id,obj_code, page, operation_id, role_code,menu_id,is_operation)
                        values(:id,:obj_code, :page, :operation_id, :role_code,:menu_id,:is_operation)";

                    foreach (FLC_AUTHORIZATION_ROLE dr in setAuthToRole.fLC_AUTHORIZATION_ROLEs)
                    {
                        int id = MethodGetSerial.getSerialNumInt("FLC_AUTHORIZATION_ROLE", transaction, dbConnection);

                        para = new DynamicParameters();
                        para.Add(":id", id);
                        para.Add(":obj_code", dr.OBJ_CODE);
                        para.Add(":page", dr.PAGE);
                        para.Add(":operation_id", dr.OPERATION_ID);
                        para.Add(":role_code", dr.ROLE_CODE);
                        para.Add(":menu_id", dr.MENU_ID);
                        para.Add(":is_operation", dr.IS_OPERATION);

                        AppDataBase.Execute(sql, para, transaction, dbConnection);
                    }
                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw e;
                }
            }

            return("ok");
        }
        public IEnumerable <dynamic> GetAdminRolebyUser(string user_code)
        {
            IEnumerable <dynamic> data_role = null;

            using (IDbConnection dbConnection = (new AppDataBase()).connection)
            {
                dbConnection.Open();
                try
                {
                    string sql = @" select *from DATA_ROLE_USER where user_code='" + user_code + "' and role_code='admins_group'";//查看该用户是否拥有管理员角色

                    data_role = AppDataBase.Query <dynamic>(sql, null, null, dbConnection);
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
            return(data_role);
        }
        /// <summary>
        /// 设置对象操作给角色
        /// </summary>
        /// <param name="saveOperationAuthToRole"></param>
        /// <returns></returns>
        public string SaveOperationAuthToRole(SaveOperationAuthToRole saveOperationAuthToRole)
        {
            string role_code = saveOperationAuthToRole.role_code;

            using (IDbConnection dbConnection = (new AppDataBase()).connection)
            {
                dbConnection.Open();
                IDbTransaction transaction = dbConnection.BeginTransaction();
                try
                {
                    string sql  = "";
                    var    parm = new DynamicParameters();
                    sql = "Delete FLC_OPERATION_AUTH where role_code = :role_code";
                    parm.Add(":role_code", role_code);

                    AppDataBase.Execute(sql, parm, transaction, dbConnection);
                    sql = @"Insert into FLC_OPERATION_AUTH(id, obj_code, page, operation_id, role_code) 
                values(:id, :obj_code, :page, :operation_id, :role_code)";
                    foreach (var dr in saveOperationAuthToRole.fLC_OPEERATION_AUTHs)
                    {
                        int id = MethodGetSerial.getSerialNumInt("FLC_OPERATION_AUTH", transaction, dbConnection);

                        parm.Add(":id", id);
                        parm.Add(":obj_code", dr.OBJ_CODE);
                        parm.Add(":page", dr.PAGE);
                        parm.Add(":operation_id", dr.OPERATION_ID);

                        AppDataBase.Execute(sql, parm, transaction, dbConnection);
                    }

                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw e;
                }
            }

            return("ok");
        }
        public static Isexist_Obj isexist_Obj(string obj_code, string Language)
        {
            try
            {
                string is_exit = "select * from flc_object where obj_code='" + obj_code + "'";
                object o       = AppDataBase.ExecuteScalar(is_exit);
                if (o == null || o.ToString() == string.Empty)
                {
                    is_exit = "1";
                }
                else
                {
                    is_exit = "0";
                }

                string        all_object = @"select obj_code,value from flc_object t left join flc_lang e on 
                                           t.obj_code=e.key and e.lan='" + Language + "'";
                List <Allobj> allobjs    = AppDataBase.Query <Allobj>(all_object).ToList();
                Allobj        allobj     = new Allobj();
                allobj.Obj_Code = obj_code;
                allobj.Value    = "当前对象";
                allobjs.Insert(0, allobj);

                foreach (Allobj item in allobjs)
                {
                    if (item.Value == "")
                    {
                        item.Value = item.Obj_Code;
                    }
                }

                Isexist_Obj isexist_Obj = new Isexist_Obj();
                isexist_Obj.is_exit = is_exit;
                isexist_Obj.allobj  = allobjs;
                return(isexist_Obj);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
示例#23
0
        public void ClientMqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e)
        {
            string receivedMessage = Encoding.Default.GetString(e.Message);

            string[] topicLevels = e.Topic.Split('/');

            if (topicLevels.Length == 2)
            {
                string  messageSender = topicLevels[1];
                Message message       = new Message()
                {
                    Text        = receivedMessage,
                    Sender      = messageSender,
                    Receiver    = PhoneNumber,
                    CreatedTime = DateTime.Now,
                    Status      = MessageStatus.NotRead
                };
                AppDataBase.SaveItemAsync(message);
                MessagingCenter.Send(this, "newMessageReceived", message);
            }
        }
        public IEnumerable <FLC_MENU_AUTH> GetRoleMenuAuthByRole(string role_code)
        {
            IEnumerable <FLC_MENU_AUTH> fLC_MENU_s = null;

            using (IDbConnection dbConnection = (new AppDataBase()).connection)
            {
                dbConnection.Open();
                try
                {
                    string sql  = "select * from FLC_MENU_AUTH where role_code = :role_code";
                    var    parm = new DynamicParameters();
                    parm.Add(":role_code", role_code);
                    fLC_MENU_s = AppDataBase.Query <FLC_MENU_AUTH>(sql, parm, null, dbConnection);
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
            return(fLC_MENU_s);
        }
        /// <summary>
        /// 通过角色编码获取菜单
        /// </summary>
        /// <param name="role_code"></param>
        /// <param name="lan"></param>
        /// <returns></returns>
        public IEnumerable <V_FLC_MENU> GetMenuAuthByRole(string role_code, string lan)
        {
            string bAdmin = "0";

            if (role_code == "admins_group")
            {
                bAdmin = "1";
            }
            lan = string.IsNullOrEmpty(lan) ? "zn_CN" : lan;
            IEnumerable <V_FLC_MENU> v_FLC_MENUs = null;

            using (IDbConnection dbConnection = (new AppDataBase()).connection)
            {
                dbConnection.Open();
                IDbTransaction transaction = dbConnection.BeginTransaction();
                try
                {
                    string sql = @"select t1.* from FLC_MENU_AUTH t 
                        left join v_FLC_MENU t1 on t.menu_id = t1.menucode
                        where lan = :lan and t.role_code = :role_code and  menugrade = 0  order by disp_order";

                    if (bAdmin == "1")
                    {
                        sql = @"select t.* from v_FLC_MENU t  where lan = :lan  order by disp_order ";
                    }

                    var parm = new DynamicParameters();
                    parm.Add(":lan", lan);
                    parm.Add(":role_code", role_code);

                    v_FLC_MENUs = AppDataBase.Query <V_FLC_MENU>(sql, parm, transaction, dbConnection);
                }
                catch (Exception e)
                {
                    throw e;
                }
            }

            return(v_FLC_MENUs);
        }
        /// <summary>
        /// 返回能够操作的角色列表
        /// </summary>
        /// <param name="user_code"></param>
        /// <returns></returns>
        public IEnumerable <dynamic> GetRoleListByUser(string user_code)
        {
            IEnumerable <dynamic> data_role = null;

            using (IDbConnection dbConnection = (new AppDataBase()).connection)
            {
                dbConnection.Open();
                try
                {
                    string sql  = " select * from data_role where role_code!='admins_group' ";
                    var    parm = new DynamicParameters();
                    parm.Add(":user_code", user_code);
                    data_role = AppDataBase.Query <dynamic>(sql, parm, null, dbConnection);
                }
                catch (Exception e)
                {
                    throw e;
                }
            }

            return(data_role);
        }
        /// <summary>
        /// 给角色设置菜单权限
        /// </summary>
        /// <param name="saveMenuAuthToRole"></param>
        /// <returns></returns>
        public string SaveMenuAuthToRole(SaveMenuAuthToRole saveMenuAuthToRole)
        {
            string role_code = saveMenuAuthToRole.role_code;

            using (IDbConnection dbConnection = (new AppDataBase()).connection)
            {
                dbConnection.Open();
                IDbTransaction transaction = dbConnection.BeginTransaction();
                try
                {
                    string sql  = "";
                    var    parm = new DynamicParameters();
                    sql = "Delete flc_menu_auth where role_code = :role_code";
                    parm.Add(":role_code", role_code);

                    AppDataBase.Execute(sql, parm, transaction, dbConnection);
                    sql = "Insert into flc_menu_auth(id, menu_id, role_code) values(:id, :menu_id, :role_code)";

                    foreach (FLC_MENU_AUTH item in saveMenuAuthToRole.fLC_MENU_AUTHs)
                    {
                        int id = MethodGetSerial.getSerialNumInt("flc_menu_auth", transaction, dbConnection);
                        parm.Add(":id", id);
                        parm.Add(":menu_id", item.MENU_ID);
                        AppDataBase.Execute(sql, parm, transaction, dbConnection);
                    }

                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw e;
                }
            }

            return("ok");
        }
        public static LoadMenuUnionCompany LoadMenu(string UserCode, string Language)
        {
            string sql = @"Select * from V_FLC_MENU where lan = :lan 
                                       and menucode in (select menu_id from FLC_MENU_AUTH where role_code 
                                       in (select role_code from DATA_ROLE_USER where user_code = :user_code))  and is_show=1 and is_admin in (0)
                                       order by disp_order";

            string sqladmins = @"select count(1) from data_role_user where role_code in('admins_group' ,'DATA-MANAGER')  and user_code='" + UserCode + "'";

            object o = AppDataBase.ExecuteScalar(sqladmins);

            if (o != null && o.ToString() != "0")
            {
                sql = "select * from V_FLC_MENU where lan = :lan  and is_show=1 and is_sys <> 1 and is_admin in (0,1) order by disp_order";
            }
            if (System.IO.File.Exists("admin"))
            {
                sql = @"select * from V_FLC_MENU where lan = :lan  and is_show=1 order by disp_order";
            }

            var param = new DynamicParameters();

            param.Add(":user_code", UserCode);
            param.Add(":lan", Language);

            IEnumerable <LoadMenu> menuRoles = AppDataBase.Query <LoadMenu>(sql, param);

            sql = "select id,name from data_company where rownum=1";
            Company company = AppDataBase.QuerySingle <Company>(sql);

            LoadMenuUnionCompany loadMenuUnionCompany = new LoadMenuUnionCompany();

            loadMenuUnionCompany.company  = company;
            loadMenuUnionCompany.loadMenu = menuRoles;

            return(loadMenuUnionCompany);
        }
        public static string crateObject_alter(crateObject_alter crateObject_Alter)
        {
            try
            {
                using (IDbConnection dbConnection = AppDataBase.DbConection)
                {
                    // dbConnection=new
                    dbConnection.Open();
                    IDbTransaction transaction = dbConnection.BeginTransaction();

                    try
                    {
                        #region 对象名称
                        Obj_Name obj_Name = crateObject_Alter.ObjectName;
                        if (obj_Name != null)
                        {
                            string obj_code = obj_Name.Obj_Code;
                            string zn_CN    = obj_Name.zn_CN;
                            string en_US    = obj_Name.en_US;

                            if (obj_Name.Is_Enable == "是")
                            {
                                obj_Name.Is_Enable = "1";
                            }
                            else
                            {
                                obj_Name.Is_Enable = "0";
                            }

                            int is_enable = Convert.ToInt32(obj_Name.Is_Enable);

                            string upobject = "update FLC_OBJECT set is_enable=:is_enable where obj_code = :obj_code";
                            var    parm3    = new DynamicParameters();
                            parm3.Add(":is_enable", is_enable);
                            parm3.Add(":obj_code", obj_code);
                            AppDataBase.Execute(upobject, parm3, transaction);
                            //Update_FLC_Lang(obj_code, zn_CN, en_US, transaction);
                        }
                        #endregion

                        #region 对象表修改
                        List <ObjRelation> objRelations = crateObject_Alter.ObjRelation;
                        foreach (ObjRelation dr in objRelations)
                        {
                            int    is_del    = dr.is_del;
                            string obj_code  = dr.obj_code;
                            string obj_table = dr.obj_table;
                            string zn_CN2    = dr.zn_CN;
                            string en_US2    = dr.en_US;
                            int    is_main   = dr.is_main;
                            //只做中英文修改 还有删除操作(flc_objects flc_obj_property flc_lang 中删除,删除表)
                            string signs = obj_code + "." + obj_table;

                            #region  除操作
                            if (is_del == 1)
                            {
                                //主表不删除
                                if (is_main == 0)
                                {
                                    //flc_objects删除
                                    string del_objects = "delete from FLC_OBJECTS where obj_code=:obj_code and obj_table=:obj_table";
                                    //flc_obj_property删除
                                    string delvalue_FlcObjPro = "delete from FLC_OBJECT_PROPERTY where obj_code=:obj_code and obj_table=:obj_table";

                                    var parm1 = new DynamicParameters();
                                    parm1.Add(":obj_code", obj_code);
                                    parm1.Add(":obj_table", obj_table);

                                    //flc_lang删除
                                    string delvalue_FlcLang = "delete from FLC_LANG where key='" + signs + "'";

                                    string sele_tb = "select count(*) from user_tables where table_name='" + obj_table + "'";

                                    string drop_table = "drop table " + obj_table;

                                    AppDataBase.Execute(del_objects, parm1, transaction);

                                    AppDataBase.Execute(delvalue_FlcObjPro, parm1, transaction);

                                    AppDataBase.Execute(delvalue_FlcLang, transaction);

                                    //判断表是否存在
                                    int i = Convert.ToInt32(AppDataBase.ExecuteScalar(sele_tb, null, transaction));
                                    if (i > 0)
                                    {
                                        AppDataBase.Execute(drop_table, null, transaction);
                                    }
                                    else
                                    {
                                        throw new Exception("此表不存在 ");
                                    }
                                }
                            }
                            #endregion

                            #region 修改操作或新增
                            else
                            {
                                // Update_FLC_Lang(signs, zn_CN2, en_US2, transaction);

                                string seobjects = "Select count(*) from FLC_OBJECTS where obj_code = :obj_code and obj_table=:obj_table";
                                var    parm10    = new DynamicParameters();
                                parm10.Add(":obj_code", obj_code);
                                parm10.Add(":obj_table", obj_table);

                                string inobjects = "insert into FLC_OBJECTS(obj_code,obj_table,is_main,id) values (:obj_code,:obj_table,:is_main,:id)";
                                //不存在就插入
                                int count = Convert.ToInt32(AppDataBase.ExecuteScalar(seobjects, dbConnection, parm10, transaction));
                                if (count < 1)
                                {
                                    int id     = MethodGetSerial.getSerialNumInt("FLC_OBJECTS", transaction);
                                    var parm11 = new DynamicParameters();
                                    parm11.Add(":obj_code", obj_code);
                                    parm11.Add(":obj_table", obj_table);
                                    parm11.Add(":is_main", is_main);
                                    parm11.Add(":id", id);

                                    AppDataBase.Execute(inobjects, parm11);

                                    //新增之后构建表
                                    string creobjtab = "create table {0} (id number null,mid number null)";
                                    creobjtab = string.Format(creobjtab, obj_table, transaction);

                                    string setable = "select count(*) coun from user_tables where table_name=:obj_table";
                                    var    parm12  = new DynamicParameters();
                                    parm12.Add(":obj_table", obj_table);
                                    int i = Convert.ToInt32(AppDataBase.ExecuteScalar(setable, dbConnection, parm12, transaction));
                                    if (count < 1)
                                    {
                                        AppDataBase.Execute(creobjtab, null, transaction);
                                    }
                                }
                            }


                            #endregion
                        }

                        #endregion

                        #region 对象表属性修改
                        List <Flc_Object_Property> objproperty = crateObject_Alter.Objproperty;

                        foreach (Flc_Object_Property dr in objproperty)
                        {
                            #region 属性

                            string is_del       = dr.Is_Del.ToString();
                            string obj_code     = dr.Obj_Code.ToUpper();
                            string obj_table    = dr.Obj_Table.ToUpper();
                            string obj_pro_code = dr.Obj_Pro_Code.ToUpper();
                            int    obj_pro_type = Convert.ToInt32(dr.Obj_Pro_Type);

                            string obj_pro_length;
                            if (dr.Obj_Pro_Length.ToString() == null)
                            {
                                obj_pro_length = " ";
                            }
                            else
                            {
                                obj_pro_length = dr.Obj_Pro_Length.ToString();
                            }

                            int obj_pro_visible = dr.Obj_Pro_Visible;
                            int obj_pro_enable  = dr.Obj_Pro_Enable;
                            int obj_pro_null    = dr.Obj_Pro_Null;

                            if (dr.Obj_Pro_Default == null)
                            {
                                dr.Obj_Pro_Default = " ";
                            }
                            string obj_pro_default = dr.Obj_Pro_Default;

                            if (dr.Obj_Pro_Object == null)
                            {
                                dr.Obj_Pro_Object = " ";
                            }
                            string obj_pro_object = dr.Obj_Pro_Object;

                            string obj_pro_digit;
                            if (dr.Obj_Pro_Digit == null)
                            {
                                obj_pro_digit = " ";
                            }
                            else
                            {
                                obj_pro_digit = dr.Obj_Pro_Digit.ToString();
                            }

                            int obj_pro_using = dr.Obj_Pro_Using;

                            string zn_CN = dr.Zn_Cn;
                            string en_US = dr.en_Us;
                            string codes = obj_code + "." + obj_table + "." + obj_pro_code;
                            #endregion

                            #region  除操作
                            if (is_del == "1" || is_del == "true")
                            {
                                string sefopro = "Select count(*) from FLC_OBJECT_PROPERTY where obj_code=:obj_code and obj_pro_code=:obj_pro_code";
                                var    parm3   = new DynamicParameters();
                                parm3.Add(":obj_code", obj_code);
                                parm3.Add(":obj_pro_code", obj_pro_code);

                                int count = Convert.ToInt32(AppDataBase.ExecuteScalar(sefopro, dbConnection, parm3, transaction));
                                if (count < 1)
                                {
                                    continue;
                                }
                                else
                                {
                                    //1.属性表中删除,2.语言表删除 3.对象表中删除
                                    string delvalue_FlcObjPro = "delete from FLC_OBJECT_PROPERTY where obj_code=:obj_code and obj_pro_code=:obj_pro_code";
                                    AppDataBase.Execute(delvalue_FlcObjPro, parm3, transaction);
                                    string delvalue_FlcLang = "delete from FLC_LANG where key='{0}'";
                                    AppDataBase.Execute(string.Format(delvalue_FlcLang, codes), null, transaction);
                                    string delcolumn = "Alter table {0} drop column {1}";
                                    AppDataBase.Execute(string.Format(delcolumn, obj_table, obj_pro_code), null, transaction);
                                }
                            }

                            #endregion

                            #region 新增或更新操作
                            else
                            {
                                #region 操作语言表
                                //Update_FLC_Lang(codes, zn_CN, en_US, transaction);
                                codes = string.Empty;
                                #endregion

                                string sefopro = "Select count(*) from FLC_OBJECT_PROPERTY where obj_code=:obj_code and obj_pro_code=:obj_pro_code";
                                string infopro = @"insert into FLC_OBJECT_PROPERTY values(:obj_code,:obj_table,:obj_pro_code,:obj_pro_type,:obj_pro_length,
                        :obj_pro_visible,:obj_pro_enable,:obj_pro_null,:obj_pro_default,:obj_pro_object,:obj_pro_digit,:obj_pro_using)";
                                string upfopro = @"update FLC_OBJECT_PROPERTY set obj_code=:obj_code,obj_table=:obj_table,obj_pro_code=:obj_pro_code,obj_pro_type=:obj_pro_type,obj_pro_length=:obj_pro_length,
                        obj_pro_visible=:obj_pro_visible,obj_pro_enable=:obj_pro_enable,obj_pro_null=:obj_pro_null,obj_pro_default=:obj_pro_default,obj_pro_object=:obj_pro_object,
                        obj_pro_digit=:obj_pro_digit,obj_pro_using=:obj_pro_using where obj_code=:obj_code and obj_pro_code=:obj_pro_code";

                                var parm3 = new DynamicParameters();
                                parm3.Add(":obj_code", obj_code);
                                parm3.Add(":obj_pro_code", obj_pro_code);

                                var parm4 = new DynamicParameters();
                                parm4.Add(":obj_code", obj_code);
                                parm4.Add(":obj_table", obj_table);
                                parm4.Add(":obj_pro_code", obj_pro_code);
                                parm4.Add(":obj_pro_type", obj_pro_type);
                                parm4.Add(":obj_pro_length", obj_pro_length);
                                parm4.Add(":obj_pro_visible", obj_pro_visible);
                                parm4.Add(":obj_pro_enable", obj_pro_enable);
                                parm4.Add(":obj_pro_null", obj_pro_null);
                                parm4.Add(":obj_pro_default", obj_pro_default);
                                parm4.Add(":obj_pro_object", obj_pro_object);
                                parm4.Add(":obj_pro_digit", obj_pro_digit);
                                parm4.Add(":obj_pro_using", obj_pro_using);

                                string typess = string.Empty;
                                switch (obj_pro_type)
                                {
                                case 1:
                                    typess = "nvarchar2(" + obj_pro_length + ")";
                                    break;

                                case 2:
                                    typess = "nvarchar2(" + obj_pro_length + ")";
                                    break;

                                case 3:
                                    typess = "number(" + obj_pro_length + ")";
                                    break;

                                case 4:
                                    typess = "Date";
                                    break;

                                case 5:
                                    typess = "nvarchar2(60)";
                                    break;

                                //case 6:
                                //typess = "nvarchar2(255)";
                                //break;
                                default:
                                    typess = "nvarchar2(255)";
                                    break;
                                }

                                int count = Convert.ToInt32(AppDataBase.ExecuteScalar(sefopro, dbConnection, parm3, transaction));
                                if (count < 1)
                                {
                                    AppDataBase.Execute(infopro, parm4, transaction);
                                    //判断表是否存在 不存在报错
                                    string setable = "select count(*) coun from user_tables where table_name='" + obj_table + "'";
                                    int    i       = Convert.ToInt32(AppDataBase.ExecuteScalar(setable, null, transaction));

                                    if (i > 0)
                                    {
                                        //在对象表中添加该属性
                                        string add = "alter table " + obj_table + " add " + obj_pro_code + " " + typess;
                                        AppDataBase.Execute(add, null, transaction);
                                    }
                                }
                                else
                                {
                                    //更新之后对应语言表也要更新(已完成) 同时对象表也要更新修改
                                    //此处修改对象表有1种 修改字段类型
                                    string gettype   = "select obj_pro_type from flc_object_property where obj_code=:obj_code and obj_pro_code=:obj_pro_code";
                                    string getlength = "select obj_pro_length from flc_object_property where obj_code=:obj_code and obj_pro_code=:obj_pro_code";

                                    var parm5 = new DynamicParameters();
                                    parm5.Add(":obj_code", obj_code);
                                    parm5.Add(":obj_pro_code", obj_pro_code);

                                    int type = Convert.ToInt32(AppDataBase.ExecuteScalar(gettype, dbConnection, parm5, transaction));

                                    string length = AppDataBase.ExecuteScalar(getlength, dbConnection, parm5, transaction).ToString();
                                    if (length == "")
                                    {
                                        length = "0";
                                    }

                                    //更新属性表中值
                                    AppDataBase.Execute(upfopro, parm4, transaction);
                                    if (obj_pro_length == "")
                                    {
                                        obj_pro_length = "0";
                                    }
                                    if (type == obj_pro_type && Convert.ToInt32(length) >= Convert.ToInt32(obj_pro_length))
                                    {
                                        continue;
                                    }
                                    else
                                    {
                                        //此处异常会有很多
                                        try
                                        {
                                            string alter = "alter table {0} modify {1} {2}";
                                            alter = string.Format(alter, obj_table, obj_pro_code, typess);
                                            AppDataBase.Execute(alter, null, transaction);
                                        }
                                        catch (Exception e)
                                        {
                                            throw new Exception(e.ToString());
                                        }
                                    }
                                }
                            }
                        }
                        #endregion

                        #endregion
                    }
                    catch (Exception e)
                    {
                        transaction.Rollback();
                        throw e;
                    }

                    transaction.Commit();
                }
            }
            catch (Exception e)
            {
                throw e;
            }

            return("ok");
        }
        public static string crateObject_ADD(crateObject_alter crateObject_Alter)
        {
            try
            {
                using (IDbConnection dbConnection = (new AppDataBase()).connection)
                {
                    dbConnection.Open();
                    IDbTransaction transaction = dbConnection.BeginTransaction();

                    try
                    {
                        #region 对象名称
                        Obj_Name obj_Name = crateObject_Alter.ObjectName;
                        if (obj_Name != null)
                        {
                            string obj_code  = obj_Name.Obj_Code;
                            string zn_CN1    = obj_Name.zn_CN;
                            string en_US1    = obj_Name.en_US;
                            string is_enable = obj_Name.Is_Enable;

                            //Update_FLC_Lang(dbConnection, obj_code, zn_CN1, en_US1, transaction);
                            string sql = "delete FLC_OBJECT where obj_code = :obj_code";

                            var parm1 = new DynamicParameters();
                            parm1.Add(":obj_code", obj_code);
                            // AppDataBase.ExecuteScalar(sql, dbConnection, parm1, transaction);

                            sql = "select count(*) from FLC_OBJECT where obj_code = :obj_code";
                            string str = AppDataBase.ExecuteScalar(sql, dbConnection, parm1, transaction).ToString();

                            int id1 = MethodGetSerial.getSerialNumInt("FLC_OBJECT", transaction, dbConnection);

                            string inobject = "insert into FLC_OBJECT(id,obj_code,is_enable) values (:id,:obj_code,:is_enable)";
                            var    parm2    = new DynamicParameters();
                            parm2.Add(":id", id1);
                            parm2.Add(":obj_code", obj_code);
                            parm2.Add(":is_enable", is_enable);

                            AppDataBase.Execute(inobject, parm2, transaction);
                        }

                        //取得流水号
                        #endregion

                        #region 对象表新增
                        List <ObjRelation> objRelations = crateObject_Alter.ObjRelation;
                        foreach (ObjRelation dr in objRelations)
                        {
                            string obj_code  = dr.obj_code;
                            string obj_table = dr.obj_table;
                            string zn_CN2    = dr.zn_CN;
                            string en_US2    = dr.en_US;
                            int    is_main   = dr.is_main;
                            //只做中英文修改 还有删除操作(flc_objects flc_obj_property flc_lang 中删除,删除表)
                            string sign = obj_code + "." + obj_table;
                            // Update_FLC_Lang(sign, zn_CN2, en_US2,transaction);

                            #region 在FLC_OBJECTS新增对应数据
                            //在FLC_OBJECTS删除对应数据
                            string sql = "delete FLC_OBJECTS where obj_code = :obj_code and obj_table=:obj_table";

                            var parm3 = new DynamicParameters();
                            parm3.Add(":obj_code", obj_code);
                            parm3.Add(":obj_table", obj_table);

                            AppDataBase.ExecuteScalar(sql, dbConnection, parm3, transaction);
                            //在FLC_OBJECTS新增对应数据
                            sql = "insert into FLC_OBJECTS(obj_code,obj_table,is_main,id) values (:obj_code,:obj_table,:is_main,:id)";
                            //取得流水号
                            int id2   = MethodGetSerial.getSerialNumInt("FLC_OBJECTS", transaction);
                            var parm4 = new DynamicParameters();
                            parm4.Add(":obj_code", obj_code);
                            parm4.Add(":obj_table", obj_table);
                            parm4.Add(":is_main", is_main);
                            parm4.Add(":id", id2);
                            AppDataBase.Execute(sql, parm4, transaction);

                            #endregion

                            #region 构建对象表
                            //查找此表是否存在语句
                            string setable = "select count(*) coun from user_tables where  table_name=:obj_table";

                            var parm5 = new DynamicParameters();
                            parm5.Add(":obj_table", obj_table);

                            //创建表语句
                            //主表
                            string creobjtab = "create table {0} (id number null)";
                            creobjtab = string.Format(creobjtab, obj_table);
                            //子表
                            string creobjtabs = "create table {0} (id number null,mid number null)";
                            creobjtabs = string.Format(creobjtabs, obj_table);

                            //查找此表是否存在 存在删除再创建。
                            int count = Convert.ToInt32(AppDataBase.ExecuteScalar(setable, dbConnection, parm5, transaction));
                            if (count > 0)
                            {
                                sql = "drop table " + obj_table;
                                AppDataBase.Execute(sql, null, transaction);
                            }
                            if (is_main == 1)
                            {
                                AppDataBase.Execute(creobjtab, null, transaction);
                            }
                            else
                            {
                                AppDataBase.Execute(creobjtabs, null, transaction);
                            }
                            #endregion
                        }
                        #endregion

                        #region 对象属性
                        List <Flc_Object_Property> objproperty = crateObject_Alter.Objproperty;

                        foreach (Flc_Object_Property dr in objproperty)
                        {
                            #region 属性
                            string obj_code     = dr.Obj_Code.ToUpper();
                            string obj_table    = dr.Obj_Table.ToUpper();
                            string obj_pro_code = dr.Obj_Pro_Code.ToUpper();
                            int    obj_pro_type = Convert.ToInt32(dr.Obj_Pro_Type);

                            string obj_pro_length;
                            if (dr.Obj_Pro_Length.ToString() == null)
                            {
                                obj_pro_length = " ";
                            }
                            else
                            {
                                obj_pro_length = dr.Obj_Pro_Length.ToString();
                            }

                            int obj_pro_visible = dr.Obj_Pro_Visible;
                            int obj_pro_enable  = dr.Obj_Pro_Enable;
                            int obj_pro_null    = dr.Obj_Pro_Null;

                            if (dr.Obj_Pro_Default == null)
                            {
                                dr.Obj_Pro_Default = " ";
                            }
                            string obj_pro_default = dr.Obj_Pro_Default;

                            if (dr.Obj_Pro_Object == null)
                            {
                                dr.Obj_Pro_Object = " ";
                            }
                            string obj_pro_object = dr.Obj_Pro_Object;

                            string obj_pro_digit;
                            if (dr.Obj_Pro_Digit == null)
                            {
                                obj_pro_digit = " ";
                            }
                            else
                            {
                                obj_pro_digit = dr.Obj_Pro_Digit.ToString();
                            }

                            int obj_pro_using = dr.Obj_Pro_Using;

                            string zn_CN3 = dr.Zn_Cn;
                            string en_US3 = dr.en_Us;

                            #endregion

                            string codes = obj_code + "." + obj_table + "." + obj_pro_code;
                            //Update_FLC_Lang(codes, zn_CN3, en_US3,transaction);

                            #region 在FLC_OBJECT_PROPERTY插入数据
                            string sql = "delete FLC_OBJECT_PROPERTY where obj_code=:obj_code and obj_pro_code=:obj_pro_code";

                            var parm6 = new DynamicParameters();
                            parm6.Add(":obj_code", obj_code);
                            parm6.Add(":obj_pro_code", obj_pro_code);
                            AppDataBase.ExecuteScalar(sql, dbConnection, parm6, transaction);

                            string infopro = @"insert into FLC_OBJECT_PROPERTY values(:obj_code,:obj_table,:obj_pro_code,:obj_pro_type,:obj_pro_length,
                    :obj_pro_visible,:obj_pro_enable,:obj_pro_null,:obj_pro_default,:obj_pro_object,:obj_pro_digit,:obj_pro_using)";

                            var parm7 = new DynamicParameters();
                            parm7.Add(":obj_code", obj_code);
                            parm7.Add(":obj_table", obj_table);
                            parm7.Add(":obj_pro_code", obj_pro_code);
                            parm7.Add(":obj_pro_type", obj_pro_type);

                            parm7.Add(":obj_pro_length", obj_pro_length);
                            parm7.Add(":obj_pro_visible", obj_pro_visible);
                            parm7.Add(":obj_pro_enable", obj_pro_enable);
                            parm7.Add(":obj_pro_null", obj_pro_null);

                            parm7.Add(":obj_pro_default", obj_pro_default);
                            parm7.Add(":obj_pro_object", obj_pro_object);
                            parm7.Add(":obj_pro_digit", obj_pro_digit);
                            parm7.Add(":obj_pro_using", obj_pro_using);

                            AppDataBase.Execute(infopro, parm7, transaction);
                            #endregion

                            #region 在表中插入数据
                            //拼类型
                            string typess = string.Empty;
                            switch (obj_pro_type)
                            {
                            case 1:
                                typess = "nvarchar2(" + obj_pro_length + ")";
                                break;

                            case 2:
                                typess = "nvarchar2(" + obj_pro_length + ")";
                                break;

                            case 3:
                                typess = "number(" + obj_pro_length + ")";
                                break;

                            case 4:
                                typess = "Date";
                                break;

                            case 5:
                                typess = "nvarchar2(60)";
                                break;

                            default:
                                typess = "nvarchar2(255)";
                                break;
                            }

                            //在对象表中添加该属性
                            string add = "alter table " + obj_table + " add " + obj_pro_code + " {0}";
                            add = string.Format(add, typess);
                            AppDataBase.Execute(add, null, transaction);

                            #endregion
                        }

                        #endregion

                        transaction.Commit();
                    }
                    catch (Exception e)
                    {
                        transaction.Rollback();
                        // dbConnection.Close();
                        //transaction.Dispose();
                        throw e;
                    }
                }
            }
            catch (Exception e)
            {
                throw e;
            }
            return("ok");
        }