管道基础大数据平台系统开发-【CS】-ExportMap
1
13693261870
2023-03-16 e3931955380662eed80ac505daf45efd53c9de26
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
using ExportMap.db;
using ExportMap.Models;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.IO;
using System.Linq;
using System.Web;
 
namespace ExportMap.cs
{
    public class SGUtils
    {
        /// <summary>
        /// Mpt目录
        /// </summary>
        public static string MptPath
        {
            get
            {
                return ConfigurationManager.AppSettings["mptFolder"];
            }
        }
 
        /// <summary>
        /// 3DML目录
        /// </summary>
        public static string D3mlFolder
        {
            get
            {
                return ConfigurationManager.AppSettings["3dmlFolder"];
            }
        }
 
        /// <summary>
        /// 廊坊数据目录
        /// </summary>
        public static string LFData
        {
            get
            {
                return ConfigurationManager.AppSettings["lfData"];
            }
        }
 
        /// <summary>
        /// SG的DB库
        /// </summary>
        public static string SGDB
        {
            get
            {
                return ConfigurationManager.AppSettings["sgDB"];
            }
        }
 
        /// <summary>
        /// 发布数据
        /// </summary>
        /// <param name="args">XYZ参数</param>
        /// <returns>行数</returns>
        public int Release(XYZArgs args)
        {
            List<SysMeta> list = XYZUtils.selectMetas(args.ids, "and type in ('mpt', '3dml')");
            if (null == list || list.Count == 0) return 0;
 
            int maxId = GetMaxId();
            RomoveNoneFiles(list);
 
 
 
 
            List<SpatialItem> items = SelectItems(maxId);
            if (null == items || items.Count == 0) return 0;
 
            return 0;
        }
 
        /// <summary>
        /// 获取最大ID值
        /// </summary>
        public static int GetMaxId()
        {
            Object obj = SQLiteHelper.ExecuteScalar("select max(id) from SpatialItems");
 
            return null == obj ? 0 : Convert.ToInt32(obj);
        }
 
        /// <summary>
        /// 查询SG数据项
        /// </summary>
        /// <param name="maxId">最大ID值</param>
        /// <returns>SG数据项</returns>
        public static List<SpatialItem> SelectItems(int maxId)
        {
            string sql = string.Format("select id, Name, RelativePath, LayerName, DataSourceId, Description from SpatialItems where id > {0} order by id desc", maxId);
 
            DataTable dt = SQLiteHelper.GetDataTable(sql);
            List<SpatialItem> list = ModelHandler.FillModel<SpatialItem>(dt);
 
            return list;
        }
 
        /// <summary>
        /// 移除空文件
        /// </summary>
        private void RomoveNoneFiles(List<SysMeta> list)
        {
            string uploadFolder = Tool.GetSetting("uploadFolder");
 
            int i = 0;
            while (i < list.Count)
            {
                SysMeta meta = list[i];
                string filePath = Path.Combine(uploadFolder, meta.path);
                if (!File.Exists(filePath))
                {
                    list.RemoveAt(i);
                    continue;
                }
 
                if ("mpt".Equals(meta.type))
                {
                    string midx = Path.Combine(uploadFolder, meta.path.Replace(".mpt", ".midx"));
                    string strmi = Path.Combine(uploadFolder, meta.path.Replace(".mpt", ".strmi"));
                    if (!File.Exists(midx) || !File.Exists(strmi))
                    {
                        list.RemoveAt(i);
                        continue;
                    }
                }
 
                i++;
            }
        }
    }
}