yl
2022-06-15 d037f94e6047d6ed3e41e29301620e2ffabf106f
VueWebApi/DLL/DAL/BasicSettingDAL.cs
@@ -81,6 +81,61 @@
        }
        #endregion
        #region [组织架构查找上级单位]
        public static ToMessage PrentOrganization(string orgcode)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                switch (orgcode)
                {
                    case "F":  //工厂
                        orgcode = "";
                        search += "and description=@orgcode ";
                        dynamicParams.Add("@orgcode", orgcode);
                        break;
                    case "D":  //部门
                        orgcode = "F";
                        search += "and description=@orgcode ";
                        dynamicParams.Add("@orgcode", orgcode);
                        break;
                    case "W":  //车间
                        orgcode = "D";
                        search += "and description=@orgcode ";
                        dynamicParams.Add("@orgcode", orgcode);
                        break;
                    case "K":  //科室
                        orgcode = "W";
                        search += "and description=@orgcode ";
                        dynamicParams.Add("@orgcode", orgcode);
                        break;
                    case "L":  //产线
                        orgcode = "K";
                        search += "and description=@orgcode ";
                        dynamicParams.Add("@orgcode", orgcode);
                        break;
                    default:
                        break;
                }
                var sql = @"select roletype_code,roletype_name
                            from TRoleType
                            where  A.is_delete<>'1' " + search;
                var data = DapperHelper.selectdata(sql, dynamicParams);
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.data = data;
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.Message = e.Message;
            }
            return mes;
        }
        #endregion
        #region[新增编辑组织架构]
        public static ToMessage AddUpdateOrganization(string organType, string organCode, string organName,string Operator, int supUnit, string operType)
        {
@@ -236,6 +291,68 @@
        }
        #endregion
        #region [用户所属组织]
        public static ToMessage UserOrganization()
        {
            var dynamicParams = new DynamicParameters();
            string sql = "";
            try
            {
                List<TreeDG> list = new List<TreeDG>();
                sql = @"select id,parent_id,org_code,org_name,description
                      FROM TOrganization ";
                var dt = DapperHelper.selectdata(sql, dynamicParams);
                for (int i = 0; i < dt.Rows.Count; i++)   //这里是循环所有
                {
                    if (string.IsNullOrEmpty(dt.Rows[i]["PARENT_ID"].ToString()) || dt.Rows[i]["PARENT_ID"].ToString() == "0")  //判断是否最外层根节点
                    {
                        TreeDG tbj = new TreeDG();
                        tbj.id = dt.Rows[i]["ID"].ToString();
                        tbj.code = dt.Rows[i]["ORG_CODE"].ToString();
                        tbj.name = dt.Rows[i]["ORG_NAME"].ToString();
                        list.Add(tbj);
                    }
                }
                digui(dt, list);
                mes.code = "200";
                mes.Message = "加载完成";
                mes.data = list;
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.data = e.Message;
            }
            return mes;
        }
        #endregion
        #region【递归方法】
        public static void digui(DataTable dt, List<TreeDG> tree)
        {
            for (int m = 0; m < tree.Count; m++)
            {
                tree[m].children = new List<TreeDG>();
                for (int i = 0; i < dt.Rows.Count; i++)//第一次循环,得到所有根节点的子集
                {
                    if (tree[m].id == dt.Rows[i]["PARENT_ID"].ToString() && dt.Rows[i]["ID"].ToString() != dt.Rows[i]["PARENT_ID"].ToString())
                    {
                        TreeDG tbjson = new TreeDG();
                        tbjson.id = dt.Rows[i]["ID"].ToString();
                        tbjson.code = dt.Rows[i]["ORG_CODE"].ToString();
                        tbjson.name = dt.Rows[i]["ORG_NAME"].ToString();
                        tree[m].children.Add(tbjson);
                    }
                }
                for (int i = 0; i < tree[m].children.Count; i++)
                {
                    digui(dt, tree[m].children);//再次用子集去循环,拿出子集的子集
                }
            }
        }
        #endregion
        #region[用户清单新增编辑]
        public static ToMessage AddUpdateUser(string UserId, string UserCode, string UserName, string Enable, string StuOrg,string Mobile,string Email, string Operator, string OperType)
        {
@@ -366,7 +483,7 @@
                            where B.roletype_code=@roletype_code and  C.user_code=@usercode and B.is_delete='0'";
                    dynamicParams.Add("@roletype_code", data[i].code);
                    dynamicParams.Add("@usercode", usercode);
                    var data0 = DapperHelper.select<TreeObejctCont>(sql, dynamicParams);
                    var data0 = DapperHelper.select<TreeObejctCn>(sql, dynamicParams);
                    data[i].children = data0;
                }
