using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Net.Mail; using System.Text; using System.Threading.Tasks; using ICSSoft.Base.Config.AppConfig; using ICSSoft.Base.Config.DBHelper; namespace ICSSoft.Frame.AutoSendMail { class AutoSendMail { static void Main(string[] args) { try { string connstring = System.Configuration.ConfigurationManager.ConnectionStrings["SysConnectionString"].ToString();//数据库链接 string days = ""; for (int i = 0; i < 2; i++) { string sql = @" select distinct d.WHCode 仓库编码, e.StorageName 仓库名称, d.BinCode 库位编码, f.StackName 库位名称, c.LotNO 条码, a.INVCODE 存货编码, b.INVNAME 存货名称, c.PRODUCTDATE 生产日期, a.EATTRIBUTE1 as 保质期, case when isnull(c.PRODUCTDATE,0)=0 then '' when isnull(a.EATTRIBUTE1,0)=0 then c.PRODUCTDATE ELSE DATEADD(day,cast(a.EATTRIBUTE1 as int),c.PRODUCTDATE) end as 到期日, a.MUSERName 维护人, d.LotQty 数量, b.INVUOM 单位, a.MTIME 维护时间 FROM dbo.ICSWareHouseLotInfo d inner join ICSITEMLot c on c.LotNO=d.LotNO inner join dbo.ICSINVInfo a on a.INVCODE=d.INVCODE inner join ICSINVENTORY b on a.INVCODE=b.INVCODE LEFT JOIN dbo.ICSStorage e ON d.WHCode=e.StorageCode left JOIN dbo.ICSStack f ON d.BinCode=f.StackCode where 1=1 and a.INVCODE<>'' and c.LotNO<>'' and d.LotQty>0 and datediff(day,DATEADD(day,cast(a.EATTRIBUTE1 as int),c.PRODUCTDATE),getdate()) BETWEEN 0 and {0}"; //7天和3天发送邮件 if (i == 0) { sql += " and ISNULL(d.IsMail1,0)=0"; days = System.Configuration.ConfigurationManager.AppSettings["MailDays1"].ToString();//天数 } else { sql += " and ISNULL(d.IsMail1,0)=1 and ISNULL(d.IsMail2,0)=0"; days = System.Configuration.ConfigurationManager.AppSettings["MailDays2"].ToString();//天数 } sql = string.Format(sql, days); DataTable dt = DBHelper.ExecuteDataset(connstring, CommandType.Text, sql).Tables[0]; if (dt == null || dt.Rows.Count == 0) continue; string html = @"
行号 | 仓库 | 库位 | 条码 | 物料编号 | 存货名称 | 数量 | 单位 | 到期日 |
---|---|---|---|---|---|---|---|---|
" + m + " | "; html += @"" + dr["仓库编码"].ToString() + " | "; html += @"" + dr["库位编码"].ToString() + " | "; html += @"" + dr["条码"].ToString() + " | "; html += @"" + dr["存货编码"].ToString() + " | "; html += @"" + dr["存货名称"].ToString() + " | "; html += @"" + dr["数量"].ToString() + " | "; html += @"" + dr["单位"].ToString() + " | "; html += @"" + dr["到期日"].ToString() + " | "; html += "