|
@@ -0,0 +1,138 @@
|
|
|
|
+/* ==============================================================================
|
|
|
|
+ * 功能描述:UploadReportUtil
|
|
|
|
+ * 创 建 者:Garrett
|
|
|
|
+ * 创建日期:2019/9/19 17:46:20
|
|
|
|
+ * ==============================================================================*/
|
|
|
|
+using System;
|
|
|
|
+using System.Collections.Generic;
|
|
|
|
+using System.Linq;
|
|
|
|
+using System.Text;
|
|
|
|
+using System.Threading.Tasks;
|
|
|
|
+using FWindSoft.Data;
|
|
|
|
+using SAGA.DotNetUtils.Extend;
|
|
|
|
+using SAGA.DotNetUtils.Logger;
|
|
|
|
+using SAGA.MBI.Calc;
|
|
|
|
+using SAGA.MBI.Common;
|
|
|
|
+using SAGA.MBI.DataArrange;
|
|
|
|
+using SAGA.MBI.Model;
|
|
|
|
+
|
|
|
|
+namespace SAGA.MBI.WinView.Upload
|
|
|
|
+{
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// UploadReportUtil
|
|
|
|
+ /// </summary>
|
|
|
|
+ public static class UploadReportUtil
|
|
|
|
+ {
|
|
|
|
+ private static List<string> m_ReportArray;
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 接收邮件人列表
|
|
|
|
+ /// </summary>
|
|
|
|
+ private static void InitReportArray()
|
|
|
|
+ {
|
|
|
|
+ m_ReportArray = new List<string>();
|
|
|
|
+ m_ReportArray.Add("nixiangzhaosia@163.com");
|
|
|
|
+ }
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 发送反馈
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="context"></param>
|
|
|
|
+ public static void SendReport(CalcContext context)
|
|
|
|
+ {
|
|
|
|
+ InitReportArray();
|
|
|
|
+ if (!IsNeedReport(context)) return;
|
|
|
|
+ foreach (string mail in m_ReportArray)
|
|
|
|
+ {
|
|
|
|
+ string title = GetReportTitle();
|
|
|
|
+ string content = GetReportContent(context).ToString();
|
|
|
|
+ MailLog.Log(mail,title,content);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 邮件内容
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ private static string GetReportTitle()
|
|
|
|
+ {
|
|
|
|
+ string title = $"{MBIControl.ProjectCur} 项目-因模型上传删除设备实例通知";
|
|
|
|
+ return title;
|
|
|
|
+ }
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 邮件换行需要在每行后加"."
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="sb"></param>
|
|
|
|
+ /// <param name="value"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ private static StringBuilder AppendLine2(this StringBuilder sb,string value)
|
|
|
|
+ {
|
|
|
|
+ sb.AppendLine(value);
|
|
|
|
+ sb.Append("<br/>");
|
|
|
|
+ return sb;
|
|
|
|
+ }
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 转化为邮件内容
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ private static StringBuilder GetReportContent(CalcContext context)
|
|
|
|
+ {
|
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
|
+ sb.AppendLine2($"用户: {MBIControl.ManageInfo.Person_Name}");//获取用户名
|
|
|
|
+ sb.AppendLine2($"手机号: {MBIControl.ManageInfo.Phone_Num}");
|
|
|
|
+ sb.AppendLine2("——————————概要内容————————————");
|
|
|
|
+ sb.AppendLine2($"于{DateTime.Now.ToString("yyyy-MM-dd HH:mm")}上传模型文件,删除如下设备实例:");
|
|
|
|
+ var facilitys = new List<MRevitEquipBase>();
|
|
|
|
+ facilitys.AddRange(context.MEquipments.Where(t=>t.Operator==DocumentChangedOperator.Delete));
|
|
|
|
+ facilitys.AddRange(context.MEquipmentParts.Where(t => t.Operator == DocumentChangedOperator.Delete));
|
|
|
|
+ var groups = facilitys.GroupBy(t => t.EquipClassName);
|
|
|
|
+ foreach (IGrouping<string, MRevitEquipBase> grouping in groups)
|
|
|
|
+ {
|
|
|
|
+ sb.AppendLine2($"{grouping.Key}:{grouping.Count()}个");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ int num = 0;
|
|
|
|
+ string floor = context.MFloor.ToString();
|
|
|
|
+ string building = DalProjectTree.GetBuildingFloorName(context.FloorId);
|
|
|
|
+ sb.AppendLine2("——————————详细内容————————————");
|
|
|
|
+ foreach (IGrouping<string, MRevitEquipBase> grouping in groups)
|
|
|
|
+ {
|
|
|
|
+ sb.AppendLine2($"{grouping.Key}");
|
|
|
|
+ foreach (MRevitEquipBase equipBase in grouping)
|
|
|
|
+ {
|
|
|
|
+ num++;
|
|
|
|
+ string name = "";
|
|
|
|
+ string code = "";
|
|
|
|
+ string cadid = "";
|
|
|
|
+ if (equipBase is MEquipment equip)
|
|
|
|
+ {
|
|
|
|
+ name = equip.LocalName;
|
|
|
|
+ code = equip.LocalId;
|
|
|
|
+ cadid = equip.CADID;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (equipBase is MEquipmentPart part)
|
|
|
|
+ {
|
|
|
|
+ name = part.LocalName;
|
|
|
|
+ code = part.LocalId;
|
|
|
|
+ cadid = part.CADID;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ sb.AppendLine2(
|
|
|
|
+ $"{num}、建筑:{building};楼层:{floor};设备全局id:{equipBase.Id};BIMID:{equipBase.BimID};设备本地编码:{code};设备本地名称:{name};CADID:{cadid};");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return sb;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 检查是否需要反馈
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ private static bool IsNeedReport(CalcContext context)
|
|
|
|
+ {
|
|
|
|
+ bool result =(context.MEquipments.Any(t=>t.Operator==DocumentChangedOperator.Delete)||context.MEquipmentParts.Any(t=>t.Operator==DocumentChangedOperator.Delete)) ;
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+}
|