using System; using System.Data; using System.Collections.Generic; using System.Text; using DSWeb.MvcShipping.Models.BookingConfirm; using Microsoft.Practices.EnterpriseLibrary.Data; using DSWeb.Areas.CommMng.Models; using HcUtility.Comm; using System.Web.Mvc;//ContentResult using DSWeb.TruckMng.Helper.Repository;//ModelObjectRepository using DSWeb.MvcShipping.Helper; using DSWeb.Areas.CommMng.DAL;//使用获取权限子句 using DSWeb.MvcShipping.Models.MsOpSeae; using BookingWeb.DB; using BookingWeb.DB.Model; using System.Linq; using DSWeb.MvcShipping.DAL.MsSysParamSet; using DSWeb.MvcShipping.DAL.DsSendmail; using static DSWeb.MvcShipping.Controllers.BookingConfirmController; using DSWeb.Common.DB; using DSWeb.Dispatch.DAL; using DSWeb.MvcShipping.DAL.MsOpSeaeDAL; namespace DSWeb.Areas.MvcShipping.DAL.BookingConfirm { public class BookingConfirmDAL { #region 订舱 Order 头表 static public List GetBookingList ( string strCondition,string USERID, string sort = "" ) { var strSql = new StringBuilder(); strSql.Append(getHeadListStr(strCondition, USERID)); var sortstring = DatasetSort.Getsortstring(sort); if (!string.IsNullOrEmpty(sortstring)) { strSql.Append(" order by " + sortstring); } else { strSql.Append(" order by (select max(optime) from OP_LOG where billno=ORDNO and JsonValue like '%\"BSSTATUS\":\"Submit\"%') desc "); } return SetBookingData(strSql, USERID); } /* public static BookingConfirmmb GetBookingData(string condition, string USERID) { var dataList = GetBookingList(condition, USERID); var result = new BookingConfirmmb(); if (dataList.Count > 0) { result = dataList[0]; } return result; } */ public static string getHeadListStr(string condition, string USERID) { string sql = BookingConfirmmb.getSQL() ; //var rangestr = BasicDataRefDAL.GetVisableRange("modBookingConfirm", USERID, "COMPANYID", "CREATEUSER", "DEPTID"); var CLIENT_ID = EntityDA.T_ALL_DA.GetSQL_str("PARAMVALUE", "select top 1 PARAMVALUE from sys_param_set where PARAMNAME='Booking_CLIENT_GID' "); sql += " and userid in (select GID from sys_user where CLIENT_ID='"+ CLIENT_ID + "') and BSSTATUS in('Submit','Confirm','Back') "; if (!string.IsNullOrEmpty(condition)) { sql += " and " + condition; } return sql; } private static List SetBookingData(StringBuilder strSql,string USERID)//, List fieldlist { var headList = new List(); //此处使用webconfig中的 booking内定义的订舱平台地址 Database db = DatabaseFactory.CreateDatabase("BookingDB"); string sql = strSql.ToString(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, sql)) { while (reader.Read()) { ////根据字段名设定同名属性值 BookingConfirmmb data = new BookingConfirmmb(); data.SetExtendValue(reader); headList.Add(data); } reader.Close(); } return headList; } #endregion #region 集装箱表 明细表 static public List GetCtnList(string strCondition, string sort = "") { var strSql = new StringBuilder(); strSql.Append(getCtnListStr(strCondition)); var sortstring = DatasetSort.Getsortstring(sort); if (!string.IsNullOrEmpty(sortstring)) { strSql.Append(" order by " + sortstring); } else { strSql.Append(" order by CTNALL "); } return SetCtnData(strSql); } public static Booking_Ctnmb GetCtnData(string condition) { var dataList = GetCtnList(condition); var result = new Booking_Ctnmb(); if (dataList.Count > 0) { result = dataList[0]; } return result; } public static string getCtnListStr(string condition) { string sql = Booking_Ctnmb.getSQL(); if (!string.IsNullOrEmpty(condition)) { sql += " where " + condition; } return sql; } private static List SetCtnData(StringBuilder strSql)//, List fieldlist { var headList = new List(); //此处使用webconfig中的 booking内定义的订舱平台地址 Database db = DatabaseFactory.CreateDatabase("BookingDB"); string sql = strSql.ToString(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, sql)) { while (reader.Read()) { ////根据字段名设定同名属性值 Booking_Ctnmb data = new Booking_Ctnmb(); data.SetExtendValue(reader); headList.Add(data); } reader.Close(); } return headList; } #endregion #region 集装箱装箱明细表 明细表 static public List GetCtnDetailList(string strCondition, string USERID, string sort = "") { var strSql = new StringBuilder(); strSql.Append(GetCtnDetailListStr(strCondition, USERID)); var sortstring = DatasetSort.Getsortstring(sort); if (!string.IsNullOrEmpty(sortstring)) { strSql.Append(" order by " + sortstring); } else { //strSql.Append(" order by CTNALL "); } return SetCtnDetailData(strSql, USERID); } public static Booking_CtnDetailmb GetCtnDetailData(string condition, string USERID) { var dataList = GetCtnDetailList(condition, USERID); var result = new Booking_CtnDetailmb(); if (dataList.Count > 0) { result = dataList[0]; } return result; } public static string GetCtnDetailListStr(string condition, string USERID) { string sql = Booking_CtnDetailmb.getSQL(); if (!string.IsNullOrEmpty(condition)) { sql += " where " + condition; } return sql; } private static List SetCtnDetailData(StringBuilder strSql, string USERID)//, List fieldlist { var headList = new List(); //此处使用webconfig中的 booking内定义的订舱平台地址 Database db = DatabaseFactory.CreateDatabase("BookingDB"); string sql = strSql.ToString(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, sql)) { while (reader.Read()) { ////根据字段名设定同名属性值 Booking_CtnDetailmb data = new Booking_CtnDetailmb(); data.SetExtendValue(reader); headList.Add(data); } reader.Close(); } return headList; } #endregion #region 集装箱表 明细表 static public List GetSICtnList(string strCondition, string sort = "") { var strSql = new StringBuilder(); strSql.Append(getSICtnListStr(strCondition)); var sortstring = DatasetSort.Getsortstring(sort); if (!string.IsNullOrEmpty(sortstring)) { strSql.Append(" order by " + sortstring); } else { strSql.Append(" order by CTNALL "); } return SetSICtnData(strSql); } public static Booking_SICtnmb GetSICtnData(string condition) { var dataList = GetSICtnList(condition); var result = new Booking_SICtnmb(); if (dataList.Count > 0) { result = dataList[0]; } return result; } public static string getSICtnListStr(string condition) { string sql = Booking_SICtnmb.getSQL(); if (!string.IsNullOrEmpty(condition)) { sql += " where " + condition; } return sql; } private static List SetSICtnData(StringBuilder strSql)//, List fieldlist { var headList = new List(); //此处使用webconfig中的 booking内定义的订舱平台地址 Database db = DatabaseFactory.CreateDatabase("BookingDB"); string sql = strSql.ToString(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, sql)) { while (reader.Read()) { ////根据字段名设定同名属性值 Booking_SICtnmb data = new Booking_SICtnmb(); data.SetExtendValue(reader); headList.Add(data); } reader.Close(); } return headList; } #endregion #region 集装箱装箱明细表 明细表 static public List GetSICtnDetailList(string strCondition, string USERID, string sort = "") { var strSql = new StringBuilder(); strSql.Append(GetSICtnDetailListStr(strCondition, USERID)); var sortstring = DatasetSort.Getsortstring(sort); if (!string.IsNullOrEmpty(sortstring)) { strSql.Append(" order by " + sortstring); } else { //strSql.Append(" order by CTNALL "); } return SetSICtnDetailData(strSql, USERID); } public static Booking_SICtnDetailmb GetSICtnDetailData(string condition, string USERID) { var dataList = GetSICtnDetailList(condition, USERID); var result = new Booking_SICtnDetailmb(); if (dataList.Count > 0) { result = dataList[0]; } return result; } public static string GetSICtnDetailListStr(string condition, string USERID) { string sql = Booking_SICtnDetailmb.getSQL(); if (!string.IsNullOrEmpty(condition)) { sql += " where " + condition; } return sql; } private static List SetSICtnDetailData(StringBuilder strSql, string USERID)//, List fieldlist { var headList = new List(); //此处使用webconfig中的 booking内定义的订舱平台地址 Database db = DatabaseFactory.CreateDatabase("BookingDB"); string sql = strSql.ToString(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, sql)) { while (reader.Read()) { ////根据字段名设定同名属性值 Booking_SICtnDetailmb data = new Booking_SICtnDetailmb(); data.SetExtendValue(reader); headList.Add(data); } reader.Close(); } return headList; } #endregion #region 提单确认表 头表//截单对比中的本地数据 static public List GetBooking_SIList(string strCondition, string USERID, string sort = "") { var strSql = new StringBuilder(); strSql.Append(getBooking_SIListStr(strCondition, USERID)); var sortstring = DatasetSort.Getsortstring(sort); if (!string.IsNullOrEmpty(sortstring)) { strSql.Append(" order by " + sortstring); } else { strSql.Append(" order by (select max(optime) from OP_LOG where billno=SINO and JsonValue like '%\"BSSTATUS\":\"Submit\"%') "); } return SetSIData(strSql, USERID); } public static Booking_OP_SEAE_SImb GetBooking_SIData(string condition, string USERID) { var dataList = GetBooking_SIList(condition, USERID); var result = new Booking_OP_SEAE_SImb(); if (dataList.Count > 0) { result = dataList[0]; } return result; } public static string getBooking_SIListStr(string condition, string USERID) { string sql = Booking_OP_SEAE_SImb.getSQL(); string _condition = " BSSTATUS <>'Create' "; sql += " where " + _condition; var CLIENT_ID = EntityDA.T_ALL_DA.GetSQL_str("PARAMVALUE", "select top 1 PARAMVALUE from sys_param_set where PARAMNAME='Booking_CLIENT_GID' "); sql += " and userid in (select GID from sys_user where CLIENT_ID='" + CLIENT_ID + "') and BSSTATUS in('Submit','Confirm','Reject')"; if (!string.IsNullOrEmpty(condition)) { sql += " and " + condition; } return sql; } private static List SetSIData(StringBuilder strSql, string USERID)//, List fieldlist { var headList = new List(); //此处使用webconfig中的 booking内定义的订舱平台地址 Database db = DatabaseFactory.CreateDatabase("BookingDB"); string sql = strSql.ToString(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, sql)) { while (reader.Read()) { ////根据字段名设定同名属性值 Booking_OP_SEAE_SImb data = new Booking_OP_SEAE_SImb(); data.SetExtendValue(reader); headList.Add(data); } reader.Close(); } return headList; } #endregion #region 获取字段列表:存在于op_seae,不存在于op_seae_billmanage,且在“需要同步”的范围之内 /// /// 获取字段列表:存在于op_seae,不存在于op_seae_billmanage,且在“需要同步”的范围之内 /// /// /// public static List GetMoreField(List HeadSIFieldList) { //最初为数据库比较 后改为固定范围 //var noexistfieldList = SetNoExistList(); var noexistfieldList = new List(); var SIREMARK = new DiffFieldmb("SIREMARK", ""); noexistfieldList.Add(SIREMARK); var COPYNOBILL = new DiffFieldmb("COPYNOBILL", ""); noexistfieldList.Add(COPYNOBILL); var ISCONTAINERSOC = new DiffFieldmb("ISCONTAINERSOC", ""); noexistfieldList.Add(ISCONTAINERSOC); var result = new List(); foreach (var item in HeadSIFieldList) { foreach (var field in noexistfieldList) { if (item.FieldName == field.FieldName) { result.Add(item); continue; } } } return result; } private static List SetNoExistList() { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); string sql = " Select name from syscolumns Where ID=OBJECT_ID('op_seae') and name not in (select name from syscolumns Where ID = OBJECT_ID('op_seae_billmanage')) "; using (IDataReader reader = db.ExecuteReader(CommandType.Text, sql)) { while (reader.Read()) { ////根据字段名设定同名属性值 DiffFieldmb data = new DiffFieldmb(Convert.ToString(reader["name"]),""); //data.FieldName= Convert.ToString(reader["name"]); headList.Add(data); } reader.Close(); } return headList; } #endregion /// /// 向Booking.Op_seae_order写入数据 /// /// /// private BookingDB bookingDB = new BookingDB(); public static DBResult SavetoBooking(MsOpSeae head,string CORPNAME) { var bookingDB = new BookingDB(); var result = new DBResult(false, "", null); OP_SEAE_ORDER model = bookingDB.Orders.First(o => o.BSNO == head.BSNO); model.MBLNO = head.MBLNO; model.VESSEL = head.VESSEL; model.VOYNO = head.VOYNO; model.YARD = head.YARD; if(!string.IsNullOrWhiteSpace(head.ETD)) model.ETD = Convert.ToDateTime( head.ETD); if (!string.IsNullOrWhiteSpace(head.CLOSINGDATE)) model.CLOSINGDATE = Convert.ToDateTime(head.CLOSINGDATE); if (!string.IsNullOrWhiteSpace(head.CLOSEDOCDATE)) model.CLOSEDOCDATE = Convert.ToDateTime(head.CLOSEDOCDATE); model.VESSELID = head.VESSELID; model.CARRIER = head.CARRIER; var _r = bookingDB.SaveChanges(); if (_r>0) { //保存日志 var viewModel = OrderEditViewModelExt.AsEditViewModel(model); LogHelper.Log(OpLogModule.Order, OpLogType.Save, model.ORDNO, model.MBLNO,model.CORPID,CORPNAME, Newtonsoft.Json.JsonConvert.SerializeObject(viewModel)); } return result; } /// /// 判断Booking.OP_seae_order的状态是否能进行指定变化 /// /// /// /// public static DBResult Order_CanConfirm(string BSNO, string STATUS) { var bookingDB = new BookingDB(); var result = new DBResult(false, "", null); if (string.IsNullOrEmpty(BSNO)) { result.Success = true; return result; } OP_SEAE_ORDER model = bookingDB.Orders.First(o => o.BSNO == BSNO); //if (DoingOrder.IsDoing(model.ORDERNO)) //{ // result.Message = "该业务正在处理,请刷新后重试"; // return result; //} //else //{ // DoingOrder.Add(model.ORDERNO); //} var Confirms = bookingDB.Confirms.Where(o => o.ORDNO == model.ORDNO && (o.BSSTATUS == OrderStatus.Submit.ToString() || o.BSSTATUS == OrderStatus.Confirm.ToString())); if (Confirms.Count() > 0) { result.Message = "已经开始截单的订舱业务不能更改订舱状态"; return result; } if ( //提交状态 确认 (model.BSSTATUS == OrderStatus.Submit.ToString() && STATUS == OrderStatus.Confirm.ToString()) || //提交或确认状态 驳回 ((model.BSSTATUS == OrderStatus.Confirm.ToString() || model.BSSTATUS == OrderStatus.Submit.ToString()) && STATUS == OrderStatus.Back.ToString()) ) { result.Success = true; return result; } //if (STATUS == OrderStatus.Confirm.ToString()) { // //确认时 查看本地是否有相同委托编号的业务 // //var cdc = new CommonDataContext(); // var opseae = DSWeb.MvcShipping.DAL.MsOpSeaeDAL.MsOpSeaeDAL.GetData(" ORDERNO='"+ model.ORDERNO + "' "); // if (opseae != null && opseae.ORDERNO == model.ORDERNO) { // //说明当前已有该订舱编号的业务 返回错误 // result.Success = false; // result.Message = $"已有该订舱编号【{model.ORDERNO}】的业务"; // } //} result.Message="当前状态不能进行此操作"; return result; } /// /// 更改Booking.Op_Seae_Order的状态 /// 如果需要的话 对Booking.OP_STATUS_LOG进行操作 /// /// /// /// public static DBResult BookingStatus_Order(OP_SEAE_ORDER model, string STATUS, string CORPNAME) { var bookingDB = new BookingDB(); var result = new DBResult(false, "", null); //OP_SEAE_ORDER model = bookingDB.Orders.FirstOrDefault(o => o.BSNO == BSNO); //1.Confirm if (STATUS == OrderStatus.Confirm.ToString()) { OP_STATUS_LOG confirmlog = new OP_STATUS_LOG(); confirmlog.GID = System.Guid.NewGuid().ToString(); confirmlog.RELATIVE_ID = model.ORDNO; confirmlog.STATUS = OrderLogStatus.OrderConfirm.ToString(); confirmlog.OP_TIME = System.DateTime.Now; confirmlog.OP_USER = CORPNAME; bookingDB.StatusLogs.Add(confirmlog); } //statusLogs = bookingDB.StatusLogs.Where(o => o.RELATIVE_ID == model.ORDNO && o.STATUS == OrderLogStatus.OrderSubmit.ToString()); //2.Back if (STATUS == OrderStatus.Back.ToString()) { bookingDB.StatusLogs.RemoveRange(bookingDB.StatusLogs.Where(o => o.RELATIVE_ID == model.ORDNO && (o.STATUS == OrderLogStatus.OrderSubmit.ToString() || o.STATUS == OrderLogStatus.OrderConfirm.ToString()))); result.Success = true; } //model.BSSTATUS = STATUS; var _r = bookingDB.SaveChanges(); if (_r > 1) { result.Success = true; } return result; } /// /// 写回订舱网站端的订舱状态 /// /// /// /// /// /// public static DBResult BookingStatus_Order(string ORDNO, string BSNO, string STATUS, string CORPNAME,string OPEmail="") { var bookingDB = new BookingDB(); OP_SEAE_ORDER model = bookingDB.Orders.FirstOrDefault(o => o.ORDNO == ORDNO); model.BSNO = BSNO; model.BSSTATUS = STATUS;//写回订舱状态 if (STATUS== OrderStatus.Confirm.ToString()) { model.EMAIL = OPEmail; } bookingDB.SaveChanges(); return BookingStatus_Order(model, STATUS, CORPNAME); } /// /// 判断Booking.OP_seae_order的状态是否能进行指定变化 /// /// /// /// public static DBResult SI_CanConfirm(string SINO, string ConfirmStatus) { var result = new DBResult(false, "", null); var bookingDB = new BookingDB(); var confirm = bookingDB.Confirms.FirstOrDefault(o => o.SINO == SINO); OP_SEAE_ORDER model = bookingDB.Orders.First(o => o.ORDNO == confirm.ORDNO); var Confirms = bookingDB.Confirms.Where(o => o.ORDNO == confirm.ORDNO); if (ConfirmStatus == OrderConfirmStatus.Reject.ToString()) { if (confirm.BSSTATUS == OrderConfirmStatus.Confirm.ToString()) { result.Message = "已经确认的截单不能再驳回"; return result; } } if (confirm.BSSTATUS != OrderConfirmStatus.Submit.ToString()) { result.Message = "当前状态不能进行此操作"; return result; } result.Success = true; return result; } /// /// 对Booking.Op_Seae_SI进行状态变更操作 /// /// /// /// /// public static DBResult BookingStatus_Confirm(string SINO,string ConfirmStatus, string CORPNAME,string USERID="") { var result = new DBResult(false, "", null); var bookingDB = new BookingDB(); var confirm = bookingDB.Confirms.FirstOrDefault(o => o.SINO == SINO); OP_SEAE_ORDER model = bookingDB.Orders.First(o => o.ORDNO == confirm.ORDNO); var Confirms = bookingDB.Confirms.Where(o => o.ORDNO == confirm.ORDNO).ToList(); if (ConfirmStatus == OrderConfirmStatus.Reject.ToString()) { //if (confirm.BSSTATUS == OrderConfirmStatus.Confirm.ToString()) { // result.Message = "已经确认的截单不能再驳回"; // return result; //} confirm.BSSTATUS = OrderConfirmStatus.Reject.ToString(); model.SISTATUS = OrderConfirmStatus.Reject.ToString(); //if (Confirms.Where(o => o.BSSTATUS == OrderConfirmStatus.Reject.ToString()).Count() > 0) //{ bookingDB.StatusLogs.RemoveRange(bookingDB.StatusLogs.Where(o => o.RELATIVE_ID == confirm.ORDNO && (o.STATUS == OrderLogStatus.ConfirmSubmit.ToString() || o.STATUS == OrderLogStatus.ConfirmConfirm.ToString()))); //} bookingDB.SaveChanges(); result.Success = true; } if (ConfirmStatus == OrderConfirmStatus.Confirm.ToString()) { confirm.BSSTATUS = OrderConfirmStatus.Confirm.ToString(); bookingDB.SaveChanges(); if (Confirms.Where(o => o.BSSTATUS == OrderConfirmStatus.Confirm.ToString()).Count() == Confirms.Count()) { OP_STATUS_LOG confirmlog = new OP_STATUS_LOG(); confirmlog.GID = System.Guid.NewGuid().ToString(); confirmlog.RELATIVE_ID = confirm.ORDNO; confirmlog.STATUS = OrderLogStatus.ConfirmConfirm.ToString(); confirmlog.OP_TIME = System.DateTime.Now; confirmlog.OP_USER = CORPNAME; bookingDB.StatusLogs.Add(confirmlog); model.SISTATUS = OrderConfirmStatus.Confirm.ToString(); } try { bookingDB.SaveChanges(); } catch(Exception e) { } result.Success = true; } return result; } #region 订舱 邮件 /// /// ORDNO ,TYPE类型(订舱确认/驳回订舱) /// /// /// /// public static DBResult SendMail_Order(string ORDNO, string TYPE, string REASON, string EMAIL, string USERID,string COMPANYNAME,MsOpSeae headData=null) { DBResult result = new DBResult(true, "", null); var bookingDB = new BookingDB(); var Order = bookingDB.Orders.FirstOrDefault(o => o.ORDNO == ORDNO); var mailtopic = TYPE + ":" + Order.ORDERNO+"|"+ Order.CARRIER+"|ETD:"+Order.ETD+"|"+Order.CNTRTOTAL+"|"+ Order.PORTDISCHARGE; //var userlist = MsBaseInfoDAL.MsBaseInfoDAL.GetUserBaseList("USERID='" + userid + "'"); //var tel = ""; //var email = ""; var SENDEREMAIL = ""; var qq = ""; var p = BasicDataRefDAL.GetPhoneWithUserId(USERID, out SENDEREMAIL, out qq); var mailbody = "订舱公司:" + COMPANYNAME + "
" + "订舱编号:" + Order.ORDERNO + "
" + "ETD:" + Order.ETD + "
" + "船公司:" + Order.CARRIER + "
" + "箱型箱量:" + Order.CNTRTOTAL + "
" + "卸货港:" + Order.PORTDISCHARGE + "
"; if (!string.IsNullOrEmpty(REASON)) mailbody += "" + REASON + "
"; if (headData != null) { mailbody += getmailinfo(headData.OP,headData.SERVICE,headData.SALE); } mailbody += "发送邮箱:" + SENDEREMAIL; mailbody+= "
" + "
" + "
" + "

