管道基础大数据平台系统开发-【CS】-ExportMap
1
13693261870
2023-04-12 62ef8708f7a1eb15219e28431ee0cd4b071d33f4
ExportMap/db/PubDBHelper.cs
@@ -19,7 +19,8 @@
        private static string insertMetaPubSql = "insert into lf.sys_meta_pub (metaid, pubid, create_user) select {0}, {1}, {2} from (select 1) temp where not exists (select 1 from lf.sys_meta_pub where metaid = {0} and pubid = {1})";
        // 模型-@cnName,model-@enName,自动发布模型-@name,http:// - @url,Tileset-@serve,1-@user,7-@pubid
        private static string insertLayerSql = "insert into lf.sys_layer (pid, cn_name, en_name, url, type, level, order_num, is_show, create_user, data_type, serve_type, pubid, elev) values ((select coalesce(id, 0) from lf.sys_layer where cn_name = @name limit 1), @cnName, @enName, @url, 2, (select coalesce(level, 0) + 1 from lf.sys_layer where cn_name = @name limit 1), (select coalesce(max(order_num), 0) + 1 from lf.sys_layer where pid = (select id from lf.sys_layer where cn_name = @name limit 1)), 0, @user, @name, @serve, @pubid, @elev);";
        //private static string insertLayerSql = "insert into lf.sys_layer (pid, cn_name, en_name, url, type, level, order_num, is_show, create_user, data_type, serve_type, pubid, elev) values ((select coalesce(id, 0) from lf.sys_layer where cn_name = @name limit 1), @cnName, @enName, @url, 2, (select coalesce(level, 0) + 1 from lf.sys_layer where cn_name = @name limit 1), (select coalesce(max(order_num), 0) + 1 from lf.sys_layer where pid = (select id from lf.sys_layer where cn_name = @name limit 1)), 0, @user, @name, @serve, @pubid, @elev);";
        private static string insertLayerSql = "insert into lf.sys_layer (pid, cn_name, en_name, url, type, level, order_num, is_show, create_user, data_type, serve_type, pubid, elev) values ((select coalesce(id, 0) from lf.sys_layer where cn_name = @name limit 1), @cnName, @enName, @url, 2, (select coalesce(level, 0) + 1 from lf.sys_layer where cn_name = @name limit 1), (select coalesce(max(order_num), 0) + 1 from lf.sys_layer where pid = (select id from lf.sys_layer where cn_name = @name limit 1)), 0, @user, @name, @serve, @pubid, @elev)";
        private static string updateMetaSql = "update lf.sys_meta set path = @path where id = @id";
@@ -113,6 +114,56 @@
        }
        /// <summary>
        /// 查询图层父节点ID
        /// </summary>
        public static int SelectLayerPid(SysMeta meta)
        {
            string sql = GetSelectLayerPidSql(meta);
            object obj = Tools.DBHelper.GetScalar(sql);
            return null == obj ? 0 : Convert.ToInt32(obj);
        }
        /// <summary>
        /// 获取查询图层父节点ID的SQL
        /// </summary>
        public static string GetSelectLayerPidSql(SysMeta meta)
        {
            string noneSql = "select id from lf.sys_layer where cn_name = '其他' and pid = (select id from lf.sys_layer where cn_name = '工程数据' order by pid limit 1)";
            if (string.IsNullOrWhiteSpace(meta.dirname)) return noneSql;
            if (meta.dirname.IndexOf("\\勘察") > -1)
                return "select id from lf.sys_layer where cn_name = '三维地质模型' and pid = (select id from lf.sys_layer where cn_name = '勘察' order by pid limit 1)";
            if (meta.dirname.IndexOf("\\测绘") > -1)
            {
                switch (meta.type)
                {
                    case "mpt":
                        return "select id from lf.sys_layer where cn_name = '三维地形模型' and pid = (select id from lf.sys_layer where cn_name = '测绘' order by pid limit 1)";
                    case "jpg":
                    case "png":
                    case "img":
                    case "tif":
                    case "tiff":
                        return "select id from lf.sys_layer where cn_name = '数字正射影像图' and pid = (select id from lf.sys_layer where cn_name = '测绘' order by pid limit 1)";
                    default:
                        return "select id from lf.sys_layer where cn_name = '单体模型' and pid = (select id from lf.sys_layer where cn_name = '测绘' order by pid limit 1)";
                }
            }
            if (meta.dirname.IndexOf("\\地灾") > -1)
                return "select id from lf.sys_layer where cn_name = '三维地质模型' and pid = (select id from lf.sys_layer where cn_name = '地灾' order by pid limit 1)";
            if (meta.dirname.IndexOf("\\洞库") > -1)
                return "select id from lf.sys_layer where cn_name = '洞库模型' and pid = (select id from lf.sys_layer where cn_name = '洞库' order by pid limit 1)";
            return noneSql;
        }
        /// <summary>
        /// 获取参数列表
        /// </summary>
        public static List<DbParameter> GetParams<T>(string sql, T t)