@@ -383,7 +500,172 @@
        }
        #endregion
        #region[用户清单关联角色保存]
        public static ToMessage SaveUserAssoctRole(string usercode, List<RoleUserSubmit> json)
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                list.Clear();
                if (json == null || json.Count <= 0)
                {
                    //清除用户关联角色表数据
                    sql = @"delete TUserRoleRelation where user_code=@usercode";
                    dynamicParams.Add("@usercode", usercode);
                    list.Add(new { str = sql, parm = dynamicParams });
                    //清除用户表关联角色标识
                    sql = @"update TUser set is_role='N' where user_code=@usercode";
                    dynamicParams.Add("@usercode", usercode);
                    list.Add(new { str = sql, parm = dynamicParams });
                }
                else
                {
                    //清除用户关联角色表数据
                    sql = @"delete TUserRoleRelation where user_code=@usercode";
                    dynamicParams.Add("@usercode", usercode);
                    list.Add(new { str = sql, parm = dynamicParams });
                    //循环写入用户关联角色表
                    for (int i = 0; i < json.Count; i++)
                    {
                        for (int j = 0; j < json[i].Data.Count; j++)
                        {
                            sql = @"insert into TUserRoleRelation(usercode,role_code) values(@usercode,@role_code)";
                            dynamicParams.Add("@usercode", usercode);
                            dynamicParams.Add("@role_code", json[i].Data[j]);
                            list.Add(new { str = sql, parm = dynamicParams });
                        }
                    }
                    //标记用户表关联角色标识
                    sql = @"update TUser set is_role='Y' where user_code=@usercode";
                    dynamicParams.Add("@usercode", usercode);
                    list.Add(new { str = sql, parm = dynamicParams });
                }
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    mes.code = "200";
                    mes.Message = "操作成功!";
                }
                else
                {
                    mes.code = "300";
                    mes.Message = "操作失败!";
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.Message = e.Message;
            }
            return mes;
        }
        #endregion
        #region[角色类型查询]
        public static ToMessage RoleTypeSearch(int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            try
            {
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select roletype_code,roletype_name
                            from TRoleType
                            where  A.is_delete<>'1' ";
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.count = total;
                mes.data = data.ToList();
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.Message = e.Message;
            }
            return mes;
        }
        #endregion
        #region[角色类型新增]
        public static ToMessage RoleTypeAdd(List<ObjectData> json)
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                list.Clear();
                //循环写入角色类型表
                for (int i = 0; i < json.Count; i++)
                {
                    sql = @"insert into TRoleType(roletypecode,roletypename) values(@roletypecode,@roletypename)";
                    dynamicParams.Add("@roletypecode", json[i].code);
                    dynamicParams.Add("@roletypename", json[i].name);
                    list.Add(new { str = sql, parm = dynamicParams });
                }
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    mes.code = "200";
                    mes.Message = "操作成功!";
                }
                else
                {
                    mes.code = "300";
                    mes.Message = "操作失败!";
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.Message = e.Message;
            }
            return mes;
        }
        #endregion
        #region[角色类型删除]
        public static ToMessage RoleTypeDelete(string roleTypeCode)
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                list.Clear();
                sql = @"delete TRoleType where roletype_code=@roletypecode";
                dynamicParams.Add("@roletypecode", roleTypeCode);
                list.Add(new { str = sql, parm = dynamicParams });
                sql = @"delete TRole where roletype_code=@roletypecode";
                dynamicParams.Add("@roletypecode", roleTypeCode);
                list.Add(new { str = sql, parm = dynamicParams });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    mes.code = "200";
                    mes.Message = "操作成功!";
                }
                else
                {
                    mes.code = "300";
                    mes.Message = "操作失败!";
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.Message = e.Message;
            }
            return mes;
        }
        #endregion
        #region[角色清单查询]
        public static ToMessage RoleSearch(string RoleCode, string RoleName, string RoleTypeCode, string CreateUser, int startNum, int endNum, string prop, string order)
