123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- using Quartz;
- using Entity=Sugar.Enties;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using WebAPIBase.Utils;
- namespace WebAPIBase.Service
- {
- /// <summary>
- /// 当有新的待审审批流到达董事长时向王帅发一个通知邮件
- /// </summary>
- public class SendEmailToChairmanJob : IJob
- {
- NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
- /// <summary>
- /// 当有新的待审审批流到达董事长时向王帅发一个通知邮件
- /// </summary>
- /// <param name="context"></param>
- /// <returns></returns>
- public Task Execute(IJobExecutionContext context)
- {
- return Task.Run(() =>
- {
- try
- {
- //NlogHelper.quartzLogger.Info("开始");
- 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')";
- //logger.Info($"主项计划sql:{sql}");
- var manager = new WorkFlowActManager();
- var unitManager = new UnitManager();
- var list = manager.Db.Ado.SqlQuery<Entity.WorkFlowAct>(sql);
- foreach (var item in list)
- {
- sql = $"SELECT * FROM dbo.WorkFlowCaseProperty WHERE WorkFlowCaseCode='{item.CaseCode}' AND (WorkFlowProcedurePropertyName='流水号' OR WorkFlowProcedurePropertyName='主题' OR WorkFlowProcedurePropertyName='项目代码')";
- var list1 = manager.Db.Ado.SqlQuery<Entity.WorkFlowCaseProperty>(sql);
- string liushui = "";
- string zhuti = "";
- string projectCode = "";
- string projectName = "";
- string procedureName = "";
- foreach(var item1 in list1)
- {
- if(item1.WorkFlowProcedurePropertyName=="流水号")
- {
- liushui = item1.WorkFlowProcedurePropertyValue;
- }
- else if(item1.WorkFlowProcedurePropertyName == "主题")
- {
- zhuti = item1.WorkFlowProcedurePropertyValue;
- }
- else if (item1.WorkFlowProcedurePropertyName == "项目代码")
- {
- projectCode = item1.WorkFlowProcedurePropertyValue;
- }
- }
- sql = $"SELECT ProjectName FROM dbo.Project WHERE ProjectCode='{projectCode}'";
- projectName = manager.Db.Ado.GetString(sql);
- sql = $"SELECT Description FROM dbo.WorkFlowProcedure WHERE ProcedureCode='{item.ProcedureCode}'";
- procedureName = manager.Db.Ado.GetString(sql);
- #region 给王帅发邮件
- var username = "王帅";
- var mailBox = "shuai.wang@chinahonden.com";
-
- NlogHelper.quartzLogger.Info($"给{username}发邮件开始");
- EmailHelper helper = new EmailHelper();
- helper.Title = $"新审批流程需要董事长审批";
- helper.Cont = $"流水号为{liushui},项目名称为{projectName},主题为{zhuti},流程名称为{procedureName},需要董事长审批,请查收";
- helper.ReceiveEmail = mailBox;
- helper.SendMail(helper);
- NlogHelper.quartzLogger.Info($"给{username}发邮件结束");
-
- #endregion
- #region 发邮件后做发邮件记录,防止重复发送
- var emailHistory = new Entity.EmailHistory();
- emailHistory.EmailHistoryCode = unitManager.GetSysCodeValue("EmailHistory");
- emailHistory.EmailType = "WorkFlowAct";
- emailHistory.MasterCode = item.ActCode;
- emailHistory.EmailTitle = helper.Title;
- emailHistory.EmailContent = helper.Cont;
- emailHistory.Sender = helper.SendEMail;
- emailHistory.Receiver = helper.ReceiveEmail;
- emailHistory.SendDate = DateTime.Now;
- manager.Db.Insertable(emailHistory).ExecuteCommand();
- #endregion
- }
- }
- catch (Exception ero)
- {
- NlogHelper.quartzLogger.Error(" 给王帅发邮件执行出错:" + ero, true);
- }
- });
- }
- }
- }
|