SendEmailToChairmanJob.cs 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. using Quartz;
  2. using Entity=Sugar.Enties;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using Utils;
  9. namespace PMS.NetCore.Service
  10. {
  11. /// <summary>
  12. /// 当有新的待审审批流到达董事长时向王帅发一个通知邮件
  13. /// </summary>
  14. public class SendEmailToChairmanJob : IJob
  15. {
  16. NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
  17. /// <summary>
  18. /// 当有新的待审审批流到达董事长时向王帅发一个通知邮件
  19. /// </summary>
  20. /// <param name="context"></param>
  21. /// <returns></returns>
  22. public Task Execute(IJobExecutionContext context)
  23. {
  24. return Task.Run(() =>
  25. {
  26. try
  27. {
  28. ////NlogHelper.quartzLogger.Info("开始");
  29. //var sql = $"SELECT * FROM dbo.WorkFlowAct WHERE ToTaskName LIKE '%董事长%' AND SignDate IS NULL AND FinishDate IS NULL AND NOT EXISTS(SELECT EmailHistoryCode FROM dbo.EmailHistory WHERE MasterCode=WorkFlowAct.actcode and EmailType='WorkFlowAct')";
  30. ////logger.Info($"主项计划sql:{sql}");
  31. //var manager = new WorkFlowActManager();
  32. //var unitManager = new UnitManager();
  33. //var list = manager.Db.Ado.SqlQuery<Entity.WorkFlowAct>(sql);
  34. //foreach (var item in list)
  35. //{
  36. // sql = $"SELECT * FROM dbo.WorkFlowCaseProperty WHERE WorkFlowCaseCode='{item.CaseCode}' AND (WorkFlowProcedurePropertyName='流水号' OR WorkFlowProcedurePropertyName='主题' OR WorkFlowProcedurePropertyName='项目代码')";
  37. // var list1 = manager.Db.Ado.SqlQuery<Entity.WorkFlowCaseProperty>(sql);
  38. // string liushui = "";
  39. // string zhuti = "";
  40. // string projectCode = "";
  41. // string projectName = "";
  42. // string procedureName = "";
  43. // foreach(var item1 in list1)
  44. // {
  45. // if(item1.WorkFlowProcedurePropertyName=="流水号")
  46. // {
  47. // liushui = item1.WorkFlowProcedurePropertyValue;
  48. // }
  49. // else if(item1.WorkFlowProcedurePropertyName == "主题")
  50. // {
  51. // zhuti = item1.WorkFlowProcedurePropertyValue;
  52. // }
  53. // else if (item1.WorkFlowProcedurePropertyName == "项目代码")
  54. // {
  55. // projectCode = item1.WorkFlowProcedurePropertyValue;
  56. // }
  57. // }
  58. // sql = $"SELECT ProjectName FROM dbo.Project WHERE ProjectCode='{projectCode}'";
  59. // projectName = manager.Db.Ado.GetString(sql);
  60. // sql = $"SELECT Description FROM dbo.WorkFlowProcedure WHERE ProcedureCode='{item.ProcedureCode}'";
  61. // procedureName = manager.Db.Ado.GetString(sql);
  62. // #region 给王帅发邮件
  63. // var username = "王帅";
  64. // var mailBox = "shuai.wang@chinahonden.com";
  65. // NlogHelper.quartzLogger.Info($"给{username}发邮件开始");
  66. // EmailHelper helper = new EmailHelper();
  67. // helper.Title = $"新审批流程需要董事长审批";
  68. // helper.Cont = $"流水号为{liushui},项目名称为{projectName},主题为{zhuti},流程名称为{procedureName},需要董事长审批,请查收";
  69. // helper.ReceiveEmail = mailBox;
  70. // helper.SendMail(helper);
  71. // NlogHelper.quartzLogger.Info($"给{username}发邮件结束");
  72. // #endregion
  73. // #region 发邮件后做发邮件记录,防止重复发送
  74. // var emailHistory = new Entity.EmailHistory();
  75. // emailHistory.EmailHistoryCode = unitManager.GetSysCodeValue("EmailHistory");
  76. // emailHistory.EmailType = "WorkFlowAct";
  77. // emailHistory.MasterCode = item.ActCode;
  78. // emailHistory.EmailTitle = helper.Title;
  79. // emailHistory.EmailContent = helper.Cont;
  80. // emailHistory.Sender = helper.SendEMail;
  81. // emailHistory.Receiver = helper.ReceiveEmail;
  82. // emailHistory.SendDate = DateTime.Now;
  83. // manager.Db.Insertable(emailHistory).ExecuteCommand();
  84. // #endregion
  85. //}
  86. }
  87. catch (Exception ero)
  88. {
  89. NlogHelper.quartzLogger.Error(" 给王帅发邮件执行出错:" + ero, true);
  90. }
  91. });
  92. }
  93. }
  94. }