本邮件为 " + COMPANYNAME + " 工作平台自动发送,请勿回复

"; //string toNames = "frank,lee"; var MAILTONAME = "dongshengcangdan@h8j.top";//"admin@dongshengsoft.com"; var PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILTONAME'"); if (PARAMVALUE.PARAMVALUE != "") MAILTONAME = PARAMVALUE.PARAMVALUE; var MAILTOPASSWORD = "A1B2C3ds040201";//"ds!@#)(*"; PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILTOPASSWORD'"); if (PARAMVALUE.PARAMVALUE != "") MAILTOPASSWORD = PARAMVALUE.PARAMVALUE; var MAILTOSERVER = "smtpdm.aliyun.com";// "smtpcom.263xmail.com"; PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILTOSERVER'"); if (PARAMVALUE.PARAMVALUE != "") MAILTOSERVER = PARAMVALUE.PARAMVALUE; var MAILTOPORT = "80";// "465"; PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILTOPORT'"); if (PARAMVALUE.PARAMVALUE != "") MAILTOPORT = PARAMVALUE.PARAMVALUE; var MAILISSSL = false; PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILISSSL'"); if (PARAMVALUE.PARAMVALUE == "1") MAILISSSL = true; SendEmail se = new SendEmail(EMAIL, MAILTONAME, "", "", mailtopic, mailbody, true); // SendEmail se = new SendEmail("dev001@dongshengsoft.com", "admin@dongshengsoft.com", "", "", mailtopic, mailbody, false); try { se.SetSmtp_thread(MAILTONAME, MAILTOPASSWORD, MAILTOSERVER, Convert.ToInt32(MAILTOPORT), MAILISSSL, System.Net.Mail.MailPriority.Normal); } catch (Exception e) { se.SetSmtp_thread(MAILTONAME, MAILTOPASSWORD, MAILTOSERVER, Convert.ToInt32(MAILTOPORT), MAILISSSL, System.Net.Mail.MailPriority.Normal); } result.Success = true; result.Message = ""; return result; } public static DBResult SendMail_SI(string SINO, string TYPE, string REASON,MsOpSeae headData, string EMAIL, string USERID, string COMPANYNAME) { DBResult result = new DBResult(true, "", null); var bookingDB = new BookingDB(); var SI = bookingDB.Confirms.FirstOrDefault(o => o.SINO == SINO); var mailtopic = TYPE + " MBLNO:" + SI.MBLNO+"|" + SI.CARRIER + "|ETD:" + SI.ETD + "|"+SI.CNTRTOTAL+"|" + SI.PORTDISCHARGE; ; //var userlist = MsBaseInfoDAL.MsBaseInfoDAL.GetUserBaseList("USERID='" + userid + "'"); //var tel = ""; //var email = ""; var SENDEREMAIL = ""; var qq = ""; var p = BasicDataRefDAL.GetPhoneWithUserId(USERID, out SENDEREMAIL, out qq); //if (!string.IsNullOrWhiteSpace(REASON)) { // REASON = "原因:" + "
" + REASON; //} //var mailbody = "公司:" + COMPANYNAME + "\r\n" + "MBLNO:" + SI.MBLNO + "\r\n" + "订舱编号:" + SI.ORDERNO + "\r\n" + "卸货港:" + SI.PORTDISCHARGE + "\r\n" + "ETD:" + SI.ETD + "\r\n" + "" + REASON + "\r\n" + "邮箱:" + SENDEREMAIL; var mailbody = "
" + "MBLNO:" + SI.MBLNO + "
" + "订舱编号:" + SI.ORDERNO + "
" + "卸货港:" + SI.PORTDISCHARGE + "
" + "ETD:" + SI.ETD + "
"; if (!string.IsNullOrWhiteSpace(REASON)) { mailbody += "原因:" + "
" + REASON + "
"; if (headData != null) { mailbody += getmailinfo(headData.OP, headData.SERVICE, headData.SALE); } } mailbody += "" + REASON + ""; mailbody += "
" + "
" + "
" + "

