|
|
|
|
using ESRI.ArcGIS.Geometry;
|
|
|
|
|
using KGIS.Framework.Utils;
|
|
|
|
|
using Kingo.PluginServiceInterface.Model;
|
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Collections.ObjectModel;
|
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
|
|
|
|
namespace Kingo.PluginServiceInterface
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Model:工程结构
|
|
|
|
|
/// Description:用于记录工程信息
|
|
|
|
|
/// Author:李进营
|
|
|
|
|
/// Finished:2017年11月18日
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Serializable]
|
|
|
|
|
public class ProjectInfo
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// =======临时增加,用于控制图形合并提示框=========
|
|
|
|
|
/// 是否再次提醒(true:下次继续提醒;false:下次不再提醒)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Newtonsoft.Json.JsonIgnore]
|
|
|
|
|
public bool IsPromptAgain = true;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 工程名称
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Newtonsoft.Json.JsonIgnore]
|
|
|
|
|
public string ProjName { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 单图斑建库-工程使用人
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Newtonsoft.Json.JsonIgnore]
|
|
|
|
|
public string ProjUserName { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 默认方案
|
|
|
|
|
/// </summary>
|
|
|
|
|
//public string DefaultScheme { get; set; }
|
|
|
|
|
///// <summary>
|
|
|
|
|
///// 当前方案
|
|
|
|
|
///// </summary>
|
|
|
|
|
//public string CurrentScheme { get; set; }
|
|
|
|
|
///// <summary>
|
|
|
|
|
///// 记录所有方案
|
|
|
|
|
///// </summary>
|
|
|
|
|
//public List<string> SchemeList { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 数据库名称
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string DataBaseName { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 变更数据库
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string BGDatabase { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 变更成果导出路径
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string BGResultPath { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 监测图层数据库
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string JCDatabase { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 单图斑基础库图层数据库
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string DTBJKDatabase { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 单图斑变更更新图层图层数据库
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string DTBBGGXDatabase { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 单图斑数据检查库
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string DTBCheckDatabase { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 单图斑预处理数据库
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string DTBYCLDatabase { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 单图斑预处理预审数据库
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string DTBYCLYHDatabase { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 增量数据库
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string ZLDatabase { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 年末数据库
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string NMDatabase { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 变化图斑数据库
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string BHTBDatabase { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 举证成果包地址
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string DBPath { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 工程后缀名
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Newtonsoft.Json.JsonIgnore]
|
|
|
|
|
public string ProjSuffix { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 行政代码
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string CODE { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 陆地调查面积
|
|
|
|
|
/// </summary>
|
|
|
|
|
public double DCMJ { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 海岛调查面积
|
|
|
|
|
/// </summary>
|
|
|
|
|
public double DCMJHD { get; set; }
|
|
|
|
|
|
|
|
|
|
public KZMJInfo KZMJ { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 比例尺
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string Scale { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 比例尺代码
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string ScaleCode { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 容差
|
|
|
|
|
/// </summary>
|
|
|
|
|
public double XYResolution { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 陆地控制面积公顷
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Newtonsoft.Json.JsonIgnore]
|
|
|
|
|
public double DCMJ2 { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 海岛控制面积公顷
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Newtonsoft.Json.JsonIgnore]
|
|
|
|
|
public double DCMJHD2 { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 分度带
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string FDD { get; set; }
|
|
|
|
|
//private string
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 图形带号
|
|
|
|
|
/// </summary>
|
|
|
|
|
public int TXDH { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 中央经度
|
|
|
|
|
/// </summary>
|
|
|
|
|
public int ZYJD { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 影像路径
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string[] ImgPath { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 坐标参考文件路径(已经过时,请使用PrjFileStr)
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string PrjFilePath { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 坐标参考字符串
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string PrjFileStr { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 工程所在文件夹
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string ProjDir { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 工程目录文件夹名称(行政区名称+代码)
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string ProWorkDir { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 模板数据
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string TempData { get; set; }
|
|
|
|
|
public string MulitMapData { get; set; }
|
|
|
|
|
public string DicData { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 是否启用快捷键
|
|
|
|
|
/// </summary>
|
|
|
|
|
public bool EnableShortcut { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 工作目录-基础库路径
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string JCKPath { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 工作目录-国检年末库路径
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string GJNMKPath { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 工作目录-变更范围成果
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string BGFWCGPath { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 工作目录-监测图斑路径
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string JCTBPath { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 工作目录-临时用地范围路径
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string LSYDFWPath { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 工作目录-历年耕地范围路径
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string LNGDFWPath { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 工作目录-用地管理信息路径
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string YDGLXXPath { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 工作目录-专项数据路径
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string ZXSJPath { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 工作目录-坡度图路径
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string PDTPath { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 工作目录-合法建设用地范围
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string HFJSYDPath { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 工作目录-耕地及恢复属性图斑路径
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string GDJHFSXPath { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 工作目录-城镇村等用地路径
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string CZCDYDPath { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 工作目录-影像路径
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string YXPath { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 工作目录-5级坡度图
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string txtfivePDT { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 工作目录-承诺耕地参考图层
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string CNGDPath { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 工作目录-国家下发监测图层
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string GJXFJCPath { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 工作目录-撂荒耕地参考图层
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string LHGDPath { get; set; }
|
|
|
|
|
public List<TaskPackage> ListTaskPackage { get; set; }
|
|
|
|
|
public string TaskPath { get; set; }
|
|
|
|
|
public int WKID { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 设置的用户名
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string UserName { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 用户密码
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string UserPassword { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 任务包密码
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string Pathpassword = "; password = 009FA8952F59C8853AF0CC8DA4394D00FEDCD51361C7F1C9C2629EBEB8FDE5B2A1";
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 批量赋属性值列表
|
|
|
|
|
/// </summary>
|
|
|
|
|
public List<BatchAttribute> ListBatchAttributes { get; set; } = new List<BatchAttribute>();
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创建投影坐标系
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="pcType">esriSRProjCS4Type</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public ISpatialReference GetCurentProjectedCoordinate()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(PrjFileStr))
|
|
|
|
|
{
|
|
|
|
|
//创建一个要素集创建一个投影
|
|
|
|
|
ISpatialReferenceFactory pSpatialRefFac = new SpatialReferenceEnvironmentClass();
|
|
|
|
|
ISpatialReference pSpatialReference;
|
|
|
|
|
int s;
|
|
|
|
|
PrjFileStr = PrjFileStr.Replace("'", "\"");
|
|
|
|
|
pSpatialRefFac.CreateESRISpatialReference(PrjFileStr, out pSpatialReference, out s);
|
|
|
|
|
return pSpatialReference;
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug(ex);
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public ProjectInfo()
|
|
|
|
|
{
|
|
|
|
|
//DefaultScheme = "初始方案";
|
|
|
|
|
//CurrentScheme = "初始方案";
|
|
|
|
|
}
|
|
|
|
|
public static ProjectInfo OpenProject(string pFilePath)
|
|
|
|
|
{
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(pFilePath) && File.Exists(pFilePath))
|
|
|
|
|
{
|
|
|
|
|
string strBase64 = string.Empty;
|
|
|
|
|
//读取文件内容到字节数组
|
|
|
|
|
using (FileStream stream = new FileStream(pFilePath, FileMode.Open))
|
|
|
|
|
{
|
|
|
|
|
byte[] bytes = new byte[stream.Length];
|
|
|
|
|
stream.Read(bytes, 0, bytes.Length);
|
|
|
|
|
stream.Close();
|
|
|
|
|
//将字节数组转换成Base64字符串
|
|
|
|
|
strBase64 = Convert.ToBase64String(bytes);
|
|
|
|
|
}
|
|
|
|
|
//将Base64字符串进行解密,得到原始文件数据
|
|
|
|
|
string strData = Decrypt(strBase64, "58ef12f9891a4cd89fa7bdd181ef13a7");
|
|
|
|
|
//将原始文件数据反序列化为对象
|
|
|
|
|
ProjectInfo data = JsonConvert.DeserializeObject<ProjectInfo>(strData);
|
|
|
|
|
if (data == null)
|
|
|
|
|
{
|
|
|
|
|
data = SerializeAPI.DeserializeToObject<ProjectInfo>(strData.Substring(1));
|
|
|
|
|
}
|
|
|
|
|
if (data != null)
|
|
|
|
|
{
|
|
|
|
|
data.ProjName = System.IO.Path.GetFileNameWithoutExtension(pFilePath);
|
|
|
|
|
data.ProjSuffix = System.IO.Path.GetExtension(pFilePath);
|
|
|
|
|
data.ProjDir = System.IO.Path.GetDirectoryName(pFilePath);
|
|
|
|
|
data.BGDatabase = System.IO.Path.Combine(data.ProjDir, "BGDB.gdb");
|
|
|
|
|
if (!Directory.Exists(data.BGDatabase))
|
|
|
|
|
data.BGDatabase = string.Empty;
|
|
|
|
|
data.ZLDatabase = System.IO.Path.Combine(data.ProjDir, "ZLDB.gdb");
|
|
|
|
|
if (!Directory.Exists(data.ZLDatabase))
|
|
|
|
|
data.ZLDatabase = string.Empty;
|
|
|
|
|
data.NMDatabase = System.IO.Path.Combine(data.ProjDir, "NMDB.gdb");
|
|
|
|
|
if (!Directory.Exists(data.NMDatabase))
|
|
|
|
|
data.NMDatabase = string.Empty;
|
|
|
|
|
FileInfo fIf = new FileInfo(data.ProjDir);
|
|
|
|
|
//data.ProWorkDir=
|
|
|
|
|
data.DCMJ2 = Math.Round(data.DCMJ * 0.0001, 2);
|
|
|
|
|
data.DCMJHD2 = Math.Round(data.DCMJHD2 * 0.0001, 2);
|
|
|
|
|
//if (string.IsNullOrEmpty(data.PrjFileStr) && !string.IsNullOrEmpty(data.PrjFilePath) && System.IO.File.Exists(data.PrjFilePath))
|
|
|
|
|
//{
|
|
|
|
|
// // 兼容老的坐标参考系
|
|
|
|
|
// SetPrjFileStrByOldPrjFilePath(data);
|
|
|
|
|
//}
|
|
|
|
|
}
|
|
|
|
|
return data;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//public static ProjectInfo OpenProject1(string pFilePath)
|
|
|
|
|
//{
|
|
|
|
|
// if (!string.IsNullOrWhiteSpace(pFilePath) && File.Exists(pFilePath))
|
|
|
|
|
// {
|
|
|
|
|
// ProjectInfo data = null;
|
|
|
|
|
// return data;
|
|
|
|
|
// }
|
|
|
|
|
// else
|
|
|
|
|
// {
|
|
|
|
|
// return null;
|
|
|
|
|
// }
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取工程文件路径
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public string GetProjFilePath()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrWhiteSpace(ProjDir))
|
|
|
|
|
return string.Empty;
|
|
|
|
|
string filePath = ProjDir + "\\" + ProjName + ProjSuffix;
|
|
|
|
|
if (File.Exists(filePath))
|
|
|
|
|
return filePath;
|
|
|
|
|
else
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug("获取工程文件路径异常:" + ex);
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取数据字典文件路径
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public string GetDicDataPath()
|
|
|
|
|
{
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(ProjDir))
|
|
|
|
|
{
|
|
|
|
|
string dbPath = System.IO.Path.Combine(ProjDir, "BGTJ.sqlite");
|
|
|
|
|
if (File.Exists(dbPath))
|
|
|
|
|
{
|
|
|
|
|
return dbPath;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return string.Empty;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取检查结果DB路径
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public string GetDataCheckrResultPath()
|
|
|
|
|
{
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(ProjDir))
|
|
|
|
|
{
|
|
|
|
|
string dbPath = System.IO.Path.Combine(ProjDir, "DataCheckrResult.db");
|
|
|
|
|
if (File.Exists(dbPath))
|
|
|
|
|
{
|
|
|
|
|
return dbPath;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return string.Empty;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string GetDHZSDBPath()
|
|
|
|
|
{
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(ProjDir))
|
|
|
|
|
{
|
|
|
|
|
string dbPath = System.IO.Path.Combine(ProjDir, "外业助手.gdb");
|
|
|
|
|
if (Directory.Exists(dbPath))
|
|
|
|
|
{
|
|
|
|
|
return dbPath;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return string.Empty;
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 地图范围
|
|
|
|
|
/// </summary>
|
|
|
|
|
public MapExtent MapExtent { get; set; }
|
|
|
|
|
|
|
|
|
|
public bool Save()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrWhiteSpace(this.ProjDir))
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
//将对象序列化成字符串
|
|
|
|
|
//string Str = SerializeAPI.SerializeToXML<ProjectInfo>(this);
|
|
|
|
|
|
|
|
|
|
string sss = JsonConvert.SerializeObject(this);
|
|
|
|
|
//对字符串进行加密
|
|
|
|
|
Byte[] resultArray = AesEncrypt(sss, "58ef12f9891a4cd89fa7bdd181ef13a7");
|
|
|
|
|
//修改人:李进营 修改时间 增加using引用
|
|
|
|
|
using (Stream stream = new FileStream(this.ProjDir + "\\" + this.ProjName + ProjSuffix, FileMode.Create, FileAccess.Write, FileShare.None))
|
|
|
|
|
{
|
|
|
|
|
stream.Write(resultArray, 0, resultArray.Length);
|
|
|
|
|
stream.Close();
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug(ex);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string GetPRJName()
|
|
|
|
|
{
|
|
|
|
|
string result = string.Empty;
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(PrjFileStr))
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
string beginstr = "[";
|
|
|
|
|
int leftindex = PrjFileStr.IndexOf(beginstr) + beginstr.Length;
|
|
|
|
|
string spatialrefrightstr = PrjFileStr.Substring(leftindex);
|
|
|
|
|
int length = spatialrefrightstr.IndexOf(",");
|
|
|
|
|
|
|
|
|
|
result = spatialrefrightstr.Substring(0, length).Replace("\"", "");
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// AES 加密
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="str">需要加密的字符串</param>
|
|
|
|
|
/// <param name="key">秘钥</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public Byte[] AesEncrypt(string str, string strKey)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrWhiteSpace(strKey))
|
|
|
|
|
throw new Exception("加密秘钥为空!");
|
|
|
|
|
byte[] Key = Encoding.UTF8.GetBytes(strKey);
|
|
|
|
|
if (Key.Length != 32)
|
|
|
|
|
throw new Exception("秘钥长度不符合要求!");
|
|
|
|
|
if (string.IsNullOrEmpty(str)) return null;
|
|
|
|
|
Byte[] toEncryptArray = Encoding.UTF8.GetBytes(str);
|
|
|
|
|
string strBase64 = Convert.ToBase64String(toEncryptArray);
|
|
|
|
|
byte[] contentArray = Encoding.UTF8.GetBytes(strBase64);
|
|
|
|
|
#region 加密
|
|
|
|
|
System.Security.Cryptography.RijndaelManaged rm = new System.Security.Cryptography.RijndaelManaged
|
|
|
|
|
{
|
|
|
|
|
Key = Key,
|
|
|
|
|
Mode = System.Security.Cryptography.CipherMode.ECB,
|
|
|
|
|
Padding = System.Security.Cryptography.PaddingMode.PKCS7
|
|
|
|
|
};
|
|
|
|
|
System.Security.Cryptography.ICryptoTransform cTransform = rm.CreateEncryptor();
|
|
|
|
|
Byte[] resultArray = cTransform.TransformFinalBlock(contentArray, 0, contentArray.Length);
|
|
|
|
|
#endregion
|
|
|
|
|
return resultArray;
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
throw ex;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 解密函数
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="content">Base64字符串</param>
|
|
|
|
|
/// <param name="strKey">秘钥</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public static string Decrypt(string content, string strKey)
|
|
|
|
|
{
|
|
|
|
|
string result = string.Empty;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrWhiteSpace(content))
|
|
|
|
|
return string.Empty;
|
|
|
|
|
System.Security.Cryptography.RijndaelManaged rm = new System.Security.Cryptography.RijndaelManaged
|
|
|
|
|
{
|
|
|
|
|
Key = Encoding.UTF8.GetBytes(strKey),
|
|
|
|
|
Mode = System.Security.Cryptography.CipherMode.ECB,
|
|
|
|
|
Padding = System.Security.Cryptography.PaddingMode.PKCS7
|
|
|
|
|
};
|
|
|
|
|
//将base64字符串转换成byte数组
|
|
|
|
|
byte[] contentArray = Convert.FromBase64String(content);
|
|
|
|
|
//创建解密转换器
|
|
|
|
|
System.Security.Cryptography.ICryptoTransform cDecryptTransform = rm.CreateDecryptor();
|
|
|
|
|
//对byte数组进行解密转换
|
|
|
|
|
Byte[] DecryptArray = cDecryptTransform.TransformFinalBlock(contentArray, 0, contentArray.Length);
|
|
|
|
|
//将解密后的byte[]转换成字符串(base64)
|
|
|
|
|
string strDecrypt = Encoding.UTF8.GetString(DecryptArray);
|
|
|
|
|
//将base64字符串转换成8位无符号整数数组
|
|
|
|
|
byte[] base64ToByte = Convert.FromBase64String(strDecrypt);
|
|
|
|
|
//string s = Encoding.UTF8.GetString(base64ToByte);
|
|
|
|
|
//将8位无符号整数数组转换成等效字符串,并返回
|
|
|
|
|
return Encoding.UTF8.GetString(base64ToByte);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
throw new Exception("解密工程文件异常:" + ex.Message);
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
GC.Collect();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
private string ByteToString(byte[] arrByte)
|
|
|
|
|
{
|
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
|
foreach (byte b in arrByte)
|
|
|
|
|
{
|
|
|
|
|
sb.Append(b > 15 ? Convert.ToString(b, 16) : '0' + Convert.ToString(b, 16));
|
|
|
|
|
}
|
|
|
|
|
return sb.ToString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#region 工程信息增加
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 项目类型
|
|
|
|
|
/// </summary>
|
|
|
|
|
public EnumProjType ProjType { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 县级行政区代码发生变化
|
|
|
|
|
/// </summary>
|
|
|
|
|
public bool XZQDMChange { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 城镇村等用地碎图斑小于30平的是否自动修复
|
|
|
|
|
/// </summary>
|
|
|
|
|
public bool LessThan30Missing { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 村级调查区名称发生变化
|
|
|
|
|
/// </summary>
|
|
|
|
|
public bool ZLDWMCChange { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 调入村级调查区
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string DR_CJDCQPath { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 调入行政区
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string DR_XZQPath { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 坐落变更信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
public ObservableCollection<ZLXXInfo> ListZLXXInfo { get; set; }
|
|
|
|
|
#endregion
|
|
|
|
|
public string DataCheckPath { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 调入CZC
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string DR_CZCPath { get; set; }
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 属性赋值配置类
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Serializable]
|
|
|
|
|
public class KZMJInfo : INotifyPropertyChanged
|
|
|
|
|
{
|
|
|
|
|
private double tZQ_LDMJ;
|
|
|
|
|
private double tZQ_LDMJ_GQ;
|
|
|
|
|
private double tZQ_HDMJ;
|
|
|
|
|
private double tZQ_HDMJ_GQ;
|
|
|
|
|
private double tZH_LDMJ;
|
|
|
|
|
private double tZH_LDMJ_GQ;
|
|
|
|
|
private double tZH_HDMJ;
|
|
|
|
|
private double tZH_HDMJ_GQ;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 调整前陆地面积
|
|
|
|
|
/// </summary>
|
|
|
|
|
public double TZQ_LDMJ
|
|
|
|
|
{
|
|
|
|
|
get => tZQ_LDMJ;
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
tZQ_LDMJ = value;
|
|
|
|
|
TZQ_LDMJ_GQ = Math.Round(value * 0.0001, 2);
|
|
|
|
|
RaisePropertyChanged("TZQ_LDMJ");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 调整前陆地面积(公顷)
|
|
|
|
|
/// </summary>
|
|
|
|
|
public double TZQ_LDMJ_GQ
|
|
|
|
|
{
|
|
|
|
|
get => tZQ_LDMJ_GQ; set
|
|
|
|
|
{
|
|
|
|
|
tZQ_LDMJ_GQ = value;
|
|
|
|
|
RaisePropertyChanged("TZQ_LDMJ_GQ");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 调整前海岛面积
|
|
|
|
|
/// </summary>
|
|
|
|
|
public double TZQ_HDMJ
|
|
|
|
|
{
|
|
|
|
|
get => tZQ_HDMJ; set
|
|
|
|
|
{
|
|
|
|
|
tZQ_HDMJ = value;
|
|
|
|
|
TZQ_HDMJ_GQ = Math.Round(value * 0.0001, 2);
|
|
|
|
|
RaisePropertyChanged("TZQ_HDMJ");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 调整前海岛面积(公顷)
|
|
|
|
|
/// </summary>
|
|
|
|
|
public double TZQ_HDMJ_GQ
|
|
|
|
|
{
|
|
|
|
|
get => tZQ_HDMJ_GQ; set
|
|
|
|
|
{
|
|
|
|
|
tZQ_HDMJ_GQ = value;
|
|
|
|
|
RaisePropertyChanged("TZQ_HDMJ_GQ");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 调整后陆地面积
|
|
|
|
|
/// </summary>
|
|
|
|
|
public double TZH_LDMJ
|
|
|
|
|
{
|
|
|
|
|
get => tZH_LDMJ; set
|
|
|
|
|
{
|
|
|
|
|
tZH_LDMJ = value;
|
|
|
|
|
TZH_LDMJ_GQ = Math.Round(value * 0.0001, 2);
|
|
|
|
|
RaisePropertyChanged("TZH_LDMJ");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 调整后陆地面积(公顷)
|
|
|
|
|
/// </summary>
|
|
|
|
|
public double TZH_LDMJ_GQ
|
|
|
|
|
{
|
|
|
|
|
get => tZH_LDMJ_GQ; set
|
|
|
|
|
{
|
|
|
|
|
tZH_LDMJ_GQ = value;
|
|
|
|
|
RaisePropertyChanged("TZH_LDMJ_GQ");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 调整后海岛面积
|
|
|
|
|
/// </summary>
|
|
|
|
|
public double TZH_HDMJ
|
|
|
|
|
{
|
|
|
|
|
get => tZH_HDMJ; set
|
|
|
|
|
{
|
|
|
|
|
tZH_HDMJ = value;
|
|
|
|
|
TZH_HDMJ_GQ = Math.Round(value * 0.0001, 2);
|
|
|
|
|
RaisePropertyChanged("TZH_HDMJ");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 调整后海岛面积(公顷)
|
|
|
|
|
/// </summary>
|
|
|
|
|
public double TZH_HDMJ_GQ
|
|
|
|
|
{
|
|
|
|
|
get => tZH_HDMJ_GQ; set
|
|
|
|
|
{
|
|
|
|
|
tZH_HDMJ_GQ = value;
|
|
|
|
|
RaisePropertyChanged("TZH_HDMJ_GQ");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public event PropertyChangedEventHandler PropertyChanged;
|
|
|
|
|
|
|
|
|
|
protected void RaisePropertyChanged(string propertyName)
|
|
|
|
|
{
|
|
|
|
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 地图范围
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Serializable]
|
|
|
|
|
public class MapExtent
|
|
|
|
|
{
|
|
|
|
|
public double XMax { get; set; }
|
|
|
|
|
public double YMax { get; set; }
|
|
|
|
|
public double XMin { get; set; }
|
|
|
|
|
public double YMin { get; set; }
|
|
|
|
|
}
|
|
|
|
|
public enum EnumProjType
|
|
|
|
|
{
|
|
|
|
|
NDBG,
|
|
|
|
|
RCBG_ZJG,
|
|
|
|
|
RCBG_BCGD,
|
|
|
|
|
BHTBTQ,
|
|
|
|
|
DTBJK,
|
|
|
|
|
YCLJK,
|
|
|
|
|
WYZS
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|