..
This commit is contained in:
@@ -1213,6 +1213,195 @@ namespace Project
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 휴가신청(Remind)
|
||||
/// </summary>
|
||||
void Mail_Take_a_rest_remind()
|
||||
{
|
||||
|
||||
var taForm = new DSMailTableAdapters.MailFormTableAdapter();
|
||||
var taMailData = new DSMailTableAdapters.MailDataTableAdapter();
|
||||
var taMailPrjSche = new DSMailTableAdapters.vMailingProjectScheduleTableAdapter();
|
||||
var vCate = "HA";
|
||||
try
|
||||
{
|
||||
Console.WriteLine("휴가신청remind - 검출 시작");
|
||||
var gcodelist = FCOMMON.DBM.getGroupListWithoutGcode("gcode", "MailForm", "gcode is not null and gcode <> 'DEV'");
|
||||
|
||||
//var db = new EEEntities();
|
||||
|
||||
//기준일자는 오늘부터 -15일이다
|
||||
var sd = DateTime.Now.AddDays(-15);
|
||||
var ed = DateTime.Now;
|
||||
var str_sd = sd.ToShortDateString();
|
||||
var str_ed = ed.ToShortDateString();
|
||||
var str_dt = DateTime.Now.ToShortDateString();
|
||||
|
||||
//var gcodelist = db.MailForm.GroupBy(t => t.gcode).ToList();
|
||||
var cn = FCOMMON.DBM.getCn();
|
||||
cn.Open();
|
||||
var cmd = new System.Data.SqlClient.SqlCommand("", cn);
|
||||
|
||||
foreach (var vGcode in gcodelist)
|
||||
{
|
||||
//메일양식이 지정되어있는지 체크
|
||||
var MailJD = taForm.GetData(vGcode, vCate).FirstOrDefault();
|
||||
if (MailJD == null) continue;
|
||||
if (MailJD.exceptmail == null) MailJD.exceptmail = string.Empty;
|
||||
if (MailJD.exceptmailcc == null) MailJD.exceptmailcc = string.Empty;
|
||||
if (string.IsNullOrEmpty(MailJD.subject) || string.IsNullOrEmpty(MailJD.tolist)) continue;
|
||||
|
||||
//오늘날짜로 데이터가 등록되어있느지 확인한다.
|
||||
var Existweek = taMailData.GetData(vGcode, str_dt, vCate).Where(t => t.tolist.Equals("chikyun.kim@amkor.co.kr") == false && t.wuid.Equals("debug") == false).Any();
|
||||
if (Existweek) return;
|
||||
|
||||
//대상 사용자 목록을 추출한다
|
||||
var sql = "select datediff(day, getdate(),sdate ),uid,cate,sdate,edate,isnull(remark,'')" +
|
||||
" ,holydays,holytimes from EETGW_HolydayRequest " +
|
||||
$" where gcode = '{vGcode}'" +
|
||||
" and isnull(conf,0) = 0" +
|
||||
" and datediff(day, getdate(), sdate ) between - 100 and 2" +
|
||||
" order by sdate desc";
|
||||
cmd.CommandText = sql;
|
||||
var dar = cmd.ExecuteReader();
|
||||
|
||||
|
||||
//메일데이터 생성
|
||||
var body = new System.Text.StringBuilder();
|
||||
body.AppendLine("<table border='1' cellspacing='1' cellpadding='1' style='text-align:center;'>");
|
||||
body.AppendLine("<tr>");
|
||||
body.AppendLine("<td>남은일수</td>");
|
||||
body.AppendLine("<td>신청인</td>");
|
||||
body.AppendLine("<td>형태</td>");
|
||||
body.AppendLine("<td>시작일</td>");
|
||||
body.AppendLine("<td>종료일</td>");
|
||||
body.AppendLine("<td>일</td>");
|
||||
body.AppendLine("<td>시간</td>");
|
||||
body.AppendLine("<td>비고</td>");
|
||||
body.AppendLine("</tr>");
|
||||
|
||||
while (dar.Read())
|
||||
{
|
||||
var idx = 0;
|
||||
var remainday = int.Parse(dar[idx++].ToString());
|
||||
var uid = dar[idx++].ToString();
|
||||
var username = FCOMMON.DBM.GetUserName(vGcode, uid);
|
||||
var cate = dar[idx++].ToString();
|
||||
var sdate = dar[idx++].ToString();
|
||||
var edate = dar[idx++].ToString();
|
||||
var remark = dar[idx++].ToString();
|
||||
var o_days = dar[idx++];
|
||||
var o_time = dar[idx++];
|
||||
var v_days = string.Empty;
|
||||
var v_time = string.Empty;
|
||||
if (o_days != null) v_days = o_days.ToString();
|
||||
if (o_time != null) v_time = o_time.ToString();
|
||||
|
||||
body.AppendLine($"<tr>");
|
||||
body.AppendLine($"<td>{remainday}</td>");
|
||||
body.AppendLine($"<td>[{uid}] {username}</td>");
|
||||
body.AppendLine($"<td>{cate}</td>");
|
||||
body.AppendLine($"<td>{sdate}</td>");
|
||||
body.AppendLine($"<td>{edate}</td>");
|
||||
body.AppendLine($"<td>{v_days}</td>");
|
||||
body.AppendLine($"<td>{v_time}</td>");
|
||||
body.AppendLine($"<td>{remark}</td>");
|
||||
body.AppendLine("</tr>");
|
||||
}
|
||||
body.AppendLine("</table>");
|
||||
dar.Close();
|
||||
|
||||
//일별경고(월요일제외)
|
||||
var mail_subject = MailJD.subject;//.Replace("{담당자}", userinfo.name).Replace("{사번}", userinfo.id);
|
||||
var mail_to = MailJD.tolist;//.Replace("{담당자}", userinfo.email);
|
||||
var mail_cc = string.Empty; //
|
||||
if (MailJD.cc != null) mail_cc = MailJD.cc;//.Replace("{담당자}", userinfo.email);
|
||||
var mail_bcc = string.Empty;
|
||||
if (MailJD.bcc != null) mail_bcc = MailJD.bcc;//.Replace("{담당자}", userinfo.email);
|
||||
var mail_body = MailJD.body;//.Replace("{담당자}", userinfo.name);
|
||||
//mail_body = mail_body.Replace("{사번}", userinfo.id);
|
||||
|
||||
//메일본문을 생성해서 진행해야함
|
||||
var mail_content = mail_body.Replace("{data}", body.ToString());
|
||||
|
||||
//메일데이터를 생성한다.
|
||||
//mail_to = "chikyun.kim@amkor.co.kr";
|
||||
//mail_bcc = string.Empty;
|
||||
//mail_cc = string.Empty;
|
||||
|
||||
mail_to = MailSort(mail_to, MailJD.exceptmail);
|
||||
if (string.IsNullOrEmpty(mail_to) == false)
|
||||
{
|
||||
using (var dt = new DSMail.MailDataDataTable())
|
||||
{
|
||||
var newdr = dt.NewMailDataRow();
|
||||
newdr.gcode = vGcode;
|
||||
newdr.cate = vCate;
|
||||
newdr.subject = mail_subject;
|
||||
newdr.fromlist = "eetgw@amkor.co.kr";
|
||||
newdr.tolist = mail_to;// MailSort(mail_to, MailJD.exceptmail);
|
||||
newdr.bcc = mail_bcc;
|
||||
newdr.cc = MailSort(mail_cc, MailJD.exceptmailcc);
|
||||
newdr.pdate = DateTime.Now.ToShortDateString();
|
||||
newdr.body = mail_content;
|
||||
newdr.wuid = FCOMMON.info.Login.no;// "dev";
|
||||
newdr.wdate = DateTime.Now;
|
||||
|
||||
if (System.Diagnostics.Debugger.IsAttached)
|
||||
{
|
||||
newdr.tolist = "chikyun.kim@amkor.co.kr";
|
||||
newdr.bcc = string.Empty;
|
||||
newdr.cc = string.Empty;
|
||||
newdr.wuid = "debug";
|
||||
}
|
||||
newdr.EndEdit();
|
||||
dt.AddMailDataRow(newdr);
|
||||
taMailData.Update(dt);// db.SaveChanges();
|
||||
Console.WriteLine($"[{vGcode}] 메일 전송 완료(holy remind)");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cmd.Dispose();
|
||||
cn.Close();
|
||||
cn.Dispose();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
using (var dt = new DSMail.MailDataDataTable())
|
||||
{
|
||||
var newdr = dt.NewMailDataRow();
|
||||
newdr.gcode = "EET1P";
|
||||
newdr.cate = "ER";
|
||||
newdr.subject = "[ERROR] holy remind 메일작성 실패";
|
||||
newdr.fromlist = "chikyun.kim@amkor.co.kr";
|
||||
newdr.tolist = "chikyun.kim@amkor.co.kr";
|
||||
newdr.bcc = string.Empty;
|
||||
newdr.cc = string.Empty;
|
||||
newdr.pdate = DateTime.Now.ToShortDateString();
|
||||
newdr.body = ex.Message;
|
||||
newdr.wuid = FCOMMON.info.Login.no;// "dev";
|
||||
newdr.wdate = DateTime.Now;
|
||||
if (System.Diagnostics.Debugger.IsAttached)
|
||||
{
|
||||
newdr.tolist = "chikyun.kim@amkor.co.kr";
|
||||
newdr.bcc = string.Empty;
|
||||
newdr.cc = string.Empty;
|
||||
newdr.wuid = "debug";
|
||||
}
|
||||
newdr.EndEdit();
|
||||
dt.AddMailDataRow(newdr);
|
||||
var cnt = taMailData.Update(dt);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
taForm.Dispose();
|
||||
taMailData.Dispose();
|
||||
taMailPrjSche.Dispose();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user