本邮件为 " + COMPANYNAME + " 工作平台自动发送,请勿回复

"; //string toNames = "frank,lee"; var MAILTONAME = "admin@dongshengsoft.com"; var PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILTONAME'"); if (PARAMVALUE.PARAMVALUE != "") MAILTONAME = PARAMVALUE.PARAMVALUE; var MAILTOPASSWORD = "ds!@#)(*"; PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILTOPASSWORD'"); if (PARAMVALUE.PARAMVALUE != "") MAILTOPASSWORD = PARAMVALUE.PARAMVALUE; var MAILTOSERVER = "smtpcom.263xmail.com"; PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILTOSERVER'"); if (PARAMVALUE.PARAMVALUE != "") MAILTOSERVER = PARAMVALUE.PARAMVALUE; var MAILTOPORT = "465"; PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILTOPORT'"); if (PARAMVALUE.PARAMVALUE != "") MAILTOPORT = PARAMVALUE.PARAMVALUE; var MAILISSSL = false; PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILISSSL'"); if (PARAMVALUE.PARAMVALUE == "1") MAILISSSL = true; SendEmail se = new SendEmail(EMAIL, MAILTONAME, "", "", mailtopic, mailbody, true); // SendEmail se = new SendEmail("dev001@dongshengsoft.com", "admin@dongshengsoft.com", "", "", mailtopic, mailbody, false); try { se.SetSmtp_thread(MAILTONAME, MAILTOPASSWORD, MAILTOSERVER, Convert.ToInt32(MAILTOPORT), MAILISSSL, System.Net.Mail.MailPriority.Normal); } catch (Exception e) { se.SetSmtp_thread(MAILTONAME, MAILTOPASSWORD, MAILTOSERVER, Convert.ToInt32(MAILTOPORT), MAILISSSL, System.Net.Mail.MailPriority.Normal); } result.Success = true; result.Message = ""; return result; } /// /// /// /// 操作 /// 客服 /// 销售 /// private static string getmailinfo(string opname,string servicename,string salename) { var qq = ""; var result = ""; if(!string.IsNullOrWhiteSpace(opname)) result += "操作:" + getmailinfo(opname); if (!string.IsNullOrWhiteSpace(servicename)) result += "客服:" + getmailinfo(servicename); if (!string.IsNullOrWhiteSpace(salename)) result += "销售:" + getmailinfo(salename); return result = ""; } private static string getmailinfo(string showname) { var qq = ""; var result = ""; var name = showname; var mail = ""; var tel = BasicDataRefDAL.GetPhoneWithUserId(name, out mail, out qq); return name + "< >" + tel + "< >" + mail+ "
"; } #endregion } }