布置图修改,材料表修改
This commit is contained in:
parent
b37d04a1e6
commit
7e2384fe38
@ -14,6 +14,7 @@ using Entity = Teigha.DatabaseServices.Entity;
|
|||||||
using Path = System.IO.Path;
|
using Path = System.IO.Path;
|
||||||
using Color = Teigha.Colors.Color;
|
using Color = Teigha.Colors.Color;
|
||||||
using System.Security.Cryptography;
|
using System.Security.Cryptography;
|
||||||
|
using System.Threading.Tasks;
|
||||||
namespace SWS.CAD.Base
|
namespace SWS.CAD.Base
|
||||||
{
|
{
|
||||||
public static class General
|
public static class General
|
||||||
@ -137,7 +138,7 @@ namespace SWS.CAD.Base
|
|||||||
using (Transaction trans = db.TransactionManager.StartTransaction())
|
using (Transaction trans = db.TransactionManager.StartTransaction())
|
||||||
{
|
{
|
||||||
BlockTable bt = trans.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
|
BlockTable bt = trans.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
|
||||||
ObjectId idBtr = doc.Database.Insert(blockName, blockName, blockDb, true);
|
ObjectId idBtr = doc.Database.Insert(blockName, blockName, blockDb, true);
|
||||||
BlockTableRecord curBtr = trans.GetObject(db.CurrentSpaceId, OpenMode.ForWrite) as BlockTableRecord;
|
BlockTableRecord curBtr = trans.GetObject(db.CurrentSpaceId, OpenMode.ForWrite) as BlockTableRecord;
|
||||||
var block = new BlockReference(Point3d.Origin, idBtr);
|
var block = new BlockReference(Point3d.Origin, idBtr);
|
||||||
block.Position = position;
|
block.Position = position;
|
||||||
@ -1065,12 +1066,13 @@ namespace SWS.CAD.Base
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 获取当前图纸所有实体
|
#region 获取当前图纸XData不为空的所有实体
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取当前图纸XData不为空的所有实体
|
/// 获取当前图纸XData不为空的所有实体
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="listTagNumber">要删除的位号</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static List<DtoBasePoint> GetAllEntity()
|
public static List<DtoBasePoint> GetAllEntity(List<string> listTagNumber)
|
||||||
{
|
{
|
||||||
doc = Application.DocumentManager.MdiActiveDocument;
|
doc = Application.DocumentManager.MdiActiveDocument;
|
||||||
ed = doc.Editor;
|
ed = doc.Editor;
|
||||||
@ -1084,18 +1086,20 @@ namespace SWS.CAD.Base
|
|||||||
{
|
{
|
||||||
// 获取模型空间块表记录
|
// 获取模型空间块表记录
|
||||||
BlockTable bt = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
|
BlockTable bt = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
|
||||||
BlockTableRecord modelSpace = tr.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForRead) as BlockTableRecord;
|
BlockTableRecord btr = tr.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForRead) as BlockTableRecord;
|
||||||
|
// 收集要删除的块参照
|
||||||
|
ObjectIdCollection idsToErase = new ObjectIdCollection();
|
||||||
// 遍历模型空间中的所有实体
|
// 遍历模型空间中的所有实体
|
||||||
foreach (ObjectId objId in modelSpace)
|
foreach (ObjectId objId in btr)
|
||||||
{
|
{
|
||||||
Entity entity = tr.GetObject(objId, OpenMode.ForRead) as Entity;
|
Entity entity = tr.GetObject(objId, OpenMode.ForWrite) as Entity;
|
||||||
if (entity != null && entity.XData != null)
|
if (entity != null && entity.XData != null)
|
||||||
{
|
{
|
||||||
// 提取句柄(十六进制格式)
|
// 提取句柄(十六进制格式)
|
||||||
var blockRef = entity as BlockReference;
|
var blockRef = entity as BlockReference;
|
||||||
if (blockRef != null)
|
if (blockRef != null)
|
||||||
{
|
{
|
||||||
|
bool flag = true;
|
||||||
var dto = new DtoBasePoint()
|
var dto = new DtoBasePoint()
|
||||||
{
|
{
|
||||||
Handle = entity.Handle.ToString(),
|
Handle = entity.Handle.ToString(),
|
||||||
@ -1113,14 +1117,27 @@ namespace SWS.CAD.Base
|
|||||||
if (attRef.Tag == "HKSK_TAG")
|
if (attRef.Tag == "HKSK_TAG")
|
||||||
{
|
{
|
||||||
dto.TagNumber = attRef.TextString;
|
dto.TagNumber = attRef.TextString;
|
||||||
|
if (listTagNumber != null && listTagNumber.Contains(attRef.TextString))
|
||||||
|
{
|
||||||
|
idsToErase.Add(objId);
|
||||||
|
flag = false;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (flag)
|
||||||
handles.Add(dto);
|
{ handles.Add(dto); }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (idsToErase.Count > 0)
|
||||||
|
{
|
||||||
|
foreach (ObjectId id in idsToErase)
|
||||||
|
{
|
||||||
|
Entity ent = (Entity)tr.GetObject(id, OpenMode.ForWrite);
|
||||||
|
ent.Erase();
|
||||||
|
}
|
||||||
|
}
|
||||||
tr.Commit();
|
tr.Commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1920,15 +1937,18 @@ namespace SWS.CAD.Base
|
|||||||
/// <param name="tagNumber">位号值</param>
|
/// <param name="tagNumber">位号值</param>
|
||||||
/// <param name="IsNotDefaultSymbol">true:默认块,false:异性块</param>
|
/// <param name="IsNotDefaultSymbol">true:默认块,false:异性块</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static bool UpdateCableNo(string dwgName, List<string> listTagName, string tagNumber, bool IsNotDefaultSymbol, string tag, string system)
|
public static string UpdateCableNo(string dwgName, List<string> listTagName, string tagNumber, bool IsNotDefaultSymbol, string tag, string system)
|
||||||
{
|
{
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
OpenDwg(dwgName);
|
//OpenDwg(dwgName);
|
||||||
|
Application.DocumentManager.Open(dwgName);
|
||||||
|
//Thread.Sleep(1000);
|
||||||
doc = Application.DocumentManager.MdiActiveDocument;
|
doc = Application.DocumentManager.MdiActiveDocument;
|
||||||
ed = doc.Editor;
|
ed = doc.Editor;
|
||||||
db = doc.Database;
|
db = doc.Database;
|
||||||
|
var s=doc.Name;
|
||||||
// 开启事务
|
// 开启事务
|
||||||
using (Transaction tr = db.TransactionManager.StartTransaction())
|
using (Transaction tr = db.TransactionManager.StartTransaction())
|
||||||
{
|
{
|
||||||
@ -1986,12 +2006,13 @@ namespace SWS.CAD.Base
|
|||||||
tr.Commit();
|
tr.Commit();
|
||||||
}
|
}
|
||||||
doc.CloseAndSave(dwgName);
|
doc.CloseAndSave(dwgName);
|
||||||
return true;
|
Thread.Sleep(20);
|
||||||
|
return "";
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
SendMessage(ex.Message);
|
SendMessage(ex.Message);
|
||||||
return false;
|
return ex.Message;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -2019,7 +2040,7 @@ namespace SWS.CAD.Base
|
|||||||
// 创建多行文字对象
|
// 创建多行文字对象
|
||||||
MText mText = new MText();
|
MText mText = new MText();
|
||||||
mText.Contents = textInfo.Text;
|
mText.Contents = textInfo.Text;
|
||||||
mText.Location = textInfo.Position;
|
mText.Location = textInfo.Position;
|
||||||
mText.TextHeight = textInfo.Height;
|
mText.TextHeight = textInfo.Height;
|
||||||
mText.Width = textInfo.Width; // 设置文本宽度,控制自动换行
|
mText.Width = textInfo.Width; // 设置文本宽度,控制自动换行
|
||||||
if (textInfo.Align == 0)
|
if (textInfo.Align == 0)
|
||||||
@ -2040,7 +2061,7 @@ namespace SWS.CAD.Base
|
|||||||
DBText dbText = new DBText();
|
DBText dbText = new DBText();
|
||||||
dbText.TextString = textInfo.Text;
|
dbText.TextString = textInfo.Text;
|
||||||
dbText.Position = textInfo.Position;
|
dbText.Position = textInfo.Position;
|
||||||
dbText.AlignmentPoint= textInfo.Position;
|
dbText.AlignmentPoint = textInfo.Position;
|
||||||
dbText.Height = textInfo.Height;
|
dbText.Height = textInfo.Height;
|
||||||
if (textInfo.Align == 0)
|
if (textInfo.Align == 0)
|
||||||
{
|
{
|
||||||
@ -2078,7 +2099,7 @@ namespace SWS.CAD.Base
|
|||||||
/// <param name="position">坐标位置</param>
|
/// <param name="position">坐标位置</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static ObjectId AddBlockDWG(string filePath, string blockName, Point3d position)
|
public static ObjectId AddBlockDWG(string filePath, string blockName, Point3d position)
|
||||||
{
|
{
|
||||||
Document doc = Application.DocumentManager.MdiActiveDocument;
|
Document doc = Application.DocumentManager.MdiActiveDocument;
|
||||||
var ed = doc.Editor;
|
var ed = doc.Editor;
|
||||||
ObjectId oid = ObjectId.Null;
|
ObjectId oid = ObjectId.Null;
|
||||||
@ -2118,10 +2139,10 @@ namespace SWS.CAD.Base
|
|||||||
|
|
||||||
// 处理插入结果
|
// 处理插入结果
|
||||||
btr.AppendEntity(br);
|
btr.AppendEntity(br);
|
||||||
tr.AddNewlyCreatedDBObject(br, true);
|
tr.AddNewlyCreatedDBObject(br, true);
|
||||||
tr.Commit();
|
tr.Commit();
|
||||||
oid = br.Id;
|
oid = br.Id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
@ -8,13 +8,30 @@
|
|||||||
<appender-ref ref="InfoRollingFileAppender"/>
|
<appender-ref ref="InfoRollingFileAppender"/>
|
||||||
<appender-ref ref="DebugRollingFileAppender"/>
|
<appender-ref ref="DebugRollingFileAppender"/>
|
||||||
</root>
|
</root>
|
||||||
|
<!--信息日志定义,用于收集开发调试信息-->
|
||||||
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
|
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
|
<filter type="log4net.Filter.LevelMatchFilter">
|
||||||
|
<levelToMatch value="DEBUG"/>
|
||||||
|
</filter>
|
||||||
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
|
<file value="Logs/"/>
|
||||||
|
<appendToFile value="true"/>
|
||||||
|
<maxSizeRollBackups value="100" />
|
||||||
|
<maxFileSize value="10240" />
|
||||||
|
<rollingStyle value="Date"/>
|
||||||
|
<datePattern value="yyyy-MM-dd//"Debug.log""/>
|
||||||
|
<staticLogFileName value="false"/>
|
||||||
|
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t: %m%n"/>
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
<!--一般错误日志定义,用于记录已知需处理的与未捕获的异常-->
|
<!--一般错误日志定义,用于记录已知需处理的与未捕获的异常-->
|
||||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
<filter type="log4net.Filter.LevelRangeFilter">
|
<filter type="log4net.Filter.LevelRangeFilter">
|
||||||
<levelMin value="ERROR"/>
|
<levelMin value="ERROR"/>
|
||||||
<levelMax value="FATAL"/>
|
|
||||||
</filter>
|
</filter>
|
||||||
<filter type="log4net.Filter.DenyAllFilter"/>
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
<file value="Logs/"/>
|
<file value="Logs/"/>
|
||||||
@ -29,7 +46,25 @@
|
|||||||
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
|
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
|
||||||
</layout>
|
</layout>
|
||||||
</appender>
|
</appender>
|
||||||
|
<!--严重错误日志定义,用于记录已知需处理的与未捕获的异常-->
|
||||||
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
|
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
|
<filter type="log4net.Filter.LevelRangeFilter">
|
||||||
|
<levelMax value="FATAL"/>
|
||||||
|
</filter>
|
||||||
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
|
<file value="Logs/"/>
|
||||||
|
<appendToFile value="true"/>
|
||||||
|
<maxSizeRollBackups value="100" />
|
||||||
|
<maxFileSize value="10240" />
|
||||||
|
<rollingStyle value="Date"/>
|
||||||
|
<datePattern value="yyyy-MM-dd//"Fatal.log""/>
|
||||||
|
<staticLogFileName value="false"/>
|
||||||
|
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
<!--警告日志定义,用于记录已知不需处理的异常,系统警告信息-->
|
<!--警告日志定义,用于记录已知不需处理的异常,系统警告信息-->
|
||||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
<appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
<appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
@ -70,24 +105,6 @@
|
|||||||
</layout>
|
</layout>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
<!--信息日志定义,用于收集开发调试信息-->
|
|
||||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
|
||||||
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
|
||||||
<filter type="log4net.Filter.LevelMatchFilter">
|
|
||||||
<levelToMatch value="DEBUG"/>
|
|
||||||
</filter>
|
|
||||||
<filter type="log4net.Filter.DenyAllFilter"/>
|
|
||||||
<file value="Logs/"/>
|
|
||||||
<appendToFile value="true"/>
|
|
||||||
<maxSizeRollBackups value="100" />
|
|
||||||
<maxFileSize value="10240" />
|
|
||||||
<rollingStyle value="Date"/>
|
|
||||||
<datePattern value="yyyy-MM-dd//"Debug.log""/>
|
|
||||||
<staticLogFileName value="false"/>
|
|
||||||
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
|
||||||
<layout type="log4net.Layout.PatternLayout">
|
|
||||||
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t: %m%n"/>
|
|
||||||
</layout>
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
</log4net>
|
</log4net>
|
@ -25,6 +25,8 @@ using GlobalObject = SWS.Commons.GlobalObject;
|
|||||||
using SWS.Model;
|
using SWS.Model;
|
||||||
using SWS.Service;
|
using SWS.Service;
|
||||||
using OfficeOpenXml.FormulaParsing.Excel.Functions.Information;
|
using OfficeOpenXml.FormulaParsing.Excel.Functions.Information;
|
||||||
|
using System.Windows;
|
||||||
|
using MessageBox = System.Windows.Forms.MessageBox;
|
||||||
|
|
||||||
|
|
||||||
[assembly: CommandClass(typeof(Commands))]
|
[assembly: CommandClass(typeof(Commands))]
|
||||||
@ -67,6 +69,15 @@ namespace SWS.CAD
|
|||||||
panel.Icon = GlobalObject.ImageSourceFromEmbeddedResourceStream(@"CSharp.ico");
|
panel.Icon = GlobalObject.ImageSourceFromEmbeddedResourceStream(@"CSharp.ico");
|
||||||
panel.Visible = true;
|
panel.Visible = true;
|
||||||
|
|
||||||
|
if (System.Windows.Application.Current == null)
|
||||||
|
{
|
||||||
|
var app = new System.Windows.Application
|
||||||
|
{
|
||||||
|
// 设置为显式关闭,防止窗口关闭时 Application 被自动终结
|
||||||
|
ShutdownMode = ShutdownMode.OnExplicitShutdown
|
||||||
|
};
|
||||||
|
}
|
||||||
|
GlobalObject.ClearLog();
|
||||||
}
|
}
|
||||||
catch (System.Exception e)
|
catch (System.Exception e)
|
||||||
{
|
{
|
||||||
|
@ -85,7 +85,7 @@ namespace SWS.Commons
|
|||||||
public static List<TreeModel> designTree = new List<TreeModel>();
|
public static List<TreeModel> designTree = new List<TreeModel>();
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
public enum DBConst
|
public enum DBConst
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -316,19 +316,50 @@ namespace SWS.Commons
|
|||||||
return dllPath;
|
return dllPath;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
/// <summary>
|
|
||||||
///
|
#region 获取日志文件夹路径
|
||||||
/// </summary>
|
/// <summary>
|
||||||
/// <param name="resName">包括命名空间</param>
|
/// 获取日志文件夹路径
|
||||||
/// <returns></returns>
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static string GetLogPath()
|
||||||
|
{
|
||||||
|
string path = Path.Combine(GetDllPath(),"SWSLogs");
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 清理超时日志文件
|
||||||
|
public static void ClearLog()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var path = Path.Combine(GlobalObject.GetDllPath(), "SWSLogs\\");
|
||||||
|
int retainDays = 7;//保留7天的日志
|
||||||
|
|
||||||
|
foreach (var file in Directory.GetFiles(path, "*.log"))
|
||||||
|
{
|
||||||
|
if (File.GetCreationTime(file) < DateTime.Now.AddDays(-retainDays))
|
||||||
|
{
|
||||||
|
File.Delete(file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="resName">包括命名空间</param>
|
||||||
|
/// <returns></returns>
|
||||||
public static System.Windows.Media.ImageSource ImageSourceFromEmbeddedResourceStream(string resName)
|
public static System.Windows.Media.ImageSource ImageSourceFromEmbeddedResourceStream(string resName)
|
||||||
{
|
{
|
||||||
string imgPath = $"SWS.Commons.Images.{resName}";
|
string imgPath = $"SWS.Commons.Images.{resName}";
|
||||||
System.Reflection.Assembly assy = System.Reflection.Assembly.GetExecutingAssembly();
|
System.Reflection.Assembly assy = System.Reflection.Assembly.GetExecutingAssembly();
|
||||||
//foreach (string resource in assy.GetManifestResourceNames())
|
|
||||||
//{
|
|
||||||
// Console.WriteLine(resource);//遍历所有的内嵌资源
|
|
||||||
//}
|
|
||||||
System.IO.Stream stream = assy.GetManifestResourceStream(imgPath);
|
System.IO.Stream stream = assy.GetManifestResourceStream(imgPath);
|
||||||
if (stream == null)
|
if (stream == null)
|
||||||
return null;
|
return null;
|
||||||
@ -341,9 +372,8 @@ namespace SWS.Commons
|
|||||||
|
|
||||||
public static string GetPCInfo()
|
public static string GetPCInfo()
|
||||||
{
|
{
|
||||||
string computerName = Environment.MachineName; // 获取计算机名称
|
string computerName = Environment.MachineName; // 获取计算机名称
|
||||||
string userName = Environment.UserName; // 获取当前用户名称
|
string userName = Environment.UserName; // 获取当前用户名称
|
||||||
|
|
||||||
return $"{computerName} 计算机{userName} 用户";
|
return $"{computerName} 计算机{userName} 用户";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,12 +1,16 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using System.Windows;
|
||||||
|
using log4net.Appender;
|
||||||
|
using log4net.Config;
|
||||||
|
using log4net.Layout;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
namespace SWS.Commons
|
namespace SWS.Commons
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// nLog使用帮助类
|
/// Log使用帮助类
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class LoggerHelper
|
public class LoggerHelper
|
||||||
{
|
{
|
||||||
@ -19,13 +23,42 @@ namespace SWS.Commons
|
|||||||
private static LoggerHelper _obj = null;
|
private static LoggerHelper _obj = null;
|
||||||
private static string logPath = string.Empty;
|
private static string logPath = string.Empty;
|
||||||
private LoggerHelper()
|
private LoggerHelper()
|
||||||
{
|
{
|
||||||
|
try
|
||||||
logPath = Path.Combine(GlobalObject.GetDllPath(), "Logs\\");
|
{
|
||||||
if (!Directory.Exists(logPath))
|
logPath = Path.Combine(GlobalObject.GetDllPath(), "Logs\\");
|
||||||
{ Directory.CreateDirectory(logPath); }
|
if (!Directory.Exists(logPath))
|
||||||
var configFile = new FileInfo(Path.Combine(GlobalObject.GetDllPath(), "log4net.config"));
|
{ Directory.CreateDirectory(logPath); }
|
||||||
log4net.Config.XmlConfigurator.ConfigureAndWatch(configFile);
|
var configFile = new FileInfo(Path.Combine(GlobalObject.GetDllPath(), "log4net.config"));
|
||||||
|
log4net.Config.XmlConfigurator.ConfigureAndWatch(configFile);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show(ex.Message+"\n\r"+ex.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#region 初始
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
public static bool ChangeLogFileName(string name)
|
||||||
|
{
|
||||||
|
var path = Path.Combine(GlobalObject.GetDllPath(), "SWSLogs\\");
|
||||||
|
if (!Directory.Exists(path))
|
||||||
|
{ Directory.CreateDirectory(path); }
|
||||||
|
var rootRepository = log4net.LogManager.GetRepository();
|
||||||
|
foreach (var appender in rootRepository.GetAppenders())
|
||||||
|
{
|
||||||
|
if (appender is log4net.Appender.FileAppender fileAppender&&!string.IsNullOrEmpty(fileAppender.File) && appender.Name.ToLower().Contains(name))
|
||||||
|
{
|
||||||
|
// string filename= Path.Combine(GlobalObject.GetDllPath(),$"SWSLogs\\");
|
||||||
|
//fileAppender.Close();
|
||||||
|
fileAppender.File = path;
|
||||||
|
fileAppender.ActivateOptions();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取当前的日志记录<see cref="LoggerHelper"/>对象。
|
/// 获取当前的日志记录<see cref="LoggerHelper"/>对象。
|
||||||
@ -55,6 +88,7 @@ namespace SWS.Commons
|
|||||||
/// <param name="msg">需要记录的信息。</param>
|
/// <param name="msg">需要记录的信息。</param>
|
||||||
public void Info(string msg)
|
public void Info(string msg)
|
||||||
{
|
{
|
||||||
|
ChangeLogFileName("info");
|
||||||
loginfo.Info(msg);
|
loginfo.Info(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -67,6 +101,7 @@ namespace SWS.Commons
|
|||||||
/// <param name="msg">需要记录的信息。</param>
|
/// <param name="msg">需要记录的信息。</param>
|
||||||
public void Warn(string msg)
|
public void Warn(string msg)
|
||||||
{
|
{
|
||||||
|
ChangeLogFileName("warn");
|
||||||
logwarn.Warn(msg);
|
logwarn.Warn(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,6 +114,7 @@ namespace SWS.Commons
|
|||||||
/// <param name="msg">需要记录的信息。</param>
|
/// <param name="msg">需要记录的信息。</param>
|
||||||
public void Error(string msg)
|
public void Error(string msg)
|
||||||
{
|
{
|
||||||
|
ChangeLogFileName("error");
|
||||||
logerror.Error("----------------------------Error BEGIN------------------------------");
|
logerror.Error("----------------------------Error BEGIN------------------------------");
|
||||||
logerror.Error(msg);
|
logerror.Error(msg);
|
||||||
logerror.Error("-----------------------------Error END-------------------------------");
|
logerror.Error("-----------------------------Error END-------------------------------");
|
||||||
@ -93,9 +129,10 @@ namespace SWS.Commons
|
|||||||
/// <param name="err">需要记录的系统异常。</param>
|
/// <param name="err">需要记录的系统异常。</param>
|
||||||
public void Fatal(string msg)
|
public void Fatal(string msg)
|
||||||
{
|
{
|
||||||
|
ChangeLogFileName("fatal");
|
||||||
logfatal.Fatal("----------------------------Fatal BEGIN------------------------------");
|
logfatal.Fatal("----------------------------Fatal BEGIN------------------------------");
|
||||||
logerror.Fatal(msg);
|
logfatal.Fatal(msg);
|
||||||
logerror.Fatal("-----------------------------Fatal END-------------------------------");
|
logfatal.Fatal("-----------------------------Fatal END-------------------------------");
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -8,13 +8,30 @@
|
|||||||
<appender-ref ref="InfoRollingFileAppender"/>
|
<appender-ref ref="InfoRollingFileAppender"/>
|
||||||
<appender-ref ref="DebugRollingFileAppender"/>
|
<appender-ref ref="DebugRollingFileAppender"/>
|
||||||
</root>
|
</root>
|
||||||
|
<!--信息日志定义,用于收集开发调试信息-->
|
||||||
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
|
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
|
<filter type="log4net.Filter.LevelMatchFilter">
|
||||||
|
<levelToMatch value="DEBUG"/>
|
||||||
|
</filter>
|
||||||
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
|
<file value="Logs/"/>
|
||||||
|
<appendToFile value="true"/>
|
||||||
|
<maxSizeRollBackups value="100" />
|
||||||
|
<maxFileSize value="10240" />
|
||||||
|
<rollingStyle value="Date"/>
|
||||||
|
<datePattern value="yyyy-MM-dd//"Debug.log""/>
|
||||||
|
<staticLogFileName value="false"/>
|
||||||
|
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t: %m%n"/>
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
<!--一般错误日志定义,用于记录已知需处理的与未捕获的异常-->
|
<!--一般错误日志定义,用于记录已知需处理的与未捕获的异常-->
|
||||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
<filter type="log4net.Filter.LevelRangeFilter">
|
<filter type="log4net.Filter.LevelRangeFilter">
|
||||||
<levelMin value="ERROR"/>
|
<levelMin value="ERROR"/>
|
||||||
<levelMax value="FATAL"/>
|
|
||||||
</filter>
|
</filter>
|
||||||
<filter type="log4net.Filter.DenyAllFilter"/>
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
<file value="Logs/"/>
|
<file value="Logs/"/>
|
||||||
@ -29,7 +46,25 @@
|
|||||||
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
|
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
|
||||||
</layout>
|
</layout>
|
||||||
</appender>
|
</appender>
|
||||||
|
<!--严重错误日志定义,用于记录已知需处理的与未捕获的异常-->
|
||||||
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
|
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
|
<filter type="log4net.Filter.LevelRangeFilter">
|
||||||
|
<levelMax value="FATAL"/>
|
||||||
|
</filter>
|
||||||
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
|
<file value="Logs/"/>
|
||||||
|
<appendToFile value="true"/>
|
||||||
|
<maxSizeRollBackups value="100" />
|
||||||
|
<maxFileSize value="10240" />
|
||||||
|
<rollingStyle value="Date"/>
|
||||||
|
<datePattern value="yyyy-MM-dd//"Fatal.log""/>
|
||||||
|
<staticLogFileName value="false"/>
|
||||||
|
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
<!--警告日志定义,用于记录已知不需处理的异常,系统警告信息-->
|
<!--警告日志定义,用于记录已知不需处理的异常,系统警告信息-->
|
||||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
<appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
<appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
@ -70,24 +105,6 @@
|
|||||||
</layout>
|
</layout>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
<!--信息日志定义,用于收集开发调试信息-->
|
|
||||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
|
||||||
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
|
||||||
<filter type="log4net.Filter.LevelMatchFilter">
|
|
||||||
<levelToMatch value="DEBUG"/>
|
|
||||||
</filter>
|
|
||||||
<filter type="log4net.Filter.DenyAllFilter"/>
|
|
||||||
<file value="Logs/"/>
|
|
||||||
<appendToFile value="true"/>
|
|
||||||
<maxSizeRollBackups value="100" />
|
|
||||||
<maxFileSize value="10240" />
|
|
||||||
<rollingStyle value="Date"/>
|
|
||||||
<datePattern value="yyyy-MM-dd//"Debug.log""/>
|
|
||||||
<staticLogFileName value="false"/>
|
|
||||||
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
|
||||||
<layout type="log4net.Layout.PatternLayout">
|
|
||||||
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t: %m%n"/>
|
|
||||||
</layout>
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
</log4net>
|
</log4net>
|
@ -8,13 +8,30 @@
|
|||||||
<appender-ref ref="InfoRollingFileAppender"/>
|
<appender-ref ref="InfoRollingFileAppender"/>
|
||||||
<appender-ref ref="DebugRollingFileAppender"/>
|
<appender-ref ref="DebugRollingFileAppender"/>
|
||||||
</root>
|
</root>
|
||||||
|
<!--信息日志定义,用于收集开发调试信息-->
|
||||||
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
|
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
|
<filter type="log4net.Filter.LevelMatchFilter">
|
||||||
|
<levelToMatch value="DEBUG"/>
|
||||||
|
</filter>
|
||||||
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
|
<file value="Logs/"/>
|
||||||
|
<appendToFile value="true"/>
|
||||||
|
<maxSizeRollBackups value="100" />
|
||||||
|
<maxFileSize value="10240" />
|
||||||
|
<rollingStyle value="Date"/>
|
||||||
|
<datePattern value="yyyy-MM-dd//"Debug.log""/>
|
||||||
|
<staticLogFileName value="false"/>
|
||||||
|
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t: %m%n"/>
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
<!--一般错误日志定义,用于记录已知需处理的与未捕获的异常-->
|
<!--一般错误日志定义,用于记录已知需处理的与未捕获的异常-->
|
||||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
<filter type="log4net.Filter.LevelRangeFilter">
|
<filter type="log4net.Filter.LevelRangeFilter">
|
||||||
<levelMin value="ERROR"/>
|
<levelMin value="ERROR"/>
|
||||||
<levelMax value="FATAL"/>
|
|
||||||
</filter>
|
</filter>
|
||||||
<filter type="log4net.Filter.DenyAllFilter"/>
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
<file value="Logs/"/>
|
<file value="Logs/"/>
|
||||||
@ -29,7 +46,25 @@
|
|||||||
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
|
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
|
||||||
</layout>
|
</layout>
|
||||||
</appender>
|
</appender>
|
||||||
|
<!--严重错误日志定义,用于记录已知需处理的与未捕获的异常-->
|
||||||
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
|
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
|
<filter type="log4net.Filter.LevelRangeFilter">
|
||||||
|
<levelMax value="FATAL"/>
|
||||||
|
</filter>
|
||||||
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
|
<file value="Logs/"/>
|
||||||
|
<appendToFile value="true"/>
|
||||||
|
<maxSizeRollBackups value="100" />
|
||||||
|
<maxFileSize value="10240" />
|
||||||
|
<rollingStyle value="Date"/>
|
||||||
|
<datePattern value="yyyy-MM-dd//"Fatal.log""/>
|
||||||
|
<staticLogFileName value="false"/>
|
||||||
|
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
<!--警告日志定义,用于记录已知不需处理的异常,系统警告信息-->
|
<!--警告日志定义,用于记录已知不需处理的异常,系统警告信息-->
|
||||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
<appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
<appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
@ -70,24 +105,6 @@
|
|||||||
</layout>
|
</layout>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
<!--信息日志定义,用于收集开发调试信息-->
|
|
||||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
|
||||||
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
|
||||||
<filter type="log4net.Filter.LevelMatchFilter">
|
|
||||||
<levelToMatch value="DEBUG"/>
|
|
||||||
</filter>
|
|
||||||
<filter type="log4net.Filter.DenyAllFilter"/>
|
|
||||||
<file value="Logs/"/>
|
|
||||||
<appendToFile value="true"/>
|
|
||||||
<maxSizeRollBackups value="100" />
|
|
||||||
<maxFileSize value="10240" />
|
|
||||||
<rollingStyle value="Date"/>
|
|
||||||
<datePattern value="yyyy-MM-dd//"Debug.log""/>
|
|
||||||
<staticLogFileName value="false"/>
|
|
||||||
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
|
||||||
<layout type="log4net.Layout.PatternLayout">
|
|
||||||
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t: %m%n"/>
|
|
||||||
</layout>
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
</log4net>
|
</log4net>
|
@ -1,5 +1,11 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
using Bricscad.ApplicationServices;
|
||||||
using Bricscad.Ribbon;
|
using Bricscad.Ribbon;
|
||||||
using Bricscad.Windows;
|
using Bricscad.Windows;
|
||||||
using Prism.Events;
|
using Prism.Events;
|
||||||
@ -16,6 +22,7 @@ using Telerik.Windows.Controls;
|
|||||||
using Unity;
|
using Unity;
|
||||||
using Application = Bricscad.ApplicationServices.Application;
|
using Application = Bricscad.ApplicationServices.Application;
|
||||||
using DialogParameters = Prism.Services.Dialogs.DialogParameters;
|
using DialogParameters = Prism.Services.Dialogs.DialogParameters;
|
||||||
|
using MessageBox = System.Windows.Forms.MessageBox;
|
||||||
|
|
||||||
[assembly: CommandClass(typeof(Commands))]
|
[assembly: CommandClass(typeof(Commands))]
|
||||||
[assembly: ExtensionApplication(typeof(Commands))]
|
[assembly: ExtensionApplication(typeof(Commands))]
|
||||||
@ -23,27 +30,71 @@ namespace SWS.Electrical
|
|||||||
{
|
{
|
||||||
public partial class Commands : IExtensionApplication
|
public partial class Commands : IExtensionApplication
|
||||||
{
|
{
|
||||||
|
|
||||||
public void Initialize()
|
public void Initialize()
|
||||||
{
|
{
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
||||||
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
|
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
|
||||||
if (RibbonServices.RibbonPaletteSet == null)
|
if (RibbonServices.RibbonPaletteSet == null)
|
||||||
RibbonServices.CreateRibbonPaletteSet();
|
RibbonServices.CreateRibbonPaletteSet();
|
||||||
|
|
||||||
Start.RegisterTypes();
|
Start.RegisterTypes();
|
||||||
Start.AutoLogin();
|
Start.AutoLogin();
|
||||||
AddTab();
|
// 延迟初始化UI组件
|
||||||
|
InitializeCustomUI();
|
||||||
|
|
||||||
|
System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
|
||||||
|
timer.Interval = 50; // 50ms延迟
|
||||||
|
timer.Tick += (s, e) =>
|
||||||
|
{
|
||||||
|
timer.Stop();
|
||||||
|
var ribbonControl = ComponentManager.Ribbon;
|
||||||
|
if (ribbonControl != null)
|
||||||
|
{
|
||||||
|
//先切换到常用标签,再切换到电气系统标签
|
||||||
|
ribbonControl.Tabs[0].IsActive = true;
|
||||||
|
Thread.Sleep(5);
|
||||||
|
foreach (var tab in ribbonControl.Tabs)
|
||||||
|
{
|
||||||
|
if (tab.Name == "Electric")
|
||||||
|
{
|
||||||
|
// 激活选项卡
|
||||||
|
tab.IsActive = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
timer.Start();
|
||||||
|
|
||||||
|
if (System.Windows.Application.Current == null)
|
||||||
|
{
|
||||||
|
var app = new System.Windows.Application
|
||||||
|
{
|
||||||
|
// 设置为显式关闭,防止窗口关闭时 Application 被自动终结
|
||||||
|
ShutdownMode = ShutdownMode.OnExplicitShutdown
|
||||||
|
};
|
||||||
|
}
|
||||||
|
GlobalObject.ClearLog();
|
||||||
}
|
}
|
||||||
catch (System.Exception e)
|
catch (System.Exception e)
|
||||||
{
|
{
|
||||||
Application.ShowAlertDialog(" An exception occurred in Initialize():\n" + e.ToString());
|
Application.ShowAlertDialog(" An exception occurred in Initialize():\n" + e.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private void InitializeCustomUI()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//在这里初始化你的自定义UI
|
||||||
|
AddTab();
|
||||||
|
}
|
||||||
|
catch (System.Exception ex)
|
||||||
|
{
|
||||||
|
LoggerHelper.Current.Error("UI初始化失败: " + ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
|
private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
|
||||||
{
|
{
|
||||||
@ -51,26 +102,27 @@ namespace SWS.Electrical
|
|||||||
{
|
{
|
||||||
// 记录异常信息到日志文件,这里简单打印到控制 ?
|
// 记录异常信息到日志文件,这里简单打印到控制 ?
|
||||||
System.Exception ex = e.ExceptionObject as System.Exception;
|
System.Exception ex = e.ExceptionObject as System.Exception;
|
||||||
Console.WriteLine($"发生未处理的异常: {ex.Message}");
|
LoggerHelper.Current.Error($"发生未处理的异常: {ex.Message}");
|
||||||
Console.WriteLine($"异常堆栈跟踪: {ex.StackTrace}");
|
LoggerHelper.Current.Error($"异常信息: {ex.ToString()}");
|
||||||
|
LoggerHelper.Current.Error($"异常堆栈跟踪: {ex.StackTrace}");
|
||||||
|
|
||||||
// 关闭所有打开的对话框窗口
|
// 关闭所有打开的对话框窗口
|
||||||
|
|
||||||
|
|
||||||
// 提示用户发生了错 ?
|
// 提示用户发生了错 ?
|
||||||
MessageBox.Show("发生错误,请检查日志文件以获取更多信息 ?", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
var result= MessageBox.Show("发生错误,是否打开日志文件以获取更多信息?", "错误", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
|
||||||
|
if(result== System.Windows.Forms.DialogResult.OK)
|
||||||
|
{
|
||||||
|
System.Diagnostics.Process.Start("explorer.exe", GlobalObject.GetLogPath());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (System.Exception innerEx)
|
catch (System.Exception innerEx)
|
||||||
{
|
{
|
||||||
// 如果在处理异常时又发生了异常,简单打印信 ?
|
// 如果在处理异常时又发生了异常,简单打印信 ?
|
||||||
Console.WriteLine($"处理异常时发生错 ? {innerEx.Message}");
|
LoggerHelper.Current.Error($"处理异常时发生错: {innerEx.Message}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Terminate()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void AddTab()
|
void AddTab()
|
||||||
{
|
{
|
||||||
RibbonControl rbnCtrl = ComponentManager.Ribbon; //整个上面都是ribbon,比如莫工做的电气系统,就是ribbon中的一个tab
|
RibbonControl rbnCtrl = ComponentManager.Ribbon; //整个上面都是ribbon,比如莫工做的电气系统,就是ribbon中的一个tab
|
||||||
@ -235,10 +287,10 @@ namespace SWS.Electrical
|
|||||||
ribbonRowPanel.Items.Add(btnMenu);
|
ribbonRowPanel.Items.Add(btnMenu);
|
||||||
ribbonRowPanel.Items.Add(new RibbonRowBreak());//换行,这样可以使按钮多行排列
|
ribbonRowPanel.Items.Add(new RibbonRowBreak());//换行,这样可以使按钮多行排列
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
dataSource.Items.Add(ribbonRowPanel);
|
dataSource.Items.Add(ribbonRowPanel);
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Ribbon 材料管理
|
#region Ribbon 材料管理
|
||||||
dataSource = new RibbonPanelSource();
|
dataSource = new RibbonPanelSource();
|
||||||
dataSource.Title = "材料表管理";
|
dataSource.Title = "材料表管理";
|
||||||
@ -249,7 +301,7 @@ namespace SWS.Electrical
|
|||||||
|
|
||||||
//垂直排列按钮panel
|
//垂直排列按钮panel
|
||||||
ribbonRowPanel = new RibbonRowPanel();
|
ribbonRowPanel = new RibbonRowPanel();
|
||||||
|
|
||||||
#region buttons 材料表自动生成
|
#region buttons 材料表自动生成
|
||||||
btnMenu = new RibbonButton();
|
btnMenu = new RibbonButton();
|
||||||
btnMenu.ToolTip = "材料表自动生成";
|
btnMenu.ToolTip = "材料表自动生成";
|
||||||
@ -290,6 +342,9 @@ namespace SWS.Electrical
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Terminate()
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
10
newFront/c#前端/SWS.Electrical/Event/checkInEvent.cs
Normal file
10
newFront/c#前端/SWS.Electrical/Event/checkInEvent.cs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
using Prism.Events;
|
||||||
|
using SWS.Electrical.ViewModels;
|
||||||
|
using SWS.Model;
|
||||||
|
|
||||||
|
namespace SWS.Electrical
|
||||||
|
{
|
||||||
|
public class sendMessageEvent : PubSubEvent<MessageModel>
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
@ -42,19 +42,7 @@ namespace SWS.Electrical
|
|||||||
public static async Task<bool> CheckLogin()
|
public static async Task<bool> CheckLogin()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
//var parser = new FileIniDataParser();
|
|
||||||
//string[] lines = File.ReadAllLines(GlobalObject.configPath);
|
|
||||||
//IniData data = parser.Parser.Parse(File.ReadAllText(GlobalObject.configPath));
|
|
||||||
//var data = configIni.ReadFile(GlobalObject.configPath);
|
|
||||||
//string token = data["LoginInfo"]["LoginToken"];
|
|
||||||
//string loginkey = data["LoginInfo"]["LoginMark"];
|
|
||||||
//string curProjId = data["LoginInfo"]["CurProjId"];
|
|
||||||
//LocalWorkDir= data["Profile"]["strLocalWorkDir"];
|
|
||||||
//string address = data["Profile"]["strIPAddress"];
|
|
||||||
//string port = data["Profile"]["nPort"];
|
|
||||||
//string dbType = data["Profile"]["nConType"];
|
|
||||||
//string domain= data["Profile"]["strDomainName"];
|
|
||||||
string token = IniHelper.ReadValueFromIniFile("LoginInfo", "LoginToken");
|
string token = IniHelper.ReadValueFromIniFile("LoginInfo", "LoginToken");
|
||||||
string loginkey = IniHelper.ReadValueFromIniFile("LoginInfo", "LoginMark");
|
string loginkey = IniHelper.ReadValueFromIniFile("LoginInfo", "LoginMark");
|
||||||
string curProjId = IniHelper.ReadValueFromIniFile("LoginInfo", "CurProjId");
|
string curProjId = IniHelper.ReadValueFromIniFile("LoginInfo", "CurProjId");
|
||||||
@ -69,7 +57,7 @@ namespace SWS.Electrical
|
|||||||
GlobalObject.client = new HttpClient()
|
GlobalObject.client = new HttpClient()
|
||||||
{
|
{
|
||||||
BaseAddress = new Uri($"{strDomain}/api/"),
|
BaseAddress = new Uri($"{strDomain}/api/"),
|
||||||
Timeout = TimeSpan.FromSeconds(120)
|
Timeout = TimeSpan.FromSeconds(600)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
else if (dbType == "0")
|
else if (dbType == "0")
|
||||||
@ -77,7 +65,7 @@ namespace SWS.Electrical
|
|||||||
GlobalObject.client = new HttpClient()
|
GlobalObject.client = new HttpClient()
|
||||||
{
|
{
|
||||||
BaseAddress = new Uri($"http://{address}:{port}/api/"),
|
BaseAddress = new Uri($"http://{address}:{port}/api/"),
|
||||||
Timeout = TimeSpan.FromSeconds(120)
|
Timeout = TimeSpan.FromSeconds(600)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
GlobalObject.client.DefaultRequestHeaders.Add("logintoken", token);
|
GlobalObject.client.DefaultRequestHeaders.Add("logintoken", token);
|
||||||
@ -105,7 +93,7 @@ namespace SWS.Electrical
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (GlobalObject.curProject == null)
|
if (GlobalObject.curProject == null)
|
||||||
{ GlobalObject.curProject = new ec_project() { ProjectId = curProjId }; }
|
{ GlobalObject.curProject = new ec_project() { ProjectId = curProjId }; }
|
||||||
return flag;
|
return flag;
|
||||||
}
|
}
|
||||||
catch (System.Exception ex)
|
catch (System.Exception ex)
|
||||||
|
@ -31,9 +31,13 @@ namespace SWS.Electrical.Models
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string BasePointTagNumber { get; set; } = "";
|
public string BasePointTagNumber { get; set; } = "";
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// 房间号
|
||||||
|
/// </summary>
|
||||||
|
public string RoomNo { get; set; }
|
||||||
|
/// <summary>
|
||||||
/// 比例
|
/// 比例
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double Scale { get; set; }
|
public double Scale { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// true:默认块,false:异性块
|
/// true:默认块,false:异性块
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -68,7 +72,7 @@ namespace SWS.Electrical.Models
|
|||||||
{
|
{
|
||||||
get { return _TagPixelOnDwg; }
|
get { return _TagPixelOnDwg; }
|
||||||
set { _TagPixelOnDwg = value; RaisePropertyChanged(nameof(TagPixelOnDwg)); }
|
set { _TagPixelOnDwg = value; RaisePropertyChanged(nameof(TagPixelOnDwg)); }
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 肋位号 和 偏移量
|
/// 肋位号 和 偏移量
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -133,6 +133,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Commands.cs" />
|
<Compile Include="Commands.cs" />
|
||||||
<Compile Include="Control\ListBoxScrollToBottomBehavior.cs" />
|
<Compile Include="Control\ListBoxScrollToBottomBehavior.cs" />
|
||||||
|
<Compile Include="Event\checkInEvent.cs" />
|
||||||
<Compile Include="GlobalObj.cs" />
|
<Compile Include="GlobalObj.cs" />
|
||||||
<Compile Include="Models\DtoBomDrawings.cs" />
|
<Compile Include="Models\DtoBomDrawings.cs" />
|
||||||
<Compile Include="Models\DtoAutoPlotLayout.cs" />
|
<Compile Include="Models\DtoAutoPlotLayout.cs" />
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
|
using System.ComponentModel;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
@ -12,7 +13,11 @@ using System.Windows.Interop;
|
|||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
using System.Windows.Media.Media3D;
|
using System.Windows.Media.Media3D;
|
||||||
using Bricscad.EditorInput;
|
using Bricscad.EditorInput;
|
||||||
|
using ImTools;
|
||||||
|
using IniParser.Model;
|
||||||
|
using Microsoft.Win32;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
|
using Prism.Events;
|
||||||
using Prism.Services.Dialogs;
|
using Prism.Services.Dialogs;
|
||||||
using SWS.CAD.Base;
|
using SWS.CAD.Base;
|
||||||
using SWS.Commons;
|
using SWS.Commons;
|
||||||
@ -29,6 +34,17 @@ using Visibility = System.Windows.Visibility;
|
|||||||
|
|
||||||
namespace SWS.Electrical.ViewModels
|
namespace SWS.Electrical.ViewModels
|
||||||
{
|
{
|
||||||
|
public class MessageModel
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 信息
|
||||||
|
/// </summary>
|
||||||
|
public string Message { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 是否成功
|
||||||
|
/// </summary>
|
||||||
|
public bool IsSuccess { get; set; } = true;
|
||||||
|
}
|
||||||
public class DialogAutoArrangeLayoutViewModel : DialogBase, IDialogAware
|
public class DialogAutoArrangeLayoutViewModel : DialogBase, IDialogAware
|
||||||
{
|
{
|
||||||
private ObservableCollection<DtoDrawing> _listDrawings;
|
private ObservableCollection<DtoDrawing> _listDrawings;
|
||||||
@ -227,6 +243,15 @@ namespace SWS.Electrical.ViewModels
|
|||||||
get { return _ErrTagCount; }
|
get { return _ErrTagCount; }
|
||||||
set { _ErrTagCount = value; OnPropertyChanged(nameof(ErrTagCount)); }
|
set { _ErrTagCount = value; OnPropertyChanged(nameof(ErrTagCount)); }
|
||||||
}
|
}
|
||||||
|
private bool _isCheckDelete = false;
|
||||||
|
/// <summary>
|
||||||
|
/// 删除现有元件再绘制
|
||||||
|
/// </summary>
|
||||||
|
public bool isCheckDelete
|
||||||
|
{
|
||||||
|
get { return _isCheckDelete; }
|
||||||
|
set { _isCheckDelete = value; OnPropertyChanged(nameof(isCheckDelete)); }
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 命令事件
|
/// 命令事件
|
||||||
@ -252,8 +277,11 @@ namespace SWS.Electrical.ViewModels
|
|||||||
private string dwgName = string.Empty;
|
private string dwgName = string.Empty;
|
||||||
private List<string> listLibraryTagName = new List<string>();//元件图纸上的位号属性名称,
|
private List<string> listLibraryTagName = new List<string>();//元件图纸上的位号属性名称,
|
||||||
private List<KeyValueModel> listDeck = new List<KeyValueModel>();//甲板号值列表
|
private List<KeyValueModel> listDeck = new List<KeyValueModel>();//甲板号值列表
|
||||||
private List<KeyValueModel> listArea = new List<KeyValueModel>();//区域值列表
|
private List<KeyValueModel> listSystem = new List<KeyValueModel>();//所属系统值列表
|
||||||
private List<KeyValueModel> listSystem = new List<KeyValueModel>();//所属系统值列表
|
List<ec_enginedata> listEnginedata = new List<ec_enginedata>();//要绘制的多个位号的位号信息
|
||||||
|
List<ec_objecttype> listObjecttype = new List<ec_objecttype>();//要绘制的多个位号的属性信息列表
|
||||||
|
List<ec_enginedata> listUpdateEnginedata = new List<ec_enginedata>();//要绘制的多个位号的关联图纸属性列表
|
||||||
|
IEventAggregator eventAggregator;
|
||||||
public DialogAutoArrangeLayoutViewModel()
|
public DialogAutoArrangeLayoutViewModel()
|
||||||
{
|
{
|
||||||
Command_StartDrawing = new DelegateCommand(onStartDrawing);
|
Command_StartDrawing = new DelegateCommand(onStartDrawing);
|
||||||
@ -270,10 +298,12 @@ namespace SWS.Electrical.ViewModels
|
|||||||
_ServiceObjectType = GlobalObject.container.Resolve<ObjectTypeService>();
|
_ServiceObjectType = GlobalObject.container.Resolve<ObjectTypeService>();
|
||||||
_ServiceProjectSettings = GlobalObject.container.Resolve<ProjectSettingsService>();
|
_ServiceProjectSettings = GlobalObject.container.Resolve<ProjectSettingsService>();
|
||||||
_ServiceDataItem = GlobalObject.container.Resolve<DataItemService>();
|
_ServiceDataItem = GlobalObject.container.Resolve<DataItemService>();
|
||||||
|
eventAggregator = GlobalObject.container.Resolve<IEventAggregator>();
|
||||||
listDrawings = new ObservableCollection<DtoDrawing>();
|
listDrawings = new ObservableCollection<DtoDrawing>();
|
||||||
listBasePoint = new ObservableCollection<DtoAutoPlotLayout>();
|
listBasePoint = new ObservableCollection<DtoAutoPlotLayout>();
|
||||||
listErrBasePoint = new ObservableCollection<DtoAutoPlotLayout>();
|
listErrBasePoint = new ObservableCollection<DtoAutoPlotLayout>();
|
||||||
listMsg = new ObservableCollection<TextBlock>();
|
listMsg = new ObservableCollection<TextBlock>();
|
||||||
|
eventAggregator.GetEvent<sendMessageEvent>().Subscribe(onReceviceMsg, ThreadOption.UIThread, true);
|
||||||
var list = new ObservableCollection<KeyValueModel>();
|
var list = new ObservableCollection<KeyValueModel>();
|
||||||
list.Add(new KeyValueModel { Key = "甲板号", Value = "甲板号" });
|
list.Add(new KeyValueModel { Key = "甲板号", Value = "甲板号" });
|
||||||
//list.Add(new KeyValueModel { Key = "区域", Value = "区域" });
|
//list.Add(new KeyValueModel { Key = "区域", Value = "区域" });
|
||||||
@ -364,11 +394,12 @@ namespace SWS.Electrical.ViewModels
|
|||||||
{
|
{
|
||||||
AddMsg($"布置图列表加载中...");
|
AddMsg($"布置图列表加载中...");
|
||||||
var listDwg = await _ServiceDrawing.GetDrawingCatalogue();
|
var listDwg = await _ServiceDrawing.GetDrawingCatalogue();
|
||||||
if (listDwg == null)
|
if (listDwg == null || !listDwg.Any())
|
||||||
{
|
{
|
||||||
AddMsg($"布置图列表没有数据!");
|
AddMsg($"布置图列表没有数据!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
GlobalObject.AllDrawings = listDwg.ToList();
|
||||||
foreach (var model in listDwg)
|
foreach (var model in listDwg)
|
||||||
{
|
{
|
||||||
if (model.Text == "布置图")
|
if (model.Text == "布置图")
|
||||||
@ -409,14 +440,14 @@ namespace SWS.Electrical.ViewModels
|
|||||||
}
|
}
|
||||||
else { listLibraryTagName = settingModel.SettingValue.Split(',').ToList(); }
|
else { listLibraryTagName = settingModel.SettingValue.Split(',').ToList(); }
|
||||||
//区域下拉框对应值列表
|
//区域下拉框对应值列表
|
||||||
var listDetail = await _ServiceDataItem.GetDetails("Area");
|
//var listDetail = await _ServiceDataItem.GetDetails("Area");
|
||||||
if (listDetail != null && listDetail.Any())
|
//if (listDetail != null && listDetail.Any())
|
||||||
{
|
//{
|
||||||
foreach (var item in listDetail)
|
// foreach (var item in listDetail)
|
||||||
{ listArea.Add(new KeyValueModel() { Key = item.DataItemName, Value = item.DataItemName }); }
|
// { listArea.Add(new KeyValueModel() { Key = item.DataItemName, Value = item.DataItemName }); }
|
||||||
}
|
//}
|
||||||
//甲板号下拉框对应值列表
|
//甲板号下拉框对应值列表
|
||||||
listDetail = await _ServiceDataItem.GetDetails("甲板号");
|
var listDetail = await _ServiceDataItem.GetDetails("甲板号");
|
||||||
if (listDetail != null && listDetail.Any())
|
if (listDetail != null && listDetail.Any())
|
||||||
{
|
{
|
||||||
foreach (var item in listDetail)
|
foreach (var item in listDetail)
|
||||||
@ -505,7 +536,7 @@ namespace SWS.Electrical.ViewModels
|
|||||||
{
|
{
|
||||||
string strErr = isBasePointErr ? "基点异常;" : "";
|
string strErr = isBasePointErr ? "基点异常;" : "";
|
||||||
strErr += isTagErr ? "元件异常" : "";
|
strErr += isTagErr ? "元件异常" : "";
|
||||||
strErr = strErr.Replace(";","");
|
strErr = strErr.EndsWith(";") ? strErr.Replace(";", "") : strErr;
|
||||||
listErrDto.Add(new DtoAutoPlotLayout()
|
listErrDto.Add(new DtoAutoPlotLayout()
|
||||||
{
|
{
|
||||||
IsSelected = true,
|
IsSelected = true,
|
||||||
@ -513,6 +544,7 @@ namespace SWS.Electrical.ViewModels
|
|||||||
DrawingFileName = dwg.DrawingFileName,
|
DrawingFileName = dwg.DrawingFileName,
|
||||||
EngineDataID = basePoint.EngineDataID,
|
EngineDataID = basePoint.EngineDataID,
|
||||||
BasePointTagNumber = basePoint.TagNumber,
|
BasePointTagNumber = basePoint.TagNumber,
|
||||||
|
RoomNo = basePoint.RoomNo,
|
||||||
Scale = basePoint.Scale,
|
Scale = basePoint.Scale,
|
||||||
FileId = basePoint.FileId,
|
FileId = basePoint.FileId,
|
||||||
PixelOnDwg = basePoint.PixelOnDwg,
|
PixelOnDwg = basePoint.PixelOnDwg,
|
||||||
@ -538,6 +570,7 @@ namespace SWS.Electrical.ViewModels
|
|||||||
DrawingFileName = dwg.DrawingFileName,
|
DrawingFileName = dwg.DrawingFileName,
|
||||||
EngineDataID = basePoint.EngineDataID,
|
EngineDataID = basePoint.EngineDataID,
|
||||||
BasePointTagNumber = basePoint.TagNumber,
|
BasePointTagNumber = basePoint.TagNumber,
|
||||||
|
RoomNo = basePoint.RoomNo,
|
||||||
Scale = basePoint.Scale,
|
Scale = basePoint.Scale,
|
||||||
FileId = basePoint.FileId,
|
FileId = basePoint.FileId,
|
||||||
PixelOnDwg = basePoint.PixelOnDwg,
|
PixelOnDwg = basePoint.PixelOnDwg,
|
||||||
@ -588,41 +621,499 @@ namespace SWS.Electrical.ViewModels
|
|||||||
MessageBox.Show("请先勾选基点元件信息!");
|
MessageBox.Show("请先勾选基点元件信息!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
listMsg.Clear();
|
||||||
|
var progress = new Progress<MessageModel>(UpdateProgress);
|
||||||
|
await DoWorkAsync(progress, new CancellationTokenSource());
|
||||||
|
|
||||||
|
|
||||||
|
#region back
|
||||||
|
|
||||||
|
//try
|
||||||
|
//{
|
||||||
|
// isDrawing = true;
|
||||||
|
// List<ec_library_file> listFile = new List<ec_library_file>();
|
||||||
|
// List<string> listBlockDwgPath = new List<string>(); //图块下载路径列表,同个异形块下载一次,先下载后删除
|
||||||
|
// listMsg.Clear();
|
||||||
|
// listUpdateEnginedata.Clear();
|
||||||
|
// //获取多个位号属性
|
||||||
|
// AddMsg($"开始获取全部位号属性...");
|
||||||
|
// string strTagNumbers = string.Join(",", listDto.Select(a => a.TagNumber).ToList());
|
||||||
|
// listObjecttype = await _ServiceObjectType.GetTagInfosByTags(strTagNumbers);
|
||||||
|
// listEnginedata = await _ServiceObjectType.GetEngineDataListByTags(strTagNumbers);
|
||||||
|
// AddMsg($"获取全部位号类型属性完成,共有{listObjecttype.Count}种类型!");
|
||||||
|
// //循环画图
|
||||||
|
// for (int i = 0; i < listDto.Count; i++)
|
||||||
|
// {
|
||||||
|
// var basePoint = listDto[i];
|
||||||
|
// if (basePoint.AutoDrawing == "已绘制")
|
||||||
|
// {
|
||||||
|
// AddMsg($"当前基点[{basePoint.BasePointTagNumber}]和元件[{basePoint.TagNumber}]已绘制,跳至下一个元件");
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
// if (basePoint.AutoDrawing == "已存在" && !isCheckDelete)
|
||||||
|
// {
|
||||||
|
// AddMsg($"当前基点[{basePoint.BasePointTagNumber}]和元件[{basePoint.TagNumber}]已存在,跳至下一个元件");
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// msg = OpenDwg(basePoint);
|
||||||
|
// if (!string.IsNullOrEmpty(msg))
|
||||||
|
// {
|
||||||
|
// AddMsg($"图纸打开失败:{msg}", false);
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
// var listTag = listDto.Where(a => a.DrawingFileID == basePoint.DrawingFileID).Select(a => a.TagNumber).ToList();
|
||||||
|
// var listEntitys = isCheckDelete ? General.GetAllEntity(listTag) : General.GetAllEntity(new List<string>());//获取图纸所有实体
|
||||||
|
// var entity = listEntitys.FirstOrDefault(a => a.Handle.ToString() == basePoint.PixelOnDwg);
|
||||||
|
// if (entity == null)
|
||||||
|
// {
|
||||||
|
// AddMsg($"当前基点:{basePoint.BasePointTagNumber} 在图上找不到,不添加此元件,跳至下一个元件", false);
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
// var tag = basePoint.Tag;
|
||||||
|
// var tagDto = listEntitys.FirstOrDefault(a => a.TagNumber == basePoint.TagNumber);
|
||||||
|
// if (tagDto != null)
|
||||||
|
// {
|
||||||
|
// AddMsg($"当前元件:{basePoint.TagNumber} 在图上已存在,句柄:{tagDto.Handle},不添加此元件,跳至下一个元件", false);
|
||||||
|
// basePoint.AutoDrawing = "已存在";
|
||||||
|
// basePoint.TagPixelOnDwg = tagDto.Handle;
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
// filePath = Path.Combine(GlobalObject.GetCacheFolder(), $"{tag.TagNumber}.dwg");
|
||||||
|
// string blockName = string.Empty;
|
||||||
|
// if (string.IsNullOrEmpty(tag.FileId))
|
||||||
|
// {
|
||||||
|
// //元件ID为空 用本地默认图块图纸
|
||||||
|
// if (!string.IsNullOrEmpty(tag.TagNumber_Lower))
|
||||||
|
// {
|
||||||
|
// var blockDwgPath = Path.Combine(GlobalObject.GetDllPath(), "Template\\常规矩形两行图块.dwg");
|
||||||
|
// if (!File.Exists(blockDwgPath))
|
||||||
|
// {
|
||||||
|
// AddMsg($"默认图块找不到:{blockDwgPath}", false);
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
// //默认上下图块
|
||||||
|
// blockName = "常规矩形两行图块";
|
||||||
|
// File.Copy(blockDwgPath, filePath, true);
|
||||||
|
// AddMsg($"本地默认常规图块图纸复制成功");
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// var blockDwgPath = Path.Combine(GlobalObject.GetDllPath(), "Template\\常规矩形单行图块.dwg");
|
||||||
|
// if (!File.Exists(blockDwgPath))
|
||||||
|
// {
|
||||||
|
// AddMsg($"默认图块找不到:{blockDwgPath}", false);
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
// //默认图块,只有中间部分
|
||||||
|
// blockName = "常规矩形单行图块";
|
||||||
|
// File.Copy(blockDwgPath, filePath, true);
|
||||||
|
// AddMsg($"本地默认常规图块图纸复制成功");
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// string blockDwgPath = Path.Combine(GlobalObject.GetCacheFolder(), $"{tag.FileId}.dwg");
|
||||||
|
// if (File.Exists(blockDwgPath))
|
||||||
|
// {
|
||||||
|
// File.Copy(blockDwgPath, filePath, true);
|
||||||
|
// var item = listFile.FirstOrDefault(a => a.LibraryFileID == tag.FileId);
|
||||||
|
// if (item != null)
|
||||||
|
// {
|
||||||
|
// blockName = item.LibraryFileName;
|
||||||
|
// }
|
||||||
|
// else { blockName = tag.TagNumber; }
|
||||||
|
// AddMsg($"元件图纸:{tag.TagNumber},已下载过,复制本地缓存块图纸文件成功");
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// //下载元件图纸文件
|
||||||
|
// var obj = await _ServiceLibraryFile.GetEntity(tag.FileId);
|
||||||
|
// blockName = obj.LibraryFileName;
|
||||||
|
// AddMsg($"元件图纸:{tag.TagNumber}, 开始下载...");
|
||||||
|
// msg = await _ServiceAnnexes.DownloadFile(blockDwgPath, obj.FolderId);
|
||||||
|
// if (!string.IsNullOrEmpty(msg))
|
||||||
|
// {
|
||||||
|
// AddMsg($"元件图纸下载失败,信息:" + msg, false);
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
// File.Copy(blockDwgPath, filePath, true);
|
||||||
|
// listBlockDwgPath.Add(blockDwgPath);
|
||||||
|
// listFile.Add(obj);
|
||||||
|
// AddMsg($"元件图纸:{tag.TagNumber}, 下载成功");
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// listBlockDwgPath.Add(filePath);
|
||||||
|
// //把元件的位号属性改成要绘制的位号值
|
||||||
|
// var flag = General.UpdateCableNo(filePath, listLibraryTagName, tag.TagNumber, tag.IsNotDefaultSymbol, tag.TagNumber_Upper, tag.TagNumber_Lower);
|
||||||
|
|
||||||
|
// //X轴:图上基点的坐标X +(接口数据元件的X + 接口数据元件的XOFF -接口数据基点的X-接口数据基点的Xoff)*比例系数
|
||||||
|
// //Y轴:图上基点的坐标Y +(接口数据元件的Yoff-接口数据基点的Yoff)*比例系数
|
||||||
|
// double scale = basePoint.Scale;//比例系数
|
||||||
|
// double x = entity.X + (tag.X + double.Parse(tag.XOff) - basePoint.X - double.Parse(basePoint.XOff)) * scale;
|
||||||
|
// AddMsg($"块X坐标计算:{entity.X}+({tag.X}+{tag.XOff}-{basePoint.X}-{basePoint.XOff})*{scale}={x}");
|
||||||
|
// double y = entity.Y + (double.Parse(tag.YOff) - double.Parse(basePoint.XOff)) * scale;
|
||||||
|
// AddMsg($"块Y坐标计算:{entity.Y}+({tag.YOff}-{basePoint.XOff})*{scale}={y}");
|
||||||
|
// AddMsg($"块最后坐标:{x},{y},0");
|
||||||
|
// double z = entity.Z;
|
||||||
|
// Point3d tagPoint = new Point3d(x, y, z);
|
||||||
|
// AddMsg($"元件图纸:{tag.TagNumber}, 开始添加进布置图中...");
|
||||||
|
// msg =await AddBlock(basePoint, blockName, filePath, tagPoint);
|
||||||
|
// if (string.IsNullOrEmpty(msg))
|
||||||
|
// {
|
||||||
|
// AddMsg($"布置图:{basePoint.DrawingFileName},成功插入元件:" + tag.TagNumber);
|
||||||
|
// basePoint.AutoDrawing = "已绘制";
|
||||||
|
// //当下一个要画元件的图纸和当前图纸不一样时,保存图纸
|
||||||
|
// if (i + 1 >= listDto.Count)
|
||||||
|
// { General.SetDrawingReadOnly(dwgName, false); }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// var nextTag = listDto[i + 1];
|
||||||
|
// if (basePoint.DrawingFileID != nextTag.DrawingFileID)
|
||||||
|
// { General.SetDrawingReadOnly(dwgName, false); }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// basePoint.AutoDrawing = "已失败";
|
||||||
|
// AddMsg($"元件:{tag.TagNumber},绘制异常:{msg}", false);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// }
|
||||||
|
// if (listUpdateEnginedata.Any())
|
||||||
|
// {
|
||||||
|
// AddMsg($"开始批量位号关联属性,数量:{listUpdateEnginedata.Count}......");
|
||||||
|
// msg = await _ServiceObjectType.UpdatePixelAndPropBatch(listUpdateEnginedata);
|
||||||
|
// if (string.IsNullOrEmpty(msg))
|
||||||
|
// {
|
||||||
|
// AddMsg("位号关联属性成功,数量:" + listUpdateEnginedata.Count);
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// AddMsg($"位号关联属性失败,数量:{listUpdateEnginedata.Count},异常:{msg}", false);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// foreach (var file in listBlockDwgPath)
|
||||||
|
// {
|
||||||
|
// File.Delete(file);//删除缓存图块图纸文件
|
||||||
|
// File.Delete(file.Replace(".dwg", ".bak"));
|
||||||
|
// }
|
||||||
|
// AddMsg("操作已完成!");
|
||||||
|
// isDrawing = false;
|
||||||
|
//}
|
||||||
|
//catch (Exception ex)
|
||||||
|
//{
|
||||||
|
// MessageBox.Show("绘图异常:" + ex.Message);
|
||||||
|
// isDrawing = false;
|
||||||
|
//}
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
#region DoWork
|
||||||
|
private void UpdateProgress(MessageModel dto)
|
||||||
|
{
|
||||||
|
System.Windows.Application.Current.Dispatcher.Invoke(new System.Action(() =>
|
||||||
|
{
|
||||||
|
AddMsg(dto.Message, dto.IsSuccess);
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task DoWorkAsync(IProgress<MessageModel> progress, CancellationTokenSource cts)
|
||||||
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
int time = 1;
|
||||||
|
var msg = string.Empty;
|
||||||
|
var filePath = string.Empty;
|
||||||
|
var listDto = listBasePoint.Where(a => a.IsSelected == true).ToList();
|
||||||
isDrawing = true;
|
isDrawing = true;
|
||||||
|
List<ec_library_file> listFile = new List<ec_library_file>();
|
||||||
|
List<string> listBlockDwgPath = new List<string>(); //图块下载路径列表,同个异形块下载一次,先下载后删除
|
||||||
listMsg.Clear();
|
listMsg.Clear();
|
||||||
|
listUpdateEnginedata.Clear();
|
||||||
|
//获取多个位号属性
|
||||||
|
AddMsg($"开始获取全部位号属性...");
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
string strTagNumbers = string.Join(",", listDto.Select(a => a.TagNumber).ToList());
|
||||||
|
listObjecttype = await _ServiceObjectType.GetTagInfosByTags(strTagNumbers);
|
||||||
|
listEnginedata = await _ServiceObjectType.GetEngineDataListByTags(strTagNumbers);
|
||||||
|
AddMsg($"获取全部位号类型属性完成,共有{listObjecttype.Count}种类型!");
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
//循环画图
|
||||||
for (int i = 0; i < listDto.Count; i++)
|
for (int i = 0; i < listDto.Count; i++)
|
||||||
//foreach (var basePoint in listDto)
|
|
||||||
{
|
{
|
||||||
|
cts.Token.ThrowIfCancellationRequested();
|
||||||
var basePoint = listDto[i];
|
var basePoint = listDto[i];
|
||||||
if (basePoint.AutoDrawing == "已绘制")
|
if (basePoint.AutoDrawing == "已绘制" && !isCheckDelete)
|
||||||
|
{
|
||||||
|
AddMsg($"当前基点[{basePoint.BasePointTagNumber}]和元件[{basePoint.TagNumber}]已绘制,跳至下一个元件", false);
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (basePoint.AutoDrawing == "已存在" && !isCheckDelete)
|
||||||
|
{
|
||||||
|
AddMsg($"当前基点[{basePoint.BasePointTagNumber}]和元件[{basePoint.TagNumber}]已存在,跳至下一个元件", false);
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
msg = OpenDwg(basePoint);
|
||||||
|
if (!string.IsNullOrEmpty(msg))
|
||||||
|
{
|
||||||
|
AddMsg($"图纸打开失败:{msg}", false);
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
var listTag = listDto.Where(a => a.DrawingFileID == basePoint.DrawingFileID).Select(a => a.TagNumber).ToList();
|
||||||
|
var listEntitys = isCheckDelete ? General.GetAllEntity(listTag) : General.GetAllEntity(new List<string>());//获取图纸所有实体
|
||||||
|
var entity = listEntitys.FirstOrDefault(a => a.Handle.ToString() == basePoint.PixelOnDwg);
|
||||||
|
if (entity == null)
|
||||||
|
{
|
||||||
|
AddMsg($"当前基点:{basePoint.BasePointTagNumber} 在图上找不到,不添加此元件,跳至下一个元件", false);
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
var tag = basePoint.Tag;
|
||||||
|
var tagDto = listEntitys.FirstOrDefault(a => a.TagNumber == basePoint.TagNumber);
|
||||||
|
if (tagDto != null)
|
||||||
|
{
|
||||||
|
AddMsg($"当前元件:{basePoint.TagNumber} 在图上已存在,句柄:{tagDto.Handle},不添加此元件,跳至下一个元件", false);
|
||||||
|
basePoint.AutoDrawing = "已存在";
|
||||||
|
basePoint.TagPixelOnDwg = tagDto.Handle;
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
filePath = Path.Combine(GlobalObject.GetCacheFolder(), $"{tag.TagNumber}.dwg");
|
||||||
|
string blockName = string.Empty;
|
||||||
|
if (string.IsNullOrEmpty(tag.FileId))
|
||||||
|
{
|
||||||
|
//元件ID为空 用本地默认图块图纸
|
||||||
|
if (!string.IsNullOrEmpty(tag.TagNumber_Lower))
|
||||||
|
{
|
||||||
|
var blockDwgPath = Path.Combine(GlobalObject.GetDllPath(), "Template\\常规矩形两行图块.dwg");
|
||||||
|
if (!File.Exists(blockDwgPath))
|
||||||
|
{
|
||||||
|
AddMsg($"默认图块找不到:{blockDwgPath}", false);
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
//默认上下图块
|
||||||
|
blockName = "常规矩形两行图块";
|
||||||
|
File.Copy(blockDwgPath, filePath, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var blockDwgPath = Path.Combine(GlobalObject.GetDllPath(), "Template\\常规矩形单行图块.dwg");
|
||||||
|
if (!File.Exists(blockDwgPath))
|
||||||
|
{
|
||||||
|
AddMsg($"默认图块找不到:{blockDwgPath}", false);
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
//默认图块,只有中间部分
|
||||||
|
blockName = "常规矩形单行图块";
|
||||||
|
File.Copy(blockDwgPath, filePath, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
string blockDwgPath = Path.Combine(GlobalObject.GetCacheFolder(), $"{tag.FileId}.dwg");
|
||||||
|
if (File.Exists(blockDwgPath))
|
||||||
|
{
|
||||||
|
File.Copy(blockDwgPath, filePath, true);
|
||||||
|
var item = listFile.FirstOrDefault(a => a.LibraryFileID == tag.FileId);
|
||||||
|
if (item != null)
|
||||||
|
{
|
||||||
|
blockName = item.LibraryFileName;
|
||||||
|
}
|
||||||
|
else { blockName = tag.TagNumber; }
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//下载元件图纸文件
|
||||||
|
var obj = await _ServiceLibraryFile.GetEntity(tag.FileId);
|
||||||
|
blockName = obj.LibraryFileName;
|
||||||
|
AddMsg($"元件图纸:{tag.TagNumber}, 开始下载...");
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
msg = await _ServiceAnnexes.DownloadFile(blockDwgPath, obj.FolderId);
|
||||||
|
if (!string.IsNullOrEmpty(msg))
|
||||||
|
{
|
||||||
|
AddMsg($"元件图纸下载失败,信息:{msg}", false);
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
File.Copy(blockDwgPath, filePath, true);
|
||||||
|
listBlockDwgPath.Add(blockDwgPath);
|
||||||
|
listFile.Add(obj);
|
||||||
|
AddMsg($"元件图纸:{tag.TagNumber}, 下载成功");
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
listBlockDwgPath.Add(filePath);
|
||||||
|
//把元件的位号属性改成要绘制的位号值
|
||||||
|
var flag = General.UpdateCableNo(filePath, listLibraryTagName, tag.TagNumber, tag.IsNotDefaultSymbol, tag.TagNumber_Upper, tag.TagNumber_Lower);
|
||||||
|
//X轴:图上基点的坐标X +(接口数据元件的X + 接口数据元件的XOFF -接口数据基点的X-接口数据基点的Xoff)*比例系数
|
||||||
|
//Y轴:图上基点的坐标Y +(接口数据元件的Yoff-接口数据基点的Yoff)*比例系数
|
||||||
|
double scale = basePoint.Scale;//比例系数
|
||||||
|
double x = 0;
|
||||||
|
double y = 0;
|
||||||
|
if (tag.X != 0)//肋位号不为0的时候,去肋位号相关数据去算坐标
|
||||||
|
{
|
||||||
|
x = entity.X + (tag.X + double.Parse(tag.XOff) - basePoint.X - double.Parse(basePoint.XOff)) * scale;
|
||||||
|
msg = $"块X坐标计算:{entity.X}+({tag.X}+{tag.XOff}-{basePoint.X}-{basePoint.XOff})*{scale}={x}";
|
||||||
|
AddMsg(msg);
|
||||||
|
y = entity.Y + (double.Parse(tag.YOff) - double.Parse(basePoint.XOff)) * scale;
|
||||||
|
msg = $"块Y坐标计算:{entity.Y}+({tag.YOff}-{basePoint.XOff})*{scale}={y}";
|
||||||
|
AddMsg(msg);
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(tag.RoomNo))
|
||||||
|
{
|
||||||
|
int rnd = new Random().Next(1, 5);
|
||||||
|
x = entity.X + rnd;
|
||||||
|
msg = $"块X坐标取房间号基点附近:{entity.X}+{rnd}={x}";
|
||||||
|
AddMsg(msg);
|
||||||
|
y = entity.Y + rnd;
|
||||||
|
msg = $"块Y坐标取房间号基点附近:{entity.Y}+{rnd}={y}";
|
||||||
|
AddMsg(msg);
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
x = entity.X + (tag.X + double.Parse(tag.XOff) - basePoint.X - double.Parse(basePoint.XOff)) * scale;
|
||||||
|
msg = $"块X坐标计算:{entity.X}+({tag.X}+{tag.XOff}-{basePoint.X}-{basePoint.XOff})*{scale}={x}";
|
||||||
|
AddMsg(msg);
|
||||||
|
y = entity.Y + (double.Parse(tag.YOff) - double.Parse(basePoint.XOff)) * scale;
|
||||||
|
msg = $"块Y坐标计算:{entity.Y}+({tag.YOff}-{basePoint.XOff})*{scale}={y}";
|
||||||
|
AddMsg(msg);
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
double z = entity.Z;
|
||||||
|
Point3d tagPoint = new Point3d(x, y, z);
|
||||||
|
AddMsg($"元件图纸:{tag.TagNumber}, 开始添加进布置图中...");
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
msg = await AddBlock(basePoint, blockName, filePath, tagPoint);
|
||||||
|
if (string.IsNullOrEmpty(msg))
|
||||||
|
{
|
||||||
|
AddMsg($"布置图:{basePoint.DrawingFileName},成功插入元件:{tag.TagNumber}");
|
||||||
|
basePoint.AutoDrawing = "已绘制";
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
//当下一个要画元件的图纸和当前图纸不一样时,保存图纸
|
||||||
|
if (i + 1 >= listDto.Count)
|
||||||
|
{
|
||||||
|
AddMsg($"布置图:{basePoint.DrawingFileName},开始保存...");
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
General.SetDrawingReadOnly(dwgName, false);
|
||||||
|
msg = $"布置图:{basePoint.DrawingFileName},保存完成";
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var nextTag = listDto[i + 1];
|
||||||
|
if (basePoint.DrawingFileID != nextTag.DrawingFileID)
|
||||||
|
{
|
||||||
|
AddMsg($"布置图:{basePoint.DrawingFileName},开始保存...");
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
General.SetDrawingReadOnly(dwgName, false);
|
||||||
|
AddMsg($"布置图:{basePoint.DrawingFileName},保存完成");
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
basePoint.AutoDrawing = "已失败";
|
||||||
|
AddMsg($"元件:{tag.TagNumber},绘制异常:{msg}");
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (listUpdateEnginedata.Any())
|
||||||
|
{
|
||||||
|
AddMsg($"开始批量位号关联属性,数量:{listUpdateEnginedata.Count}......");
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
msg = await _ServiceObjectType.UpdatePixelAndPropBatch(listUpdateEnginedata);
|
||||||
|
if (string.IsNullOrEmpty(msg))
|
||||||
|
{
|
||||||
|
AddMsg("位号关联属性成功,数量:" + listUpdateEnginedata.Count);
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AddMsg($"位号关联属性失败,数量:{listUpdateEnginedata.Count},异常:{msg}");
|
||||||
|
await Task.Delay(time, cts.Token);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach (var file in listBlockDwgPath)
|
||||||
|
{
|
||||||
|
File.Delete(file);//删除缓存图块图纸文件
|
||||||
|
File.Delete(file.Replace(".dwg", ".bak"));
|
||||||
|
}
|
||||||
|
AddMsg("操作已完成!");
|
||||||
|
isDrawing = false;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show("绘图异常:" + ex.Message);
|
||||||
|
LoggerHelper.Current.Error("绘图异常:" + ex.ToString());
|
||||||
|
isDrawing = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
private async void onAutoDrawing()
|
||||||
|
{
|
||||||
|
#region back
|
||||||
|
var msg = string.Empty;
|
||||||
|
var filePath = string.Empty;
|
||||||
|
var listDto = listBasePoint.Where(a => a.IsSelected == true).ToList();
|
||||||
|
if (!listDto.Any())
|
||||||
|
{
|
||||||
|
MessageBox.Show("请先勾选基点元件信息!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try
|
||||||
|
{
|
||||||
|
List<ec_library_file> listFile = new List<ec_library_file>();
|
||||||
|
List<string> listBlockDwgPath = new List<string>(); //图块下载路径列表,同个异形块下载一次,先下载后删除
|
||||||
|
isDrawing = true;
|
||||||
|
listUpdateEnginedata.Clear();
|
||||||
|
//获取多个位号属性
|
||||||
|
AddMsg($"开始获取全部位号属性...");
|
||||||
|
string strTagNumbers = string.Join(",", listDto.Select(a => a.TagNumber).ToList());
|
||||||
|
listObjecttype = await _ServiceObjectType.GetTagInfosByTags(strTagNumbers);
|
||||||
|
listEnginedata = await _ServiceObjectType.GetEngineDataListByTags(strTagNumbers);
|
||||||
|
AddMsg($"获取全部位号类型属性完成,共有{listObjecttype.Count}种类型!");
|
||||||
|
//循环画图
|
||||||
|
for (int i = 0; i < listDto.Count; i++)
|
||||||
|
{
|
||||||
|
var basePoint = listDto[i];
|
||||||
|
if (basePoint.AutoDrawing == "已绘制" && !isCheckDelete)
|
||||||
{
|
{
|
||||||
AddMsg($"当前基点[{basePoint.BasePointTagNumber}]和元件[{basePoint.TagNumber}]已绘制,跳至下一个元件");
|
AddMsg($"当前基点[{basePoint.BasePointTagNumber}]和元件[{basePoint.TagNumber}]已绘制,跳至下一个元件");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (basePoint.AutoDrawing == "已存在")
|
if (basePoint.AutoDrawing == "已存在" && !isCheckDelete)
|
||||||
{
|
{
|
||||||
AddMsg($"当前基点[{basePoint.BasePointTagNumber}]和元件[{basePoint.TagNumber}]已存在,跳至下一个元件");
|
AddMsg($"当前基点[{basePoint.BasePointTagNumber}]和元件[{basePoint.TagNumber}]已存在,跳至下一个元件");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
msg = await OpenDwg(basePoint.DrawingFileID);
|
msg = OpenDwg(basePoint);
|
||||||
if (!string.IsNullOrEmpty(msg))
|
if (!string.IsNullOrEmpty(msg))
|
||||||
{
|
{
|
||||||
AddMsg($"图纸打开失败:{msg}", false);
|
AddMsg($"图纸打开失败:{msg}", false);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
var listTag = listDto.Where(a => a.DrawingFileID == basePoint.DrawingFileID).Select(a => a.TagNumber).ToList();
|
||||||
AddMsg($"打开图纸:{basePoint.DrawingFileName} ");
|
var listEntitys = isCheckDelete ? General.GetAllEntity(listTag) : General.GetAllEntity(new List<string>());//获取图纸所有实体
|
||||||
var listEntitys = General.GetAllEntity();//获取图纸所有实体
|
|
||||||
var entity = listEntitys.FirstOrDefault(a => a.Handle.ToString() == basePoint.PixelOnDwg);
|
var entity = listEntitys.FirstOrDefault(a => a.Handle.ToString() == basePoint.PixelOnDwg);
|
||||||
if (entity == null)
|
if (entity == null)
|
||||||
{
|
{
|
||||||
AddMsg($"当前基点:{basePoint.BasePointTagNumber} 在图上找不到,不添加此元件,跳至下一个元件", false);
|
AddMsg($"当前基点:{basePoint.BasePointTagNumber} 在图上找不到,不添加此元件,跳至下一个元件", false);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
var tag = basePoint.Tag;
|
var tag = basePoint.Tag;
|
||||||
var tagDto = listEntitys.FirstOrDefault(a => a.TagNumber == basePoint.TagNumber);
|
var tagDto = listEntitys.FirstOrDefault(a => a.TagNumber == basePoint.TagNumber);
|
||||||
if (tagDto != null)
|
if (tagDto != null)
|
||||||
@ -632,12 +1123,6 @@ namespace SWS.Electrical.ViewModels
|
|||||||
basePoint.TagPixelOnDwg = tagDto.Handle;
|
basePoint.TagPixelOnDwg = tagDto.Handle;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
//var flag = basePoint.deck == tag.deck && basePoint.area == tag.area;
|
|
||||||
//if (!flag)
|
|
||||||
//{
|
|
||||||
// AddMsg($"当前基点[{basePoint.BasePointTagNumber}]和元件[{tag.TagNumber}] 的deck和area不一致,不添加此元件,跳至下一个元件", false);
|
|
||||||
// continue;
|
|
||||||
//}
|
|
||||||
filePath = Path.Combine(GlobalObject.GetCacheFolder(), $"{tag.TagNumber}.dwg");
|
filePath = Path.Combine(GlobalObject.GetCacheFolder(), $"{tag.TagNumber}.dwg");
|
||||||
string blockName = string.Empty;
|
string blockName = string.Empty;
|
||||||
if (string.IsNullOrEmpty(tag.FileId))
|
if (string.IsNullOrEmpty(tag.FileId))
|
||||||
@ -654,6 +1139,7 @@ namespace SWS.Electrical.ViewModels
|
|||||||
//默认上下图块
|
//默认上下图块
|
||||||
blockName = "常规矩形两行图块";
|
blockName = "常规矩形两行图块";
|
||||||
File.Copy(blockDwgPath, filePath, true);
|
File.Copy(blockDwgPath, filePath, true);
|
||||||
|
AddMsg($"本地默认常规图块图纸复制成功");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -666,31 +1152,53 @@ namespace SWS.Electrical.ViewModels
|
|||||||
//默认图块,只有中间部分
|
//默认图块,只有中间部分
|
||||||
blockName = "常规矩形单行图块";
|
blockName = "常规矩形单行图块";
|
||||||
File.Copy(blockDwgPath, filePath, true);
|
File.Copy(blockDwgPath, filePath, true);
|
||||||
|
AddMsg($"本地默认常规图块图纸复制成功");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//下载元件图纸文件
|
string blockDwgPath = Path.Combine(GlobalObject.GetCacheFolder(), $"{tag.FileId}.dwg");
|
||||||
var obj = await _ServiceLibraryFile.GetEntity(tag.FileId);
|
if (File.Exists(blockDwgPath))
|
||||||
blockName = obj.LibraryFileName;
|
|
||||||
AddMsg($"元件图纸:{tag.TagNumber}, 开始下载...");
|
|
||||||
msg = await _ServiceAnnexes.DownloadFile(filePath, obj.FolderId);
|
|
||||||
if (!string.IsNullOrEmpty(msg))
|
|
||||||
{
|
{
|
||||||
AddMsg($"元件图纸下载失败,信息:" + msg, false);
|
File.Copy(blockDwgPath, filePath, true);
|
||||||
continue;
|
var item = listFile.FirstOrDefault(a => a.LibraryFileID == tag.FileId);
|
||||||
|
if (item != null)
|
||||||
|
{
|
||||||
|
blockName = item.LibraryFileName;
|
||||||
|
}
|
||||||
|
else { blockName = tag.TagNumber; }
|
||||||
|
AddMsg($"元件图纸:{tag.TagNumber},已下载过,复制本地缓存块图纸文件成功");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//下载元件图纸文件
|
||||||
|
var obj = await _ServiceLibraryFile.GetEntity(tag.FileId);
|
||||||
|
blockName = obj.LibraryFileName;
|
||||||
|
AddMsg($"元件图纸:{tag.TagNumber}, 开始下载...");
|
||||||
|
msg = await _ServiceAnnexes.DownloadFile(blockDwgPath, obj.FolderId);
|
||||||
|
if (!string.IsNullOrEmpty(msg))
|
||||||
|
{
|
||||||
|
AddMsg($"元件图纸下载失败,信息:" + msg, false);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
File.Copy(blockDwgPath, filePath, true);
|
||||||
|
listBlockDwgPath.Add(blockDwgPath);
|
||||||
|
listFile.Add(obj);
|
||||||
|
AddMsg($"元件图纸:{tag.TagNumber}, 下载成功");
|
||||||
}
|
}
|
||||||
AddMsg($"元件图纸:{tag.TagNumber}, 下载成功");
|
|
||||||
}
|
}
|
||||||
//filePath = "D:\\BricsCAD\\Temp\\测试11.dwg";
|
listBlockDwgPath.Add(filePath);
|
||||||
//把元件的位号属性改成要绘制的位号值
|
//把元件的位号属性改成要绘制的位号值
|
||||||
var flag = General.UpdateCableNo(filePath, listLibraryTagName, tag.TagNumber, tag.IsNotDefaultSymbol, tag.TagNumber_Upper, tag.TagNumber_Lower);
|
var flag = General.UpdateCableNo(filePath, listLibraryTagName, tag.TagNumber, tag.IsNotDefaultSymbol, tag.TagNumber_Upper, tag.TagNumber_Lower);
|
||||||
|
|
||||||
//X轴:图上基点的坐标X +(接口数据元件的X + 接口数据元件的XOFF -接口数据基点的X-接口数据基点的Xoff)*比例系数
|
//X轴:图上基点的坐标X +(接口数据元件的X + 接口数据元件的XOFF -接口数据基点的X-接口数据基点的Xoff)*比例系数
|
||||||
//Y轴:图上基点的坐标Y +(接口数据元件的Yoff-接口数据基点的Yoff)*比例系数
|
//Y轴:图上基点的坐标Y +(接口数据元件的Yoff-接口数据基点的Yoff)*比例系数
|
||||||
double scale = 1;//比例系数
|
double scale = basePoint.Scale;//比例系数
|
||||||
double x = entity.X + (tag.X + double.Parse(tag.XOff) - basePoint.X - double.Parse(basePoint.XOff)) * scale;
|
double x = entity.X + (tag.X + double.Parse(tag.XOff) - basePoint.X - double.Parse(basePoint.XOff)) * scale;
|
||||||
|
AddMsg($"块X坐标计算:{entity.X}+({tag.X}+{tag.XOff}-{basePoint.X}-{basePoint.XOff})*{scale}={x}");
|
||||||
double y = entity.Y + (double.Parse(tag.YOff) - double.Parse(basePoint.XOff)) * scale;
|
double y = entity.Y + (double.Parse(tag.YOff) - double.Parse(basePoint.XOff)) * scale;
|
||||||
|
AddMsg($"块Y坐标计算:{entity.Y}+({tag.YOff}-{basePoint.XOff})*{scale}={y}");
|
||||||
|
AddMsg($"块最后坐标:{x},{y},0");
|
||||||
double z = entity.Z;
|
double z = entity.Z;
|
||||||
Point3d tagPoint = new Point3d(x, y, z);
|
Point3d tagPoint = new Point3d(x, y, z);
|
||||||
AddMsg($"元件图纸:{tag.TagNumber}, 开始添加进布置图中...");
|
AddMsg($"元件图纸:{tag.TagNumber}, 开始添加进布置图中...");
|
||||||
@ -709,9 +1217,31 @@ namespace SWS.Electrical.ViewModels
|
|||||||
{ General.SetDrawingReadOnly(dwgName, false); }
|
{ General.SetDrawingReadOnly(dwgName, false); }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else { AddMsg($"元件:{tag.TagNumber},绘制异常:{msg}"); }
|
else
|
||||||
|
{
|
||||||
|
basePoint.AutoDrawing = "已失败";
|
||||||
|
AddMsg($"元件:{tag.TagNumber},绘制异常:{msg}", false);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
if (listUpdateEnginedata.Any())
|
||||||
|
{
|
||||||
|
AddMsg($"开始批量位号关联属性,数量:{listUpdateEnginedata.Count}......");
|
||||||
|
msg = await _ServiceObjectType.UpdatePixelAndPropBatch(listUpdateEnginedata);
|
||||||
|
if (string.IsNullOrEmpty(msg))
|
||||||
|
{
|
||||||
|
AddMsg("位号关联属性成功,数量:" + listUpdateEnginedata.Count);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AddMsg($"位号关联属性失败,数量:{listUpdateEnginedata.Count},异常:{msg}", false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach (var file in listBlockDwgPath)
|
||||||
|
{
|
||||||
|
File.Delete(file);//删除缓存图块图纸文件
|
||||||
|
File.Delete(file.Replace(".dwg", ".bak"));
|
||||||
|
}
|
||||||
AddMsg("操作已完成!");
|
AddMsg("操作已完成!");
|
||||||
isDrawing = false;
|
isDrawing = false;
|
||||||
}
|
}
|
||||||
@ -720,36 +1250,26 @@ namespace SWS.Electrical.ViewModels
|
|||||||
MessageBox.Show("绘图异常:" + ex.Message);
|
MessageBox.Show("绘图异常:" + ex.Message);
|
||||||
isDrawing = false;
|
isDrawing = false;
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 打开图纸
|
/// 打开图纸
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
private async Task<string> OpenDwg(string dwgId)
|
private string OpenDwg(DtoAutoPlotLayout dto)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
||||||
string res = string.Empty;
|
string res = string.Empty;
|
||||||
string fullpath = string.Empty;
|
string fullpath = string.Empty;
|
||||||
var dwgObj = await _ServiceDrawing.GetDrawingFile(dwgId);
|
string folderpath = GlobalObject.GetDwgPath(dto.DrawingFileID);
|
||||||
var cate = await _ServiceDrawingCatalogue.GetEntity(dwgObj.DrawingCatalogueID);
|
fullpath = Path.Combine(GlobalObj.LocalWorkDir, GlobalObject.curProject.ProjectName, folderpath, $"{dto.DrawingFileName}");
|
||||||
if (cate.FullPath != cate.DrawingCatalogueID)
|
|
||||||
{
|
|
||||||
foreach (var id in cate.FullPath.Split(',').ToList())
|
|
||||||
{
|
|
||||||
cate = await _ServiceDrawingCatalogue.GetEntity(id);
|
|
||||||
fullpath += $"{cate.DrawingCatalogueName}\\";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else { fullpath = $"{cate.DrawingCatalogueName}\\"; }
|
|
||||||
fullpath += dwgObj.DrawingFileName;
|
|
||||||
fullpath = Path.Combine(GlobalObj.LocalWorkDir, GlobalObject.curProject.ProjectName, fullpath);
|
|
||||||
if (!File.Exists(fullpath))
|
if (!File.Exists(fullpath))
|
||||||
{
|
{
|
||||||
return dwgObj.DrawingFileName + ",图纸文件不存在,请先检出到本地!";
|
return dto.DrawingFileName + ",图纸文件不存在,请先检出到本地!";
|
||||||
}
|
}
|
||||||
if (dwgObj.DrawingFileName == General.GetDwgName())
|
if (dto.DrawingFileName == General.GetDwgName())
|
||||||
{
|
{
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
@ -758,12 +1278,14 @@ namespace SWS.Electrical.ViewModels
|
|||||||
{
|
{
|
||||||
General.OpenDwg(fullpath);
|
General.OpenDwg(fullpath);
|
||||||
dwgName = fullpath;
|
dwgName = fullpath;
|
||||||
|
AddMsg($"打开图纸:{dto.DrawingFileName} ");
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
General.SwitchToDocument(fullpath);
|
General.SwitchToDocument(fullpath);
|
||||||
dwgName = fullpath;
|
dwgName = fullpath;
|
||||||
|
AddMsg($"已打开图纸:{dto.DrawingFileName} ");
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -784,46 +1306,54 @@ namespace SWS.Electrical.ViewModels
|
|||||||
string tagNumber = basePoint.Tag.TagNumber;
|
string tagNumber = basePoint.Tag.TagNumber;
|
||||||
double scale = basePoint.Scale;
|
double scale = basePoint.Scale;
|
||||||
string msg = string.Empty;
|
string msg = string.Empty;
|
||||||
string tagNum = string.Empty;
|
//string tagNum = string.Empty;
|
||||||
var lsitEnginedata = await _ServiceObjectType.GetEngineDataListByTags(tagNumber);
|
//var lsitEnginedata = await _ServiceObjectType.GetEngineDataListByTags(tagNumber);
|
||||||
if (!lsitEnginedata.Any())
|
//if (!lsitEnginedata.Any())
|
||||||
|
//{
|
||||||
|
// msg = $"元件位号:{tagNumber},属性未绑定,_ServiceObjectType.GetEngineDataListByTags({tagNumber})接口无数据";
|
||||||
|
// AddMsg(msg, false);
|
||||||
|
// return msg;
|
||||||
|
//}
|
||||||
|
var enginedata = listEnginedata.FirstOrDefault(a => a.TagNumber == tagNumber);
|
||||||
|
if (enginedata == null)
|
||||||
{
|
{
|
||||||
msg = $"元件位号:{tagNumber},属性未绑定,ServiceEnginedata.GetTagPixelsById({enginedataId})接口无数据";
|
msg = $"元件位号:{tagNumber},找不到位号工程属性,无法关联属性!";
|
||||||
AddMsg(msg, false);
|
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
string objTypeId = lsitEnginedata[0].ObjectTypeID;
|
string objTypeId = enginedata.ObjectTypeID;
|
||||||
string objTypeName = lsitEnginedata[0].ObjectTypeName;
|
string objTypeName = enginedata.ObjectTypeName;
|
||||||
var objId = General.AddTagDWG(blockDwg, tagName, tagNumber, objTypeId, scale, tagPoint);
|
var objId = General.AddTagDWG(blockDwg, tagName, tagNumber, objTypeId, scale, tagPoint);
|
||||||
#region 图纸上保存图元属性
|
#region 图纸上保存图元属性
|
||||||
if (!objId.IsNull)
|
if (!objId.IsNull)
|
||||||
{
|
{
|
||||||
AddMsg($"元件已添加至图纸,句柄:{objId.Handle.ToString()}");
|
//AddMsg($"元件已添加至图纸,句柄:{objId.Handle.ToString()}");
|
||||||
AddMsg("开始关联元件属性至图纸...");
|
//RefreshUI(999, $"元件已添加至图纸,句柄:{objId.Handle.ToString()}");
|
||||||
var dwgLibrary = await _ServiceLibraryFile.GetEntity(blockDwgId);
|
//var dwgLibrary = await _ServiceLibraryFile.GetEntity(blockDwgId);
|
||||||
List<ec_enginedata_property> listPro = new List<ec_enginedata_property>();
|
List<ec_enginedata_property> listPro = new List<ec_enginedata_property>();
|
||||||
var handlid = objId.Handle.ToString();//添加图元返回的句柄
|
var handlid = objId.Handle.ToString();//添加图元返回的句柄
|
||||||
ec_enginedata item = new ec_enginedata();
|
ec_enginedata item = new ec_enginedata();
|
||||||
|
item.EngineDataID = enginedataId;
|
||||||
item.TagNumber = tagNumber;
|
item.TagNumber = tagNumber;
|
||||||
item.ObjectTypeID = objTypeId;
|
item.ObjectTypeID = objTypeId;
|
||||||
item.Layout_Block_File = dwgLibrary;
|
//item.Layout_Block_File = dwgLibrary;
|
||||||
//var result = await _ServiceObjectType.GetObjectTypePById(objTypeId);//添加属性
|
var tagInfo = listObjecttype.FirstOrDefault(a => a.ObjectTypeID == enginedata.ObjectTypeID);
|
||||||
var res = await _ServiceObjectType.GetTagInfosByTags(tagNumber);
|
if (tagInfo == null)
|
||||||
if (res.Any())
|
|
||||||
{
|
{
|
||||||
foreach (var dto in res[0].tags[0].EngineDataProperty)
|
msg = $"元件位号:{tagNumber},找不到位号属性信息,无法关联属性!";
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
foreach (var dto in tagInfo.tags[0].EngineDataProperty)
|
||||||
|
{
|
||||||
|
listPro.Add(new ec_enginedata_property()
|
||||||
{
|
{
|
||||||
listPro.Add(new ec_enginedata_property()
|
EngineDataPropertyID = dto.PropertyID,
|
||||||
{
|
PropertyName = dto.PropertyName,
|
||||||
EngineDataPropertyID = dto.PropertyID,
|
PropertyNameEN = dto.PropertyNameEN,
|
||||||
PropertyName = dto.PropertyName,
|
PropertyValue = dto.PropertyValue,
|
||||||
PropertyNameEN = dto.PropertyNameEN,
|
MeasuringUnit = dto.MeasuringUnit,
|
||||||
PropertyValue = dto.PropertyValue,
|
PropertyGID = dto.PropertyGID,
|
||||||
MeasuringUnit = dto.MeasuringUnit,
|
PropertyGroupName = dto.PropertyGroupName
|
||||||
PropertyGID = dto.PropertyGID,
|
});
|
||||||
PropertyGroupName = dto.PropertyGroupName
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
item.EngineDataProperty = listPro;
|
item.EngineDataProperty = listPro;
|
||||||
List<ec_enginedata_pixel> listPixel = new List<ec_enginedata_pixel>();
|
List<ec_enginedata_pixel> listPixel = new List<ec_enginedata_pixel>();
|
||||||
@ -831,7 +1361,7 @@ namespace SWS.Electrical.ViewModels
|
|||||||
{
|
{
|
||||||
TagNumber = tagNumber,
|
TagNumber = tagNumber,
|
||||||
DrawingFileID = dwgId,
|
DrawingFileID = dwgId,
|
||||||
LibraryFileID = dwgLibrary == null ? "" : dwgLibrary.LibraryFileID,
|
LibraryFileID = blockDwgId,// == null ? "" : dwgLibrary.LibraryFileID
|
||||||
PixelCode = handlid,
|
PixelCode = handlid,
|
||||||
ObjectTypeID = objTypeId,
|
ObjectTypeID = objTypeId,
|
||||||
ObjectTypeName = objTypeName,
|
ObjectTypeName = objTypeName,
|
||||||
@ -839,25 +1369,13 @@ namespace SWS.Electrical.ViewModels
|
|||||||
};
|
};
|
||||||
listPixel.Add(pixelDto);
|
listPixel.Add(pixelDto);
|
||||||
item.EngineDataPixel = listPixel;
|
item.EngineDataPixel = listPixel;
|
||||||
|
basePoint.TagPixelOnDwg = handlid;
|
||||||
msg = await _ServiceObjectType.UpdatePixelAndProp(item);
|
listUpdateEnginedata.Add(item);
|
||||||
if (msg != string.Empty)
|
return "";
|
||||||
{
|
|
||||||
msg = "保存元件属性至图纸异常:" + msg;
|
|
||||||
AddMsg(msg, false);
|
|
||||||
return msg;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
basePoint.TagPixelOnDwg = handlid;
|
|
||||||
AddMsg("添加元件属性至图纸成功!");
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
msg = $"元件:{blockDwg} ,添加失败";
|
msg = $"元件:{blockDwg} ,添加失败";
|
||||||
AddMsg(msg, false);
|
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
@ -891,11 +1409,14 @@ namespace SWS.Electrical.ViewModels
|
|||||||
foreach (var item in listBasePoint)
|
foreach (var item in listBasePoint)
|
||||||
{
|
{
|
||||||
item.IsSelected = IsSelectAll;
|
item.IsSelected = IsSelectAll;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
string message = string.Empty;
|
||||||
|
bool isSuccess = false;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 添加提示信息
|
/// 添加 提示信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="msg">信息</param>
|
/// <param name="msg">信息</param>
|
||||||
/// <param name="isSucc">是否成功</param>
|
/// <param name="isSucc">是否成功</param>
|
||||||
@ -903,15 +1424,23 @@ namespace SWS.Electrical.ViewModels
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
TextBlock tb = new TextBlock();
|
System.Windows.Application.Current.Dispatcher.Invoke((System.Action)(() =>
|
||||||
tb.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff") + "==>> " + msg;
|
{
|
||||||
tb.Foreground = isSucc ? Brushes.LightSeaGreen : Brushes.Red;
|
TextBlock tb = new TextBlock();
|
||||||
listMsg.Add(tb);
|
tb.Text = DateTime.Now.ToString("yyyy-MM-6dd HH:mm:ss:ffff") + "==>> " + msg;
|
||||||
|
tb.Foreground = isSucc ? Brushes.LightSeaGreen : Brushes.Red;
|
||||||
|
listMsg.Add(tb);
|
||||||
|
}));
|
||||||
|
//Task.Delay(100);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
MessageBox.Show("添加提示信息异常:" + ex.Message);
|
MessageBox.Show("添加提示信息异常:" + ex.Message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private void onReceviceMsg(MessageModel model)
|
||||||
|
{
|
||||||
|
AddMsg(model.Message, model.IsSuccess);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -420,7 +420,7 @@ namespace SWS.Electrical.ViewModels
|
|||||||
if (dwg.AutoGenerate == "已存在")
|
if (dwg.AutoGenerate == "已存在")
|
||||||
{
|
{
|
||||||
AddMsg($"当前图纸[{dwg.DrawingFileName}]的材料表已存在,跳至下一个图纸");
|
AddMsg($"当前图纸[{dwg.DrawingFileName}]的材料表已存在,跳至下一个图纸");
|
||||||
//continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (dwg.AutoGenerate == "无材料信息")
|
if (dwg.AutoGenerate == "无材料信息")
|
||||||
{
|
{
|
||||||
@ -433,7 +433,7 @@ namespace SWS.Electrical.ViewModels
|
|||||||
{
|
{
|
||||||
AddMsg($"当前图纸[{dwg.DrawingFileName}]的材料表已存在,跳至下一个图纸", false);
|
AddMsg($"当前图纸[{dwg.DrawingFileName}]的材料表已存在,跳至下一个图纸", false);
|
||||||
dwg.AutoGenerate = "已存在";
|
dwg.AutoGenerate = "已存在";
|
||||||
//continue;
|
continue;
|
||||||
}
|
}
|
||||||
var listBomGroup = await _ServicePlotBOM.GetBOMGroupInfo(dwg.DrawingFileID);
|
var listBomGroup = await _ServicePlotBOM.GetBOMGroupInfo(dwg.DrawingFileID);
|
||||||
|
|
||||||
|
@ -217,7 +217,7 @@
|
|||||||
Orientation="Horizontal">
|
Orientation="Horizontal">
|
||||||
<Button
|
<Button
|
||||||
Width="160"
|
Width="160"
|
||||||
Margin="100,0,0,0"
|
Margin="80,0,0,0"
|
||||||
Command="{Binding Command_GetBasePoint}"
|
Command="{Binding Command_GetBasePoint}"
|
||||||
Content="获取元件信息"
|
Content="获取元件信息"
|
||||||
FontSize="16" />
|
FontSize="16" />
|
||||||
@ -227,6 +227,14 @@
|
|||||||
Command="{Binding Command_StartDrawing}"
|
Command="{Binding Command_StartDrawing}"
|
||||||
Content="开始自动绘图"
|
Content="开始自动绘图"
|
||||||
FontSize="16" />
|
FontSize="16" />
|
||||||
|
<CheckBox
|
||||||
|
Margin="40,0,0,0"
|
||||||
|
HorizontalAlignment="Right"
|
||||||
|
VerticalContentAlignment="Bottom"
|
||||||
|
Content="删除已画元件再绘制"
|
||||||
|
FontSize="12"
|
||||||
|
Foreground="Red"
|
||||||
|
IsChecked="{Binding isCheckDelete, Mode=TwoWay}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<TabControl
|
<TabControl
|
||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
@ -330,6 +338,9 @@
|
|||||||
<DataTrigger Binding="{Binding AutoDrawing}" Value="已存在">
|
<DataTrigger Binding="{Binding AutoDrawing}" Value="已存在">
|
||||||
<Setter Property="Background" Value="LightYellow" />
|
<Setter Property="Background" Value="LightYellow" />
|
||||||
</DataTrigger>
|
</DataTrigger>
|
||||||
|
<DataTrigger Binding="{Binding AutoDrawing}" Value="已失败">
|
||||||
|
<Setter Property="Background" Value="Red" />
|
||||||
|
</DataTrigger>
|
||||||
</Style.Triggers>
|
</Style.Triggers>
|
||||||
</Style>
|
</Style>
|
||||||
</DataGrid.RowStyle>
|
</DataGrid.RowStyle>
|
||||||
|
@ -8,13 +8,30 @@
|
|||||||
<appender-ref ref="InfoRollingFileAppender"/>
|
<appender-ref ref="InfoRollingFileAppender"/>
|
||||||
<appender-ref ref="DebugRollingFileAppender"/>
|
<appender-ref ref="DebugRollingFileAppender"/>
|
||||||
</root>
|
</root>
|
||||||
|
<!--信息日志定义,用于收集开发调试信息-->
|
||||||
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
|
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
|
<filter type="log4net.Filter.LevelMatchFilter">
|
||||||
|
<levelToMatch value="DEBUG"/>
|
||||||
|
</filter>
|
||||||
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
|
<file value="Logs/"/>
|
||||||
|
<appendToFile value="true"/>
|
||||||
|
<maxSizeRollBackups value="100" />
|
||||||
|
<maxFileSize value="10240" />
|
||||||
|
<rollingStyle value="Date"/>
|
||||||
|
<datePattern value="yyyy-MM-dd//"Debug.log""/>
|
||||||
|
<staticLogFileName value="false"/>
|
||||||
|
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t: %m%n"/>
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
<!--一般错误日志定义,用于记录已知需处理的与未捕获的异常-->
|
<!--一般错误日志定义,用于记录已知需处理的与未捕获的异常-->
|
||||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
<filter type="log4net.Filter.LevelRangeFilter">
|
<filter type="log4net.Filter.LevelRangeFilter">
|
||||||
<levelMin value="ERROR"/>
|
<levelMin value="ERROR"/>
|
||||||
<levelMax value="FATAL"/>
|
|
||||||
</filter>
|
</filter>
|
||||||
<filter type="log4net.Filter.DenyAllFilter"/>
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
<file value="Logs/"/>
|
<file value="Logs/"/>
|
||||||
@ -29,7 +46,25 @@
|
|||||||
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
|
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
|
||||||
</layout>
|
</layout>
|
||||||
</appender>
|
</appender>
|
||||||
|
<!--严重错误日志定义,用于记录已知需处理的与未捕获的异常-->
|
||||||
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
|
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
|
<filter type="log4net.Filter.LevelRangeFilter">
|
||||||
|
<levelMax value="FATAL"/>
|
||||||
|
</filter>
|
||||||
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
|
<file value="Logs/"/>
|
||||||
|
<appendToFile value="true"/>
|
||||||
|
<maxSizeRollBackups value="100" />
|
||||||
|
<maxFileSize value="10240" />
|
||||||
|
<rollingStyle value="Date"/>
|
||||||
|
<datePattern value="yyyy-MM-dd//"Fatal.log""/>
|
||||||
|
<staticLogFileName value="false"/>
|
||||||
|
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
<!--警告日志定义,用于记录已知不需处理的异常,系统警告信息-->
|
<!--警告日志定义,用于记录已知不需处理的异常,系统警告信息-->
|
||||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
<appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
<appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
@ -70,24 +105,6 @@
|
|||||||
</layout>
|
</layout>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
<!--信息日志定义,用于收集开发调试信息-->
|
|
||||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
|
||||||
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
|
||||||
<filter type="log4net.Filter.LevelMatchFilter">
|
|
||||||
<levelToMatch value="DEBUG"/>
|
|
||||||
</filter>
|
|
||||||
<filter type="log4net.Filter.DenyAllFilter"/>
|
|
||||||
<file value="Logs/"/>
|
|
||||||
<appendToFile value="true"/>
|
|
||||||
<maxSizeRollBackups value="100" />
|
|
||||||
<maxFileSize value="10240" />
|
|
||||||
<rollingStyle value="Date"/>
|
|
||||||
<datePattern value="yyyy-MM-dd//"Debug.log""/>
|
|
||||||
<staticLogFileName value="false"/>
|
|
||||||
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
|
||||||
<layout type="log4net.Layout.PatternLayout">
|
|
||||||
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t: %m%n"/>
|
|
||||||
</layout>
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
</log4net>
|
</log4net>
|
@ -1,4 +1,4 @@
|
|||||||
#pragma checksum "..\..\..\Views\DialogAutoArrangeLayout.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "D381518E6A709FE4FD61B7B59C0FE6A02830580BBED56CC9959DA9E027AC6A01"
|
#pragma checksum "..\..\..\Views\DialogAutoArrangeLayout.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "8E0302C7B31AF0BFE57DDCDA7BD9F7E1B53C3458B14B24E3C31D70FADF66C1B2"
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// 此代码由工具生成。
|
// 此代码由工具生成。
|
||||||
@ -85,7 +85,7 @@ namespace SWS.Electrical.Views {
|
|||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
|
|
||||||
#line 237 "..\..\..\Views\DialogAutoArrangeLayout.xaml"
|
#line 245 "..\..\..\Views\DialogAutoArrangeLayout.xaml"
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
internal System.Windows.Controls.DataGrid dgTag;
|
internal System.Windows.Controls.DataGrid dgTag;
|
||||||
|
|
||||||
@ -93,7 +93,7 @@ namespace SWS.Electrical.Views {
|
|||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
|
|
||||||
#line 340 "..\..\..\Views\DialogAutoArrangeLayout.xaml"
|
#line 351 "..\..\..\Views\DialogAutoArrangeLayout.xaml"
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
internal System.Windows.Controls.DataGrid dgErrTag;
|
internal System.Windows.Controls.DataGrid dgErrTag;
|
||||||
|
|
||||||
@ -136,7 +136,7 @@ namespace SWS.Electrical.Views {
|
|||||||
case 2:
|
case 2:
|
||||||
this.dgTag = ((System.Windows.Controls.DataGrid)(target));
|
this.dgTag = ((System.Windows.Controls.DataGrid)(target));
|
||||||
|
|
||||||
#line 243 "..\..\..\Views\DialogAutoArrangeLayout.xaml"
|
#line 251 "..\..\..\Views\DialogAutoArrangeLayout.xaml"
|
||||||
this.dgTag.LoadingRow += new System.EventHandler<System.Windows.Controls.DataGridRowEventArgs>(this.dgTag_LoadingRow);
|
this.dgTag.LoadingRow += new System.EventHandler<System.Windows.Controls.DataGridRowEventArgs>(this.dgTag_LoadingRow);
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
@ -145,7 +145,7 @@ namespace SWS.Electrical.Views {
|
|||||||
case 3:
|
case 3:
|
||||||
this.dgErrTag = ((System.Windows.Controls.DataGrid)(target));
|
this.dgErrTag = ((System.Windows.Controls.DataGrid)(target));
|
||||||
|
|
||||||
#line 346 "..\..\..\Views\DialogAutoArrangeLayout.xaml"
|
#line 357 "..\..\..\Views\DialogAutoArrangeLayout.xaml"
|
||||||
this.dgErrTag.LoadingRow += new System.EventHandler<System.Windows.Controls.DataGridRowEventArgs>(this.dgTag_LoadingRow);
|
this.dgErrTag.LoadingRow += new System.EventHandler<System.Windows.Controls.DataGridRowEventArgs>(this.dgTag_LoadingRow);
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#pragma checksum "..\..\..\Views\DialogAutoArrangeLayout.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "D381518E6A709FE4FD61B7B59C0FE6A02830580BBED56CC9959DA9E027AC6A01"
|
#pragma checksum "..\..\..\Views\DialogAutoArrangeLayout.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "8E0302C7B31AF0BFE57DDCDA7BD9F7E1B53C3458B14B24E3C31D70FADF66C1B2"
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// 此代码由工具生成。
|
// 此代码由工具生成。
|
||||||
@ -85,7 +85,7 @@ namespace SWS.Electrical.Views {
|
|||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
|
|
||||||
#line 237 "..\..\..\Views\DialogAutoArrangeLayout.xaml"
|
#line 245 "..\..\..\Views\DialogAutoArrangeLayout.xaml"
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
internal System.Windows.Controls.DataGrid dgTag;
|
internal System.Windows.Controls.DataGrid dgTag;
|
||||||
|
|
||||||
@ -93,7 +93,7 @@ namespace SWS.Electrical.Views {
|
|||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
|
|
||||||
#line 340 "..\..\..\Views\DialogAutoArrangeLayout.xaml"
|
#line 351 "..\..\..\Views\DialogAutoArrangeLayout.xaml"
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
internal System.Windows.Controls.DataGrid dgErrTag;
|
internal System.Windows.Controls.DataGrid dgErrTag;
|
||||||
|
|
||||||
@ -136,7 +136,7 @@ namespace SWS.Electrical.Views {
|
|||||||
case 2:
|
case 2:
|
||||||
this.dgTag = ((System.Windows.Controls.DataGrid)(target));
|
this.dgTag = ((System.Windows.Controls.DataGrid)(target));
|
||||||
|
|
||||||
#line 243 "..\..\..\Views\DialogAutoArrangeLayout.xaml"
|
#line 251 "..\..\..\Views\DialogAutoArrangeLayout.xaml"
|
||||||
this.dgTag.LoadingRow += new System.EventHandler<System.Windows.Controls.DataGridRowEventArgs>(this.dgTag_LoadingRow);
|
this.dgTag.LoadingRow += new System.EventHandler<System.Windows.Controls.DataGridRowEventArgs>(this.dgTag_LoadingRow);
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
@ -145,7 +145,7 @@ namespace SWS.Electrical.Views {
|
|||||||
case 3:
|
case 3:
|
||||||
this.dgErrTag = ((System.Windows.Controls.DataGrid)(target));
|
this.dgErrTag = ((System.Windows.Controls.DataGrid)(target));
|
||||||
|
|
||||||
#line 346 "..\..\..\Views\DialogAutoArrangeLayout.xaml"
|
#line 357 "..\..\..\Views\DialogAutoArrangeLayout.xaml"
|
||||||
this.dgErrTag.LoadingRow += new System.EventHandler<System.Windows.Controls.DataGridRowEventArgs>(this.dgTag_LoadingRow);
|
this.dgErrTag.LoadingRow += new System.EventHandler<System.Windows.Controls.DataGridRowEventArgs>(this.dgTag_LoadingRow);
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
|
@ -38,6 +38,10 @@ namespace SWS.Model
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string PixelOnDwg { get; set; }
|
public string PixelOnDwg { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// 房间号
|
||||||
|
/// </summary>
|
||||||
|
public string RoomNo { get; set; }
|
||||||
|
/// <summary>
|
||||||
/// 比例
|
/// 比例
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double Scale { get; set; }
|
public double Scale { get; set; }
|
||||||
|
@ -23,7 +23,7 @@ namespace SWS.Service
|
|||||||
GlobalObject.client = new HttpClient()
|
GlobalObject.client = new HttpClient()
|
||||||
{
|
{
|
||||||
BaseAddress = new Uri($"http://{address}:{port}/api/"),
|
BaseAddress = new Uri($"http://{address}:{port}/api/"),
|
||||||
Timeout = TimeSpan.FromSeconds(120)
|
Timeout = TimeSpan.FromSeconds(180)
|
||||||
};
|
};
|
||||||
//}
|
//}
|
||||||
//else
|
//else
|
||||||
@ -57,9 +57,9 @@ namespace SWS.Service
|
|||||||
{
|
{
|
||||||
var uri = new Uri(GlobalObject.client.BaseAddress + requestUri);
|
var uri = new Uri(GlobalObject.client.BaseAddress + requestUri);
|
||||||
var funName = uri.Segments.Last();
|
var funName = uri.Segments.Last();
|
||||||
LoggerHelper.Current.WriteJson(funName, strJson);
|
//LoggerHelper.Current.WriteJson(funName, strJson);
|
||||||
}
|
}
|
||||||
catch { }
|
catch (Exception ex){ }
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<learunHttpRes<T>> GetAsync<T>(string requestUri)
|
public async Task<learunHttpRes<T>> GetAsync<T>(string requestUri)
|
||||||
@ -79,7 +79,7 @@ namespace SWS.Service
|
|||||||
if (response.StatusCode != HttpStatusCode.OK)
|
if (response.StatusCode != HttpStatusCode.OK)
|
||||||
{
|
{
|
||||||
string errorMsg = $"服务器地址 [{requestUri}] 获取数据失败, 返回HTTP代码:" + response.StatusCode;
|
string errorMsg = $"服务器地址 [{requestUri}] 获取数据失败, 返回HTTP代码:" + response.StatusCode;
|
||||||
LoggerHelper.Current.Error(errorMsg);
|
//LoggerHelper.Current.Error(errorMsg);
|
||||||
throw new HttpRequestException(errorMsg);
|
throw new HttpRequestException(errorMsg);
|
||||||
}
|
}
|
||||||
result = await response.Content.ReadAsStringAsync();
|
result = await response.Content.ReadAsStringAsync();
|
||||||
@ -89,14 +89,14 @@ namespace SWS.Service
|
|||||||
catch (JsonException)
|
catch (JsonException)
|
||||||
{
|
{
|
||||||
string errorMsg = $"服务器地址 [{requestUri}] 解析为{typeof(T).Name}失败,原始返回数据为: " + result;
|
string errorMsg = $"服务器地址 [{requestUri}] 解析为{typeof(T).Name}失败,原始返回数据为: " + result;
|
||||||
LoggerHelper.Current.Error(errorMsg);
|
//LoggerHelper.Current.Error(errorMsg);
|
||||||
resultObj = new learunHttpRes<T>() { code = -100, info = errorMsg };
|
resultObj = new learunHttpRes<T>() { code = -100, info = errorMsg };
|
||||||
return resultObj;
|
return resultObj;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
string errorMsg = $"接口:{requestUri}失败,异常:{ex.Message} ";
|
string errorMsg = $"接口:{requestUri}失败,异常:{ex.Message} ";
|
||||||
LoggerHelper.Current.Error(errorMsg);
|
//LoggerHelper.Current.Error(errorMsg);
|
||||||
resultObj = new learunHttpRes<T>() { code = -100, info=errorMsg };
|
resultObj = new learunHttpRes<T>() { code = -100, info=errorMsg };
|
||||||
return resultObj;
|
return resultObj;
|
||||||
}
|
}
|
||||||
@ -111,12 +111,12 @@ namespace SWS.Service
|
|||||||
//业务错误,不是http本质错误
|
//业务错误,不是http本质错误
|
||||||
default:
|
default:
|
||||||
string errorMsg = $"服务器地址 [{requestUri}] Get失败, 返回自定义代码:" + resultObj.code;
|
string errorMsg = $"服务器地址 [{requestUri}] Get失败, 返回自定义代码:" + resultObj.code;
|
||||||
LoggerHelper.Current.Error(errorMsg);
|
//LoggerHelper.Current.Error(errorMsg);
|
||||||
throw new HttpRequestException(errorMsg);
|
throw new HttpRequestException(errorMsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
LoggerHelper.Current.Info($"Get成功:{requestUri}");
|
////LoggerHelper.Current.Info($"Get成功:{requestUri}");
|
||||||
return resultObj;
|
return resultObj;
|
||||||
|
|
||||||
|
|
||||||
@ -133,7 +133,7 @@ namespace SWS.Service
|
|||||||
if (response.StatusCode != HttpStatusCode.OK)
|
if (response.StatusCode != HttpStatusCode.OK)
|
||||||
{
|
{
|
||||||
string errorMsg = $"服务器地址 [{requestUri}] 获取数据失败, 返回HTTP代码:" + response.StatusCode;
|
string errorMsg = $"服务器地址 [{requestUri}] 获取数据失败, 返回HTTP代码:" + response.StatusCode;
|
||||||
LoggerHelper.Current.Error(errorMsg);
|
//LoggerHelper.Current.Error(errorMsg);
|
||||||
throw new HttpRequestException(errorMsg);
|
throw new HttpRequestException(errorMsg);
|
||||||
}
|
}
|
||||||
result = await response.Content.ReadAsStringAsync();
|
result = await response.Content.ReadAsStringAsync();
|
||||||
@ -143,17 +143,17 @@ namespace SWS.Service
|
|||||||
catch (JsonException)
|
catch (JsonException)
|
||||||
{
|
{
|
||||||
string errorMsg = $"服务器地址 [{requestUri}] 解析为{typeof(T).Name}失败,原始返回数据为: " + result;
|
string errorMsg = $"服务器地址 [{requestUri}] 解析为{typeof(T).Name}失败,原始返回数据为: " + result;
|
||||||
LoggerHelper.Current.Error(errorMsg);
|
//LoggerHelper.Current.Error(errorMsg);
|
||||||
throw new JsonException(errorMsg);
|
throw new JsonException(errorMsg);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
string errorMsg = $"接口:{requestUri}失败,异常:{ex.Message} ";
|
string errorMsg = $"接口:{requestUri}失败,异常:{ex.Message} ";
|
||||||
LoggerHelper.Current.Error(errorMsg);
|
//LoggerHelper.Current.Error(errorMsg);
|
||||||
throw new JsonException(errorMsg);
|
throw new JsonException(errorMsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
LoggerHelper.Current.Info($"Get成功:{requestUri}");
|
//LoggerHelper.Current.Info($"Get成功:{requestUri}");
|
||||||
return resultObj;
|
return resultObj;
|
||||||
|
|
||||||
|
|
||||||
@ -184,7 +184,7 @@ namespace SWS.Service
|
|||||||
if (response.StatusCode != HttpStatusCode.OK)
|
if (response.StatusCode != HttpStatusCode.OK)
|
||||||
{
|
{
|
||||||
string errorMsg = $"服务器地址 [{requestUri}] Post数据失败, 返回HTTP代码:" + response.StatusCode;
|
string errorMsg = $"服务器地址 [{requestUri}] Post数据失败, 返回HTTP代码:" + response.StatusCode;
|
||||||
LoggerHelper.Current.Error(errorMsg);
|
//LoggerHelper.Current.Error(errorMsg);
|
||||||
throw new HttpRequestException(errorMsg);
|
throw new HttpRequestException(errorMsg);
|
||||||
}
|
}
|
||||||
result = await response.Content.ReadAsStringAsync();
|
result = await response.Content.ReadAsStringAsync();
|
||||||
@ -194,14 +194,14 @@ namespace SWS.Service
|
|||||||
catch (JsonException)
|
catch (JsonException)
|
||||||
{
|
{
|
||||||
string errorMsg = $"服务器地址 [{requestUri}] 解析为{typeof(T).Name}失败,原始返回数据为: " + result;
|
string errorMsg = $"服务器地址 [{requestUri}] 解析为{typeof(T).Name}失败,原始返回数据为: " + result;
|
||||||
LoggerHelper.Current.Error(errorMsg);
|
//LoggerHelper.Current.Error(errorMsg);
|
||||||
resultObj = new learunHttpRes<T>() { code = -100, info = errorMsg };
|
resultObj = new learunHttpRes<T>() { code = -100, info = errorMsg };
|
||||||
return resultObj;
|
return resultObj;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
string errorMsg = $"接口:{requestUri}失败,参数数据为:{strContent},异常:{ex.Message} ";
|
string errorMsg = $"接口:{requestUri}失败,参数数据为:{strContent},异常:{ex.Message} ";
|
||||||
LoggerHelper.Current.Error(errorMsg);
|
//LoggerHelper.Current.Error(errorMsg);
|
||||||
resultObj = new learunHttpRes<T>() { code = -100, info = errorMsg };
|
resultObj = new learunHttpRes<T>() { code = -100, info = errorMsg };
|
||||||
return resultObj;
|
return resultObj;
|
||||||
}
|
}
|
||||||
@ -216,12 +216,12 @@ namespace SWS.Service
|
|||||||
//业务错误,不是http本质错误
|
//业务错误,不是http本质错误
|
||||||
default:
|
default:
|
||||||
string errorMsg = $"服务器地址 [{requestUri}] Post失败, 返回自定义代码:" + resultObj.code;
|
string errorMsg = $"服务器地址 [{requestUri}] Post失败, 返回自定义代码:" + resultObj.code;
|
||||||
LoggerHelper.Current.Error(errorMsg);
|
//LoggerHelper.Current.Error(errorMsg);
|
||||||
throw new HttpRequestException(errorMsg);
|
throw new HttpRequestException(errorMsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
LoggerHelper.Current.Info($"Post成功:{requestUri}");
|
//LoggerHelper.Current.Info($"Post成功:{requestUri}");
|
||||||
return resultObj;
|
return resultObj;
|
||||||
|
|
||||||
|
|
||||||
@ -245,7 +245,7 @@ namespace SWS.Service
|
|||||||
if (response.StatusCode != HttpStatusCode.OK)
|
if (response.StatusCode != HttpStatusCode.OK)
|
||||||
{
|
{
|
||||||
string errorMsg = $"服务器地址 [{requestUri}] Post数据失败, 返回HTTP代码:" + response.StatusCode;
|
string errorMsg = $"服务器地址 [{requestUri}] Post数据失败, 返回HTTP代码:" + response.StatusCode;
|
||||||
LoggerHelper.Current.Error(errorMsg);
|
//LoggerHelper.Current.Error(errorMsg);
|
||||||
throw new HttpRequestException(errorMsg);
|
throw new HttpRequestException(errorMsg);
|
||||||
}
|
}
|
||||||
var result = await response.Content.ReadAsStringAsync();
|
var result = await response.Content.ReadAsStringAsync();
|
||||||
@ -257,10 +257,10 @@ namespace SWS.Service
|
|||||||
catch (JsonException)
|
catch (JsonException)
|
||||||
{
|
{
|
||||||
string errorMsg = $"服务器地址 [{requestUri}] 解析为 string 失败,原始返回数据为: " + result;
|
string errorMsg = $"服务器地址 [{requestUri}] 解析为 string 失败,原始返回数据为: " + result;
|
||||||
LoggerHelper.Current.Error(errorMsg);
|
//LoggerHelper.Current.Error(errorMsg);
|
||||||
throw new JsonException(errorMsg);
|
throw new JsonException(errorMsg);
|
||||||
}
|
}
|
||||||
LoggerHelper.Current.Info($"Post上传文件成功:{requestUri}");
|
//LoggerHelper.Current.Info($"Post上传文件成功:{requestUri}");
|
||||||
return resultObj;
|
return resultObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,13 +8,30 @@
|
|||||||
<appender-ref ref="InfoRollingFileAppender"/>
|
<appender-ref ref="InfoRollingFileAppender"/>
|
||||||
<appender-ref ref="DebugRollingFileAppender"/>
|
<appender-ref ref="DebugRollingFileAppender"/>
|
||||||
</root>
|
</root>
|
||||||
|
<!--信息日志定义,用于收集开发调试信息-->
|
||||||
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
|
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
|
<filter type="log4net.Filter.LevelMatchFilter">
|
||||||
|
<levelToMatch value="DEBUG"/>
|
||||||
|
</filter>
|
||||||
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
|
<file value="Logs/"/>
|
||||||
|
<appendToFile value="true"/>
|
||||||
|
<maxSizeRollBackups value="100" />
|
||||||
|
<maxFileSize value="10240" />
|
||||||
|
<rollingStyle value="Date"/>
|
||||||
|
<datePattern value="yyyy-MM-dd//"Debug.log""/>
|
||||||
|
<staticLogFileName value="false"/>
|
||||||
|
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t: %m%n"/>
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
<!--一般错误日志定义,用于记录已知需处理的与未捕获的异常-->
|
<!--一般错误日志定义,用于记录已知需处理的与未捕获的异常-->
|
||||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
<filter type="log4net.Filter.LevelRangeFilter">
|
<filter type="log4net.Filter.LevelRangeFilter">
|
||||||
<levelMin value="ERROR"/>
|
<levelMin value="ERROR"/>
|
||||||
<levelMax value="FATAL"/>
|
|
||||||
</filter>
|
</filter>
|
||||||
<filter type="log4net.Filter.DenyAllFilter"/>
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
<file value="Logs/"/>
|
<file value="Logs/"/>
|
||||||
@ -29,7 +46,25 @@
|
|||||||
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
|
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
|
||||||
</layout>
|
</layout>
|
||||||
</appender>
|
</appender>
|
||||||
|
<!--严重错误日志定义,用于记录已知需处理的与未捕获的异常-->
|
||||||
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
|
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
|
<filter type="log4net.Filter.LevelRangeFilter">
|
||||||
|
<levelMax value="FATAL"/>
|
||||||
|
</filter>
|
||||||
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
|
<file value="Logs/"/>
|
||||||
|
<appendToFile value="true"/>
|
||||||
|
<maxSizeRollBackups value="100" />
|
||||||
|
<maxFileSize value="10240" />
|
||||||
|
<rollingStyle value="Date"/>
|
||||||
|
<datePattern value="yyyy-MM-dd//"Fatal.log""/>
|
||||||
|
<staticLogFileName value="false"/>
|
||||||
|
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
<!--警告日志定义,用于记录已知不需处理的异常,系统警告信息-->
|
<!--警告日志定义,用于记录已知不需处理的异常,系统警告信息-->
|
||||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
<appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
<appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
@ -70,24 +105,6 @@
|
|||||||
</layout>
|
</layout>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
<!--信息日志定义,用于收集开发调试信息-->
|
|
||||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
|
||||||
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
|
||||||
<filter type="log4net.Filter.LevelMatchFilter">
|
|
||||||
<levelToMatch value="DEBUG"/>
|
|
||||||
</filter>
|
|
||||||
<filter type="log4net.Filter.DenyAllFilter"/>
|
|
||||||
<file value="Logs/"/>
|
|
||||||
<appendToFile value="true"/>
|
|
||||||
<maxSizeRollBackups value="100" />
|
|
||||||
<maxFileSize value="10240" />
|
|
||||||
<rollingStyle value="Date"/>
|
|
||||||
<datePattern value="yyyy-MM-dd//"Debug.log""/>
|
|
||||||
<staticLogFileName value="false"/>
|
|
||||||
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
|
||||||
<layout type="log4net.Layout.PatternLayout">
|
|
||||||
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t: %m%n"/>
|
|
||||||
</layout>
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
</log4net>
|
</log4net>
|
@ -8,13 +8,30 @@
|
|||||||
<appender-ref ref="InfoRollingFileAppender"/>
|
<appender-ref ref="InfoRollingFileAppender"/>
|
||||||
<appender-ref ref="DebugRollingFileAppender"/>
|
<appender-ref ref="DebugRollingFileAppender"/>
|
||||||
</root>
|
</root>
|
||||||
|
<!--信息日志定义,用于收集开发调试信息-->
|
||||||
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
|
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
|
<filter type="log4net.Filter.LevelMatchFilter">
|
||||||
|
<levelToMatch value="DEBUG"/>
|
||||||
|
</filter>
|
||||||
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
|
<file value="Logs/"/>
|
||||||
|
<appendToFile value="true"/>
|
||||||
|
<maxSizeRollBackups value="100" />
|
||||||
|
<maxFileSize value="10240" />
|
||||||
|
<rollingStyle value="Date"/>
|
||||||
|
<datePattern value="yyyy-MM-dd//"Debug.log""/>
|
||||||
|
<staticLogFileName value="false"/>
|
||||||
|
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t: %m%n"/>
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
<!--一般错误日志定义,用于记录已知需处理的与未捕获的异常-->
|
<!--一般错误日志定义,用于记录已知需处理的与未捕获的异常-->
|
||||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
<filter type="log4net.Filter.LevelRangeFilter">
|
<filter type="log4net.Filter.LevelRangeFilter">
|
||||||
<levelMin value="ERROR"/>
|
<levelMin value="ERROR"/>
|
||||||
<levelMax value="FATAL"/>
|
|
||||||
</filter>
|
</filter>
|
||||||
<filter type="log4net.Filter.DenyAllFilter"/>
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
<file value="Logs/"/>
|
<file value="Logs/"/>
|
||||||
@ -29,7 +46,25 @@
|
|||||||
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
|
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
|
||||||
</layout>
|
</layout>
|
||||||
</appender>
|
</appender>
|
||||||
|
<!--严重错误日志定义,用于记录已知需处理的与未捕获的异常-->
|
||||||
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
|
<appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
|
<filter type="log4net.Filter.LevelRangeFilter">
|
||||||
|
<levelMax value="FATAL"/>
|
||||||
|
</filter>
|
||||||
|
<filter type="log4net.Filter.DenyAllFilter"/>
|
||||||
|
<file value="Logs/"/>
|
||||||
|
<appendToFile value="true"/>
|
||||||
|
<maxSizeRollBackups value="100" />
|
||||||
|
<maxFileSize value="10240" />
|
||||||
|
<rollingStyle value="Date"/>
|
||||||
|
<datePattern value="yyyy-MM-dd//"Fatal.log""/>
|
||||||
|
<staticLogFileName value="false"/>
|
||||||
|
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<conversionPattern value="【%d{HH:mm:ss.fff}】 %c T%t %n%m%n"/>
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
<!--警告日志定义,用于记录已知不需处理的异常,系统警告信息-->
|
<!--警告日志定义,用于记录已知不需处理的异常,系统警告信息-->
|
||||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
||||||
<appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
<appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
||||||
@ -70,24 +105,6 @@
|
|||||||
</layout>
|
</layout>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
<!--信息日志定义,用于收集开发调试信息-->
|
|
||||||
<!--日志输出格式:[时间]:类名 线程号 消息-->
|
|
||||||
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
|
|
||||||
<filter type="log4net.Filter.LevelMatchFilter">
|
|
||||||
<levelToMatch value="DEBUG"/>
|
|
||||||
</filter>
|
|
||||||
<filter type="log4net.Filter.DenyAllFilter"/>
|
|
||||||
<file value="Logs/"/>
|
|
||||||
<appendToFile value="true"/>
|
|
||||||
<maxSizeRollBackups value="100" />
|
|
||||||
<maxFileSize value="10240" />
|
|
||||||
<rollingStyle value="Date"/>
|
|
||||||
<datePattern value="yyyy-MM-dd//"Debug.log""/>
|
|
||||||
<staticLogFileName value="false"/>
|
|
||||||
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
|
|
||||||
<layout type="log4net.Layout.PatternLayout">
|
|
||||||
<conversionPattern value="[%d{HH:mm:ss.fff}] %c T%t: %m%n"/>
|
|
||||||
</layout>
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
</log4net>
|
</log4net>
|
Loading…
x
Reference in New Issue
Block a user