管道基础大数据平台系统开发-【CS】-ExportMap
13693261870
2024-09-07 8d7a67ab1d635cb954337d8a767878ae526dd3dc
ExportMap/cs/SGUtils.cs
@@ -45,11 +45,11 @@
            switch (meta.type)
            {
                case "mpt":
                    return "http://{host}/SG/Imagery;" + sgsID + ".mpt"; // Elevation
                    return "{host}/SG/Imagery;" + sgsID + ".mpt"; // Elevation
                case "3dml":
                    return "http://{host}/SG/b3dm/" + sgsID + "/tileset.json";
                    return "{host}/SG/b3dm/" + sgsID + "/tileset.json";
                case "cpt":
                    return "http://{host}/SG/pnts/" + sgsID + "/tileset.json";
                    return "{host}/SG/pnts/" + sgsID + "/tileset.json";
                default:
                    return string.Empty;
            }
@@ -73,6 +73,10 @@
            Tools.SetIsModel(args, list);
            MoveFiles(list);
            SysTask task = CreateTask(args, list);
            task.pid = 0;
            task.id = TaskDBHelper.Insert(task);
            //string names = GetNames(list);
            string sql = getSql(list);
            for (int i = 0; i < 61; i++)
@@ -83,10 +87,50 @@
                List<SpatialItem> items = SelectItemsBySql(sql);
                if (null == items || items.Count == 0) continue;
                task = TaskDBHelper.SelectById(task.id);
                if (null != task && task.status < 2)
                {
                    task.status = 2;
                    TaskDBHelper.Update(task);
                }
                return InsertInto(list, items, args);
            }
            task = TaskDBHelper.SelectById(task.id);
            if (null != task && task.status < 2)
            {
                task.status = 4;
                task.err = "没有数据要发布";
                TaskDBHelper.Update(task);
            }
            return null;
        }
        /// <summary>
        /// 创建任务
        /// </summary>
        private SysTask CreateTask(XYZArgs args, List<SysMeta> list)
        {
            args.name = list[0].name;
            for (int i = 1; i < list.Count; i++)
            {
                string name =args.name+ "," + list[i].name;
                if (name.Length > 150) break;
                args.name = name;
            }
            switch (list[0].type)
            {
                case "3dml":
                    return TaskDBHelper.CreateTask(args, "3DML", "三维模型(3DML)");
                case "cpt":
                    return TaskDBHelper.CreateTask(args, "CPT", "点云数据(CPT)");
                default:
                    return TaskDBHelper.CreateTask(args, "MPT", "场景数据(MPT)");
            }
        }
        /// <summary>
@@ -116,35 +160,6 @@
            return list;
        }
        #region 废弃 *
        /// <summary>
        /// 查询SG数据项
        /// </summary>
        public List<SpatialItem> SelectItems(string names)
        {
            string sql = string.Format("select id, Name, RelativePath, LayerName, DataSourceId, Description from SpatialItems where Name in ({0}) order by id desc", names);
            DataTable dt = SQLiteHelper.GetDataTable(sql);
            List<SpatialItem> list = ModelHandler.FillModel<SpatialItem>(dt);
            return list;
        }
        /// <summary>
        /// 获取名称字符串
        /// </summary>
        private string GetNames(List<SysMeta> metas)
        {
            List<string> list = new List<string>();
            foreach (SysMeta meta in metas)
            {
                list.Add("'" + meta.id + "_" + meta.name + "'");
            }
            return string.Join(",", list);
        }
        #endregion
        /// <summary>
        /// 移除空文件
@@ -205,11 +220,17 @@
        /// </summary>
        private static int InsertToDB(SysMeta meta, XYZArgs args)
        {
            if (PubDBHelper.IsPublish(meta.id)) return 1;
            //if (PubDBHelper.IsPublish(meta.id)) return 1;
            int pubid = PubDBHelper.GetPushlishId(meta.id);
            if (pubid > 0)
            {
                PubDBHelper.UpdatePublish(pubid, meta.name, args.userId, null, GetReleaseUrl(meta, meta.verid));
                return pubid;
            }
            SysPublish sys = Tools.NewPublish(meta, args, GetReleaseUrl(meta, meta.verid), meta.id + "\\" + meta.name);
            int pubid = PubDBHelper.InsertPublish(sys);
            pubid = PubDBHelper.InsertPublish(sys);
            if (pubid > 0)
            {
                sys.id = pubid;
@@ -254,6 +275,35 @@
            }
        }
        #region 废弃 *
        /// <summary>
        /// 查询SG数据项
        /// </summary>
        public List<SpatialItem> SelectItems(string names)
        {
            string sql = string.Format("select id, Name, RelativePath, LayerName, DataSourceId, Description from SpatialItems where Name in ({0}) order by id desc", names);
            DataTable dt = SQLiteHelper.GetDataTable(sql);
            List<SpatialItem> list = ModelHandler.FillModel<SpatialItem>(dt);
            return list;
        }
        /// <summary>
        /// 获取名称字符串
        /// </summary>
        private string GetNames(List<SysMeta> metas)
        {
            List<string> list = new List<string>();
            foreach (SysMeta meta in metas)
            {
                list.Add("'" + meta.id + "_" + meta.name + "'");
            }
            return string.Join(",", list);
        }
        #endregion
        #region * 废弃 *
        /// <summary>
        /// 获取最大ID值