휴가 신청 삭제시 로그파일에 기록되도록 함

This commit is contained in:
ChiKyun Kim
2025-10-29 10:43:28 +09:00
parent 6bd4f84192
commit 3f3a2834df
51 changed files with 1321 additions and 5365 deletions

View File

@@ -7,6 +7,7 @@ using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Net.Mail;
using System.Text;
namespace Console_SendMail
@@ -32,9 +33,9 @@ namespace Console_SendMail
var basedate = DateTime.Now;
var sd = basedate.AddDays(-15);
var ed = basedate.AddDays(-1);
var str_sd = sd.ToShortDateString();
var str_ed = ed.ToShortDateString();
var str_dt = basedate.ToShortDateString();
var str_sd = sd.ToString("yyyy-MM-dd");//ToShortDateString();
var str_ed = ed.ToString("yyyy-MM-dd");//ToShortDateString();
var str_dt = basedate.ToString("yyyy-MM-dd");
var gcodelist = DatabaseManager.getGroupListWithoutGcode("gcode", "MailForm", "gcode is not null and gcode <> 'DEV'");
@@ -111,7 +112,7 @@ namespace Console_SendMail
Dictionary<DateTime, double?> WarnList = new Dictionary<DateTime, double?>();
foreach (var dt in days.OrderBy(t => t))
{
var dtstr = dt.ToShortDateString();
var dtstr = dt.ToString("yyyy-MM-dd");
var userdata = UserDatas.Where(t => t.pdate == dtstr); //해당날짜의 데이터를 확인한다.
var hrs = 0f;
if (userdata.Any()) hrs = (float)userdata.Sum(t => t.hrs);
@@ -150,7 +151,7 @@ namespace Console_SendMail
mail_content += "<br/><table border='1' cellspacing='1' cellpadding='1'><tr><td>날짜</td><td>요일</td><td>시간</td></tr>";
foreach (var warnitem in WarnList)
{
mail_content += $"<tr><td>{warnitem.Key.ToShortDateString()}</td><td>{warnitem.Key.DayOfWeek.ToString()}</td><td>{warnitem.Value:N1}</td></tr>";
mail_content += $"<tr><td>{warnitem.Key.ToString("yyyy-MM-dd")}</td><td>{warnitem.Key.DayOfWeek.ToString()}</td><td>{warnitem.Value:N1}</td></tr>";
}
mail_content += "</table>";
@@ -173,7 +174,7 @@ namespace Console_SendMail
newdr.tolist = MailSort(mail_to, MailForm.exceptmail);
newdr.bcc = mail_bcc;
newdr.cc = MailSort(mail_cc, MailForm.exceptmailcc);
newdr.pdate = DateTime.Now.ToShortDateString();
newdr.pdate = DateTime.Now.ToString("yyyy-MM-dd");//ToShortDateString();
newdr.body = mail_body.Replace("{내용}", mail_content);
newdr.wuid = "dev";
newdr.wdate = DateTime.Now;
@@ -210,7 +211,7 @@ namespace Console_SendMail
newdr.tolist = "chikyun.kim@amkor.co.kr";
newdr.bcc = string.Empty;
newdr.cc = string.Empty;
newdr.pdate = DateTime.Now.ToShortDateString();
newdr.pdate = DateTime.Now.ToString("yyyy-MM-dd");//ToShortDateString();
newdr.body = string.Join("<br/>", NoMailList.ToList());
newdr.wuid = "dev";
newdr.wdate = DateTime.Now;
@@ -257,9 +258,9 @@ namespace Console_SendMail
//기준일자는 오늘부터 -15일이다
var sd = DateTime.Now.AddDays(-15);
var ed = DateTime.Now.AddDays(-1);
var str_sd = sd.ToShortDateString();
var str_ed = ed.ToShortDateString();
var str_dt = DateTime.Now.ToShortDateString();
var str_sd = sd.ToString("yyyy-MM-dd");
var str_ed = ed.ToString("yyyy-MM-dd");//ToShortDateString();
var str_dt = DateTime.Now.ToString("yyyy-MM-dd");//ToShortDateString();
var gcodelist = DatabaseManager.getGroupListWithoutGcode("gcode", "MailForm", "gcode is not null and gcode <> 'DEV'");
foreach (var vGcode in gcodelist)
@@ -332,7 +333,7 @@ namespace Console_SendMail
Dictionary<DateTime, double?> WarnList = new Dictionary<DateTime, double?>();
foreach (var dt in days.OrderBy(t => t))
{
var dtstr = dt.ToShortDateString();
var dtstr = dt.ToString("yyyy-MM-dd");
var userdata = UserDatas.Where(t => t.pdate == dtstr); //해당날짜의 데이터를 확인한다.
var hrs = 0f;
if (userdata.Any()) hrs = (float)userdata.Sum(t => t.hrs);
@@ -365,7 +366,7 @@ namespace Console_SendMail
//메일본문을 생성해서 진행해야함
var vmail_body = "<p>담당자별 정보</p>";
vmail_body += "<br/>조회기간 : " + sd.ToShortDateString() + "~" + ed.ToShortDateString();
vmail_body += "<br/>조회기간 : " + sd.ToString("yyyy-MM-dd") + "~" + ed.ToString("yyyy-MM-dd");
////참고데이터를 추가한다
var usergrplist = totWarnList.OrderBy(t => t.uname).GroupBy(t => t.uid).ToList();
@@ -403,7 +404,7 @@ namespace Console_SendMail
newdr.tolist = mail_to;
newdr.bcc = mail_bcc;
newdr.cc = MailSort(mail_cc, MailForm.exceptmailcc);
newdr.pdate = DateTime.Now.ToShortDateString();
newdr.pdate = DateTime.Now.ToString("yyyy-MM-dd");
newdr.body = mail_body.Replace("{내용}", vmail_body);
newdr.wuid = "dev";
newdr.wdate = DateTime.Now;
@@ -443,13 +444,13 @@ namespace Console_SendMail
var taSche = new DSMailTableAdapters.EETGW_ProjectsScheduleTableAdapter();
var vCate = "SN";
try
{
{
//기준일자는 오늘부터 -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 str_sd = sd.ToString("yyyy-MM-dd");
var str_ed = ed.ToString("yyyy-MM-dd");//ToShortDateString();
var str_dt = DateTime.Now.ToString("yyyy-MM-dd");//ToShortDateString();
var gcodelist = DatabaseManager.getGroupListWithoutGcode("gcode", "MailForm", "gcode is not null and gcode <> 'DEV'");
foreach (var vGcode in gcodelist)
@@ -544,7 +545,7 @@ namespace Console_SendMail
newdr.tolist = mail_to;// MailSort(mail_to, MailForm.exceptmail);
newdr.bcc = mail_bcc;
newdr.cc = MailSort(mail_cc, MailForm.exceptmailcc);
newdr.pdate = DateTime.Now.ToShortDateString();
newdr.pdate = DateTime.Now.ToString("yyyy-MM-dd");
newdr.body = mail_content;
newdr.wuid = "dev";// "dev";
newdr.wdate = DateTime.Now;
@@ -576,7 +577,7 @@ namespace Console_SendMail
newdr.tolist = "chikyun.kim@amkor.co.kr";
newdr.bcc = string.Empty;
newdr.cc = string.Empty;
newdr.pdate = DateTime.Now.ToShortDateString();
newdr.pdate = DateTime.Now.ToString("yyyy-MM-dd");
newdr.body = ex.Message;
newdr.wuid = "dev";// "dev";
newdr.wdate = DateTime.Now;
@@ -613,9 +614,9 @@ namespace Console_SendMail
{
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 str_sd = sd.ToString("yyyy-MM-dd");
var str_ed = ed.ToString("yyyy-MM-dd");
var str_dt = DateTime.Now.ToString("yyyy-MM-dd");
var gcodelist = DatabaseManager.getGroupListWithoutGcode("gcode", "MailForm", "gcode is not null and gcode <> 'DEV'");
foreach (var vGcode in gcodelist)
@@ -727,7 +728,7 @@ namespace Console_SendMail
newdr.tolist = mail_to;// MailSort(mail_to, MailJD.exceptmail);
newdr.bcc = mail_bcc;
newdr.cc = MailSort(mail_cc, MailForm.exceptmailcc);
newdr.pdate = DateTime.Now.ToShortDateString();
newdr.pdate = DateTime.Now.ToString("yyyy-MM-dd");
newdr.body = mail_content;
newdr.wuid = "dev";// "dev";
newdr.wdate = DateTime.Now;
@@ -759,7 +760,7 @@ namespace Console_SendMail
newdr.tolist = "chikyun.kim@amkor.co.kr";
newdr.bcc = string.Empty;
newdr.cc = string.Empty;
newdr.pdate = DateTime.Now.ToShortDateString();
newdr.pdate = DateTime.Now.ToString("yyyy-MM-dd");
newdr.body = ex.Message;
newdr.wuid = "dev";// "dev";
newdr.wdate = DateTime.Now;
@@ -802,9 +803,9 @@ namespace Console_SendMail
//기준일자는 오늘부터 -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 str_sd = sd.ToString("yyyy-MM-dd");
var str_ed = ed.ToString("yyyy-MM-dd");
var str_dt = DateTime.Now.ToString("yyyy-MM-dd");
//var gcodelist = db.MailForm.GroupBy(t => t.gcode).ToList();
@@ -913,7 +914,7 @@ namespace Console_SendMail
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.pdate = DateTime.Now.ToString("yyyy-MM-dd");
newdr.body = mail_content;
newdr.wuid = "dev";// "dev";
newdr.wdate = DateTime.Now;
@@ -946,7 +947,7 @@ namespace Console_SendMail
newdr.tolist = "chikyun.kim@amkor.co.kr";
newdr.bcc = string.Empty;
newdr.cc = string.Empty;
newdr.pdate = DateTime.Now.ToShortDateString();
newdr.pdate = DateTime.Now.ToString("yyyy-MM-dd");
newdr.body = ex.Message;
newdr.wuid = "dev";// "dev";
newdr.wdate = DateTime.Now;
@@ -991,20 +992,20 @@ namespace Console_SendMail
var gcodelist = DatabaseManager.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 str_dt = DateTime.Now.ToString("yyyy-MM-dd");
var sql = "select (select isnull(max(pdate),'') from ProjectsHistory where pidx = Projects.idx) as LastHistory," +
" idx,status,name,sdate,ddate,orderno as CR,crdue,dbo.getUserName(isnull(championid,usermanager)) as NameChampion," +
" dbo.getUserName(isnull(designid,usermain)) as NameDesign,dbo.getUserName(isnull(epanelid,userhw2)) as NameEPanel," +
" dbo.getUserName(isnull(softwareid,usersub)) as NameSoftware,championid as IdChampion,designid as IdDesign," +
" epanelid as IdEPanel,softwareid as IdSoftware " +
" from Projects where gcode = @gcode and status = '진행'" +
$" and pdate >= '{DateTime.Now.AddYears(-3).ToShortDateString()}'";
$" and pdate >= '{DateTime.Now.AddYears(-2).ToString("yyyy-MM-dd")}'";
var cs = Properties.Settings.Default.cs;
var cn = new System.Data.SqlClient.SqlConnection(cs);
var cmd = new SqlCommand(sql, cn);
@@ -1144,7 +1145,7 @@ namespace Console_SendMail
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.pdate = DateTime.Now.ToString("yyyy-MM-dd");
newdr.body = mail_content;
newdr.wuid = "dev";// "dev";
newdr.wdate = DateTime.Now;
@@ -1181,7 +1182,7 @@ namespace Console_SendMail
newdr.tolist = "chikyun.kim@amkor.co.kr";
newdr.bcc = string.Empty;
newdr.cc = string.Empty;
newdr.pdate = DateTime.Now.ToShortDateString();
newdr.pdate = DateTime.Now.ToString("yyyy-MM-dd");//.ToShortDateString();
newdr.body = ex.Message;
newdr.wuid = "dev";// "dev";
newdr.wdate = DateTime.Now;
@@ -1235,8 +1236,9 @@ namespace Console_SendMail
var body = string.Empty;//getdbdata(dar["body"]).Trim();
var idx = -1;
var pdate = string.Empty;
var developer = string.Empty;
while (dar.Read())
{
@@ -1249,6 +1251,7 @@ namespace Console_SendMail
subject = getdbdata(dar["subject"]).Trim();
body = getdbdata(dar["body"]).Trim();
idx = (int)dar["idx"];
developer = getdbdata(dar["developer"]);
}
dar.Close();
@@ -1269,7 +1272,7 @@ namespace Console_SendMail
{
sendMsg = ("받는 주소가 없습니다");
}
if (idx > 0)
{
//오류메시지가 있다면 업데이트만 한다
@@ -1306,26 +1309,98 @@ namespace Console_SendMail
else
{
//var body = getdbdata(dar["body"]);
if (String.IsNullOrEmpty(developer)) developer = "chikyun.kim@amkor.co.kr";
body +=
"<p>" +
"<br />이 메일은 EET 프로그램에서 자동 발신 되었습니다." +
"<br />메일이 잘못 전송 되었다면 [<a href='chikyun.kim@amkor.co.kr'>chikyun.kim@amkor.co.kr</a>] 로 문의 주시기 바랍니다" +
"</p>";
$"<p>" +
$"<br />이 메일은 EET 프로그램에서 자동 발신 되었습니다." +
$"<br />메일이 잘못 전송 되었다면 [<a href='{developer}'>{developer}</a>] 로 문의 주시기 바랍니다" +
$"</p>";
subject = subject.Replace("\r", "").Replace("\n", "");
body = body.Replace("\r", "").Replace("\n", "");
//전송을 해야 함
var mc = new System.Net.Mail.SmtpClient("10.101.5.150");
var msg = new System.Net.Mail.MailMessage
(list_from,
list_to,
subject,
body);
var tolist = list_to.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
var bcclist = list_bcc.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
var cclist = list_cc.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
var externalmail = false;
foreach (var item in tolist)
if (item.ToLower().EndsWith("amkor.co.kr") == false)
{
externalmail = true;
break;
}
foreach (var item in bcclist)
if (item.ToLower().EndsWith("amkor.co.kr") == false)
{
externalmail = true;
break;
}
foreach (var item in cclist)
if (item.ToLower().EndsWith("amkor.co.kr") == false)
{
externalmail = true;
break;
}
// ATK Exim 접속 정보
//ATK Exim Domain: k5lexim01.kr.ds.amkor.com
//ATK Exim IP : 10.101.2.70
//ATK Exim Port: 25, 465, 587
var sendsuccess = false;
//"10.101.5.150"
//전송을 해야 함vvmffh123123
Chilkat.MailMan mailman = null;
Chilkat.Email email = null;
SmtpClient mc = null;
MailMessage msg = null;
if (externalmail)
{
mailman = new Chilkat.MailMan();
bool success = mailman.UnlockComponent("GAMACM.CB8082024_Tz2XiNck4U5N");
if (success == false) Console.WriteLine("license errr");
mailman.SmtpHost = "k5lexim01.kr.ds.amkor.com";
mailman.SmtpPort = 25;
mailman.SmtpUsername = "bookmanager";
mailman.SmtpPassword = "BIDA19R=maga2#H9gY[JPx%~M^NyIG";
email = new Chilkat.Email();
email.Subject = subject;
email.SetHtmlBody(body);
email.From = list_from;
foreach (var item in tolist)
email.AddTo(item, item);
//bcc
foreach (var item in bcclist)
email.AddBcc(item, item);
//cc
foreach (var item in cclist)
email.AddCC(item, item);
}
else
{
mc = new System.Net.Mail.SmtpClient("10.101.5.150");
msg = new System.Net.Mail.MailMessage
(list_from,
list_to,
subject,
body);
if (list_bcc != "") msg.Bcc.Add(list_bcc);
if (list_cc != "") msg.CC.Add(list_cc);
msg.IsBodyHtml = true;
}
//success = mailman.SendEmail(email);
if (list_bcc != "") msg.Bcc.Add(list_bcc);
if (list_cc != "") msg.CC.Add(list_cc);
msg.IsBodyHtml = true;
bool msgupdate = false;
try
@@ -1342,8 +1417,26 @@ namespace Console_SendMail
var ucnt = cmd.ExecuteNonQuery();
if (ucnt == 1)
{
mc.Send(msg);
Console.WriteLine($"[{timestr}]-IDX:{idx} [{pdate}] send mail to [" + list_to + "],subject=" + getdbdata(subject));
if (mailman != null)
{
sendsuccess = mailman.SendEmail(email);
}
else
{
try
{
mc.Send(msg);
sendsuccess = true;
}
catch (Exception ex)
{
sendMsg = ex.Message;
msgupdate = true;
sendsuccess = false;
}
}
if (sendsuccess == false) Console.WriteLine("send error");
else Console.WriteLine($"[{timestr}]-IDX:{idx} [{pdate}] send mail to [" + list_to + "],subject=" + getdbdata(subject));
}
}
catch (Exception eX)
@@ -1367,7 +1460,7 @@ namespace Console_SendMail
var ucnt = cmd.ExecuteNonQuery();
}
}
catch(Exception ex)
catch (Exception ex)
{
//sendMsg = eX.Message;
//msgupdate = true;
@@ -1514,9 +1607,9 @@ namespace Console_SendMail
//기준일자는 오늘부터 -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 str_sd = sd.ToString("yyyy-MM-dd");//ToShortDateString();
var str_ed = ed.ToString("yyyy-MM-dd");//ToShortDateString();
var str_dt = DateTime.Now.ToString("yyyy-MM-dd");// ToShortDateString();
//var gcodelist = db.MailForm.GroupBy(t => t.gcode).ToList();
var cn = DatabaseManager.getCn();
@@ -1628,7 +1721,7 @@ namespace Console_SendMail
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.pdate = DateTime.Now.ToString("yyyy-MM-dd");
newdr.body = mail_content;
newdr.wuid = "dev";// "dev";
newdr.wdate = DateTime.Now;
@@ -1665,7 +1758,7 @@ namespace Console_SendMail
newdr.tolist = "chikyun.kim@amkor.co.kr";
newdr.bcc = string.Empty;
newdr.cc = string.Empty;
newdr.pdate = DateTime.Now.ToShortDateString();
newdr.pdate = DateTime.Now.ToString("yyyy-MM-dd");//ToShortDateString();
newdr.body = ex.Message;
newdr.wuid = "dev";// "dev";
newdr.wdate = DateTime.Now;