@@ -437,5 +719,226 @@
            return mes;
        }
        #endregion
        #region[角色清单新增编辑]
        public static ToMessage AddUpdateRole(string RoleId, string RoleCode, string RoleName, string RoleTypeCode, string description, string Usercode, string OperType)
        {
            var dynamicParams = new DynamicParameters();
            try
            {
                if (OperType == "Add")
                {
                    var sql = @"insert into TRole(role_code,role_name,lm_user,lm_date,roletype_code,description)
                            values(@RoleCode,@RoleName,@Usercode,@CreateDate,@RoleTypeCode,@description)";
                    dynamicParams.Add("@RoleCode", RoleCode);
                    dynamicParams.Add("@RoleName", RoleName);
                    dynamicParams.Add("@Usercode", Usercode);
                    dynamicParams.Add("@CreateDate", DateTime.Now.ToString());
                    dynamicParams.Add("@RoleTypeCode", RoleTypeCode);
                    dynamicParams.Add("@description", description);
                    int cont = DapperHelper.SQL(sql, dynamicParams);
                    if (cont > 0)
                    {
                        mes.code = "200";
                        mes.Message = "新增操作成功!";
                    }
                    else
                    {
                        mes.code = "300";
                        mes.Message = "新增操作失败!";
                    }
                }
                if (OperType == "Update")
                {
                    var sql = @"update TRole set role_name=@UserName,Usercode=@Usercode,CreateDate=@CreateDate,RoleTypeCode=@RoleTypeCode,description=@description where id=@RoleId";
                    dynamicParams.Add("@RoleId", RoleId);
                    dynamicParams.Add("@RoleName", RoleName);
                    dynamicParams.Add("@Usercode", Usercode);
                    dynamicParams.Add("@CreateDate", DateTime.Now.ToString());
                    dynamicParams.Add("@RoleTypeCode", RoleTypeCode);
                    dynamicParams.Add("@description", description);
                    int cont = DapperHelper.SQL(sql, dynamicParams);
                    if (cont > 0)
                    {
                        mes.code = "200";
                        mes.Message = "修改操作成功!";
                    }
                    else
                    {
                        mes.code = "300";
                        mes.Message = "修改操作失败!";
                    }
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.Message = e.Message;
            }
            return mes;
        }
        #endregion
        #region[角色清单删除]
        public static ToMessage DeleteRole(string RoleCode)
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                //更新角色表、角色关联用户标识及删除状态
                sql = @"update TRole set is_user='N',is_right='N',is_delete='1'  where role_code=@RoleCode";
                dynamicParams.Add("@RoleCode", RoleCode);
                list.Add(new { str = sql, parm = dynamicParams });
                //更新角色关联用户表、角色关联用户标识及删除状态
                sql = @"update TUserRoleRelation set is_delete='1'  where role_code=@RoleCode";
                dynamicParams.Add("@RoleCode", RoleCode);
                list.Add(new { str = sql, parm = dynamicParams });
                //删除(更新状态)角色功能表
                sql = @"update TRoleRightRelation set is_delete='1'  where user_code=@RoleCode";
                dynamicParams.Add("@RoleCode", RoleCode);
                list.Add(new { str = sql, parm = dynamicParams });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    mes.code = "200";
                    mes.Message = "删除用户成功!";
                }
                else
                {
                    mes.code = "300";
                    mes.Message = "删除用户失败!";
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.Message = e.Message;
            }
            return mes;
        }
        #endregion
        #region[角色清单关联用户查询]
        public static ToMessage RoleAssociationUser(string rolecode, string usercode, string username, string orgcode, string isrole, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (usercode != "" && usercode != null)
                {
                    search += "and A.usercode like '%'+@RoleCode+'%' ";
                    dynamicParams.Add("@usercode", usercode);
                }
                if (username != "" && username != null)
                {
                    search += "and A.username like '%'+@RoleName+'%' ";
                    dynamicParams.Add("@username", username);
                }
                if (orgcode != "" && orgcode != null)
                {
                    search += "and B.org_code=@orgcode ";
                    dynamicParams.Add("@orgcode", orgcode);
                }
                if (isrole != "" && isrole != null)
                {
                    if (isrole == "Y")
                    {
                        search += "and C.user_code is not null ";
                    }
                    else
                    {
                        search += "and C.user_code is null ";
                    }
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.usercode,A.username,B.org_code,B.org_name,(case when C.user_code is not null  then 'Y' else 'N' end) as flag
                             from TUser A
                             left join TOrganization B on A.stu_torgcode=B.org_code
                             left join (
                                select distinct user_code  from TUserRoleRelation where role_code=@rolecode
                             ) C on A.usercode=C.user_code" + search;
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.count = total;
                mes.data = data.ToList();
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.Message = e.Message;
            }
            return mes;
        }
        #endregion
        #region[角色清单关联用户保存]
        public static ToMessage SaveRoleAssociationUser(string rolecode, List<ObjectData> json)
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                list.Clear();
                if (json == null || json.Count <= 0)
                {
                    mes.code = "300";
                    mes.Message = "请先选择关联角色的用户信息";
                    return mes;
                }
                else
                {
                    //清除用户关联角色表数据
                    sql = @"delete TUserRoleRelation where role_code=@rolecode";
                    dynamicParams.Add("@rolecode", rolecode);
                    list.Add(new { str = sql, parm = dynamicParams });
                    //循环写入用户关联角色表
                    for (int i = 0; i < json.Count; i++)
                    {
                        sql = @"insert into TUserRoleRelation(usercode,role_code) values(@usercode,@role_code)";
                        dynamicParams.Add("@usercode", json[i]);
                        dynamicParams.Add("@role_code", rolecode);
                        list.Add(new { str = sql, parm = dynamicParams });
                    }
                    //标记角色表关联用户标识
                    sql = @"update TRole set is_user='Y' where role_code=@rolecode";
                    dynamicParams.Add("@rolecode", rolecode);
                    list.Add(new { str = sql, parm = dynamicParams });
                }
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    mes.code = "200";
                    mes.Message = "操作成功!";
                }
                else
                {
                    mes.code = "300";
                    mes.Message = "操作失败!";
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.Message = e.Message;
            }
            return mes;
        }
        #endregion
    }
}