|
|
using Newtonsoft.Json; using NFine.Code; using NFine.Data.Extensions; using NFine.Domain._03_Entity.SRM; using NFine.Domain.Entity.ProductManage; using NFine.Domain.IRepository.ProductManage; using NFine.Repository; using NFine.Repository.ProductManage; using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.Common; using System.Data.SqlClient; using System.IO; using System.Linq; using System.Net; using System.Net.Mail; using System.Net.Security; using System.Security.Cryptography.X509Certificates; using System.Text;
namespace NFine.Application.SRM { public class POSignBacksApp : RepositoryFactory<ICSPO_PoMain> { public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List<DbParameter> parameter = new List<DbParameter>(); string EATTRIBUTE = SqlHelper.GetEATTRIBUTE("ICSPurchaseOrder","a").TrimEnd(','); string sql = @" SELECT DISTINCT POCode
,CONVERT(NVARCHAR(15),CreateDateTime,23) AS PODate ,c.ProjectCode ,a.VenCode ,d.VenName ,CreatePerson ,a.Filename AS Filename ,a.uploadcomment AS uploadcomment ,MAX(a.uploadFrequency) AS uploadFrequency ,MAX(a.DownloadFrequency) AS DownloadFrequency ,case when a.SignBackStatus=1 or ISNULL(a.SignBackStatus,'')='' then '未回签' WHEN a.SignBackStatus=2 then '待确认'WHEN a.SignBackStatus=3 then '已确认'WHEN a.SignBackStatus=4 then '退回' END as signBackstate ,a.WorkPoint ,a.BackComment ,case when a.SignBackStatus=1 or ISNULL(a.SignBackStatus,'')='' then '未回签' WHEN a.SignBackStatus=2 then '待确认'WHEN a.SignBackStatus=3 then '已确认'WHEN a.SignBackStatus=4 then '退回' END as STATUS ," + EATTRIBUTE + "";
sql+=@" FROM dbo.ICSPurchaseOrder a
LEFT JOIN ICSINVENTORY b on a.InvCode=b.INVCODE and a.WorkPoint=b.WorkPoint LEFT JOIN dbo.ICSExtension c ON a.ExtensionID=c.ID AND a.WorkPoint=c.WorkPoint LEFT JOIN dbo.ICSVendor d ON a.VenCode=d.VenCode AND a.WorkPoint=d.WorkPoint WHERE 1=1 and a.ReleaseState='1' --and a.Status<>'3' ";
if (!string.IsNullOrWhiteSpace(queryJson)) { // if (!string.IsNullOrWhiteSpace(queryParam["ORDERNO"].ToString()))
//{
// sql += " and ORDERNO like '%" + queryParam["ORDERNO"].ToString() + "%' ";
//}
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.POCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString())) { sql += " and a.CreateDateTime >='" + queryParam["BeginDate"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString())) { sql += " and a.CreateDateTime <='" + queryParam["EndDate"].ToString() + "'"; } if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString())) { sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString())) { sql += " and d.VenName like '%" + queryParam["VenName"].ToString() + "%'"; }
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and b.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%'"; } if (!string.IsNullOrWhiteSpace(queryParam["EATTRIBUTE12"].ToString())) { sql += " and a.EATTRIBUTE12 like '%" + queryParam["EATTRIBUTE12"].ToString() + "%'"; }
if (!string.IsNullOrWhiteSpace(queryParam["U8Status"].ToString())) { string U8Status = queryParam["U8Status"].ToString(); if (U8Status == "0") sql += " and isnull(Status,'')<>'3'"; else if (U8Status == "2") sql += " and isnull(Status,'')='3'"; } //if (!string.IsNullOrWhiteSpace(queryParam["CreatePerson"].ToString()))
//{
// sql += " and CreatePerson like '%" + queryParam["CreatePerson"].ToString() + "%'";
//}
if (!string.IsNullOrWhiteSpace(queryParam["ReleaseState"].ToString())) { string ReleaseState = queryParam["ReleaseState"].ToString(); if (ReleaseState == "1") sql += " and a.SignBackStatus = '1'"; else if (ReleaseState == "2") sql += " and a.SignBackStatus = '2'"; else if (ReleaseState == "3") sql += " and a.SignBackStatus = '3'"; else if (ReleaseState == "0") sql += " and (ISNULL(a.SignBackStatus,'') = ''OR ISNULL(a.SignBackStatus,'') = '1')"; else if (ReleaseState == "4") { sql += " and ISNULL(a.SignBackStatus,0) = '4'"; } } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor")) { sql += " and a.VenCode in (SELECT VenCode FROM ICSVendor where VenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "' AND a.WorkPoint=ICSVendor.WorkPoint)"; } //else
//{
// if (NFine.Code.OperatorProvider.Provider.GetCurrent().IsSystem == false)
// {
// sql += " and CreatePerson='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'";
// }
//}
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")"; sql += @"
GROUP BY POCode,CreateDateTime,c.ProjectCode,a.VenCode,d.VenName,a.SignBackStatus,CreatePerson,a.Filename,a.uploadcomment,a.BackComment,a.WorkPoint,ArriveDate ,a.EATTRIBUTE7,a.EATTRIBUTE8, a.EATTRIBUTE9,a.EATTRIBUTE10 ,a.EATTRIBUTE11 ,a.EATTRIBUTE12 ";
}
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } public string ChridenList(string keyValue, string WorkPoint) { keyValue = keyValue.Substring(1, keyValue.Length - 2); WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2); string msg = ""; string sql = "SELECT ArriveDate,Status FROM dbo.ICSPurchaseOrder WHERE PoCode='{0}' and WorkPoint='{1}'"; sql = string.Format(sql, keyValue, WorkPoint); DataTable dt = SqlHelper.GetDataTableBySql(sql); for (int i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i]["Status"].ToString() != "3")//判断是否关闭
{ if (dt.Rows[i]["ArriveDate"].ToString() == "" || dt.Rows[i]["ArriveDate"].ToString() == null) { msg = "请先填写交期一!"; } } } return msg; } public DataTable GetGridJsonCommint(string queryJson, ref Pagination jqgridparam) { //string ParentId = "";
DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List<DbParameter> parameter = new List<DbParameter>(); string EATTRIBUTE = SqlHelper.GetEATTRIBUTE("ICSPurchaseOrder", "a").TrimEnd(','); string sql = @" SELECT DISTINCT POCode
,CONVERT(NVARCHAR(15),CreateDateTime,23) AS PODate ,e.ProjectCode ,a.VenCode ,d.VenName ,ReleaseState ,CreatePerson ,a.Filename Filename ,a.uploadcomment uploadcomment ,MAX(a.uploadFrequency) AS uploadFrequency ,MAX(a.DownloadFrequency) AS DownloadFrequency ,case when a.SignBackStatus=1or ISNULL(a.SignBackStatus,'')='' then '未回签' WHEN a.SignBackStatus=2 then '确认中'WHEN a.SignBackStatus=3 then '已回签' WHEN a.SignBackStatus=4 then '退回' END as signBackstate ,a.WorkPoint,a.BackComment ,case when a.SignBackStatus=1or ISNULL(a.SignBackStatus,'')='' then '未回签' WHEN a.SignBackStatus=2 then '确认中'WHEN a.SignBackStatus=3 then '已回签' WHEN a.SignBackStatus=4 then '退回' END as STATUS ," + EATTRIBUTE + "";
sql+=@" FROM dbo.ICSPurchaseOrder a
LEFT JOIN dbo.Sys_SRM_User b ON a.VenCode=b.F_VenCode AND a.WorkPoint=b.F_Location LEFT JOIN ICSINVENTORY c on a.InvCode=c.INVCODE and a.WorkPoint=c.WorkPoint LEFT JOIN dbo.ICSVendor d ON a.VenCode=d.VenCode AND a.WorkPoint=d.WorkPoint LEFT JOIN dbo.ICSExtension e ON a.ExtensionID=e.ID AND a.WorkPoint=e.WorkPoint WHERE 1=1 and a.ReleaseState='1' ";
if (!string.IsNullOrWhiteSpace(queryJson)) { //if (!string.IsNullOrWhiteSpace(queryParam["ORDERNO"].ToString()))
//{
// sql += " and a.ORDERNO like '%" + queryParam["ORDERNO"].ToString() + "%' ";
//}
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { sql += " and a.POCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString())) { sql += " and a.CreateDateTime >='" + queryParam["BeginDate"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString())) { sql += " and a.CreateDateTime <='" + queryParam["EndDate"].ToString() + "'"; } if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString())) { sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString())) { sql += " and d.VenName like '%" + queryParam["VenName"].ToString() + "%'"; } if (!string.IsNullOrWhiteSpace(queryParam["CreatePerson"].ToString())) { sql += " and a.CreatePerson like '%" + queryParam["CreatePerson"].ToString() + "%'"; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and c.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and c.InvName like '%" + queryParam["InvName"].ToString() + "%'"; } if (!string.IsNullOrWhiteSpace(queryParam["EATTRIBUTE12"].ToString())) { sql += " and a.EATTRIBUTE12 like '%" + queryParam["EATTRIBUTE12"].ToString() + "%'"; }
if (!string.IsNullOrWhiteSpace(queryParam["U8Status"].ToString())) { string U8Status = queryParam["U8Status"].ToString(); if (U8Status == "0") sql += " and isnull(STATUS,'')<>'3'"; else if (U8Status == "1") sql += " and isnull(STATUS,'')='3'"; } if (!string.IsNullOrWhiteSpace(queryParam["ReleaseState"].ToString())) { string ReleaseState = queryParam["ReleaseState"].ToString(); if (ReleaseState == "2") sql += " and a.SignBackStatus = '2'"; else if (ReleaseState == "3") sql += " and a.SignBackStatus = '3'"; else if (ReleaseState == "4") sql += " and (ISNULL(a.SignBackStatus,'')='' OR ISNULL(a.SignBackStatus,'') = '1')"; else if (ReleaseState == "5") sql += " and ISNULL(a.SignBackStatus,'')='4'"; } //else
//{
// sql += " and SignBackState in('2','3')";
//}
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor")) { sql += " and a.VenCode in (SELECT VenCode FROM ICSVendor where VenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'AND a.WorkPoint=ICSVendor.WorkPoint)"; } //else
//{
// sql += " and CreatePerson='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'";
//}
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")"; //ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
}
if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin") { sql = SqlHelper.OrganizeByVendor_F_ParentIdByCommint(sql, NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode); } else { sql += " GROUP BY POCode,CreateDateTime,e.ProjectCode,a.VenCode,d.VenName,ReleaseState,CreatePerson,a.Filename,a.uploadcomment ,a.SignBackStatus,a.WorkPoint ,a.EATTRIBUTE7,a.EATTRIBUTE8, a.EATTRIBUTE9,a.EATTRIBUTE10 ,a.EATTRIBUTE11 ,a.EATTRIBUTE12,a.BackComment"; }
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } /// <summary>
/// 子表查询
/// </summary>
/// <param name="queryJson"></param>
/// <param name="jqgridparam"></param>
/// <returns></returns>
public DataTable GetSubGridJson(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); //var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>(); string sql = @"SELECT a.Sequence,a.InvCode,b.INVNAME,b.INVSTD,b.InvUnit,a.Quantity,
CONVERT(NVARCHAR(50), a.PlanArriveDate,23) as PreArriveDate,CONVERT(NVARCHAR(50),a.ArriveDate,23) as ArriveDate, CONVERT(NVARCHAR(50), a.DeliveryDate,23) as Free5,c.ProjectCode FROM dbo.ICSPurchaseOrder a LEFT JOIN dbo.ICSINVENTORY b ON a.InvCode=b.INVCODE AND a.WorkPoint=b.WorkPoint LEFT JOIN dbo.ICSExtension c ON a.ExtensionID=c.id AND a.WorkPoint=c.WorkPoint WHERE a.POCode='" + queryJson + "'and (isnull(a.Status,'')<>'关闭'and isnull(a.Status,'')<>'弃审')";
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } /// <summary>
/// 提交备注信息
/// </summary>
/// <param name="ReturnRemark"></param>
/// <param name="POCode"></param>
/// <returns></returns>
public int UpdatePOBackRemark(string ReturnRemark, string POCode) { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string sql = string.Empty; sql = @"UPDATE ICSPurchaseOrder SET uploadcomment= '{1}' WHERE POCode = '{0}'"; sql = string.Format(sql, POCode, ReturnRemark); return SqlHelper.ExecuteNonQuery(sql); } /// <summary>
/// 采购人员确定订单回签
/// </summary>
/// <param name="ReturnRemark"></param>
/// <param name="POCode"></param>
/// <returns></returns>
public void POBackCommit(string queryJson) { try { ICSPO_PoMain[] list = JsonConvert.DeserializeObject<ICSPO_PoMain[]>(queryJson); //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string sql = string.Empty; string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString; SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString); conn.Open(); SqlTransaction sqlTran = conn.BeginTransaction(); SqlCommand cmd = new SqlCommand(); cmd.Transaction = sqlTran; cmd.Connection = conn; try { string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.Replace("'", ""); //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
foreach (var obj in list) { sql = @"UPDATE ICSPurchaseOrder SET SignBackStatus= 3,MTIME=GETDATE() WHERE POCode =@POCode and @WorkPoint=@WorkPoint"; SqlParameter[] sp_Detail = { new SqlParameter("@POCode",obj.POCode), new SqlParameter("@WorkPoint",WorkPoint.TrimEnd(',')), }; SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd); }
cmd.Transaction.Commit(); } catch (Exception ex) { cmd.Transaction.Rollback(); throw new Exception(ex.Message); } finally { if (conn.State == ConnectionState.Open) { conn.Close(); } conn.Dispose(); } } catch (Exception ex) { throw new Exception(ex.Message); }
} /// <summary>
/// 上传文件变更订单状态为确认中,新增上传次数
/// </summary>
/// <param name="PoCode"></param>
/// <param name="FileName"></param>
/// <param name="FilePath"></param>
/// <returns></returns>
public string UpLoadFile(string PoCode, string FileName, string FilePath, string ReturnRemark, string WorkPoint) { string msg = ""; try { int countRemak = UpdatePOBackRemark(ReturnRemark, PoCode); if (countRemak <= 0) { msg = "上传失败"; } //更新上传次数
string sqls = @"UPDATE dbo.ICSPurchaseOrder
SET uploadFrequency=ISNULL(uploadFrequency,0)+1 WHERE PoCode = '" + PoCode.TrimEnd(',') + "' and WorkPoint='" + WorkPoint + "'";
int counts = SqlHelper.ExecuteNonQuery(sqls); if (counts <= 0) msg = "上传失败"; string sql = @"UPDATE ICSPurchaseOrder SET Filename = '{1}',FilePath = '{2}',SignBackStatus=2 WHERE POCode = '{0}'"; sql = string.Format(sql, PoCode, FileName, FilePath); int count = SqlHelper.ExecuteNonQuery(sql); if (count <= 0) msg = "上传失败"; } catch (Exception ex) { msg = ex.Message.ToString(); } return msg; } /// <summary>
/// 上传文件变更订单状态为确认中,新增上传次数
/// </summary>
/// <param name="PoCode"></param>
/// <param name="FileName"></param>
/// <param name="FilePath"></param>
/// <returns></returns>
public string UpLoadFileCommint(string PoCode, string FileName, string FilePath, string ReturnRemark, string WorkPoint) { string msg = ""; try { int countRemak = UpdatePOBackRemark(ReturnRemark, PoCode); if (countRemak <= 0) { msg = "上传失败"; } //更新上传次数
string sqls = @"UPDATE dbo.ICSPurchaseOrder
SET uploadFrequency=ISNULL(uploadFrequency,0)+1 WHERE PoCode = '" + PoCode.TrimEnd(',') + "' and WorkPoint='" + WorkPoint + "'";
int counts = SqlHelper.ExecuteNonQuery(sqls); if (counts <= 0) msg = "上传失败"; string sql = @"UPDATE ICSPurchaseOrder SET FileName = '{1}',FilePath = '{2}',SignBackStatus=3 WHERE POCode = '{0}'"; sql = string.Format(sql, PoCode, FileName, FilePath); int count = SqlHelper.ExecuteNonQuery(sql); if (count <= 0) msg = "上传失败"; } catch (Exception ex) { msg = ex.Message.ToString(); } return msg; } public void BackCommit(string keyValue) { string sql = string.Empty; try { string Muser = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MuserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; ICSPO_PoMain[] list = JsonConvert.DeserializeObject<ICSPO_PoMain[]>(keyValue); string MailOpen = ConfigurationManager.ConnectionStrings["MailOpen"].ConnectionString; //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString; SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString); conn.Open(); SqlTransaction sqlTran = conn.BeginTransaction(); SqlCommand cmd = new SqlCommand(); cmd.Transaction = sqlTran; cmd.Connection = conn; try { foreach (var obj in list) { sql = @" UPDATE ICSPurchaseOrder SET SignBackStatus='4',BackComment=@BackCommit WHERE POCODE=@POCODE"; SqlParameter[] sp_Detail = { new SqlParameter("@POCODE",obj.POCode), new SqlParameter("@BackCommit",obj.EATTRIBUTE6) }; SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd); string sqlEmail = @"SELECT DISTINCT c.F_Email,b.VenName from ICSPurchaseOrder(NOLOCK) a
LEFT JOIN dbo.ICSVendor(NOLOCK) b ON a.VenCode=b.VenCode AND a.WorkPoint=b.WorkPoint LEFT JOIN dbo.Sys_SRM_User(NOLOCK) c ON b.VenCode=c.F_VenCode AND b.WorkPoint=c.F_Location Where PoCode='{0}'";
sqlEmail = string.Format(sqlEmail, obj.POCode); DataTable dtEmail = SqlHelper.GetDataTableBySql(sqlEmail); if (dtEmail.Rows.Count > 0) { for (int i = 0; i < dtEmail.Rows.Count; i++) { if (!string.IsNullOrWhiteSpace(dtEmail.Rows[i]["F_Email"].ToString())) { if (MailOpen == "true") { string SendHost = ConfigurationManager.ConnectionStrings["SendHost"].ConnectionString; string StrSendPort = ConfigurationManager.ConnectionStrings["SendPort"].ConnectionString; int SendPort = 25; if (!string.IsNullOrEmpty(StrSendPort)) SendPort = Convert.ToInt32(ConfigurationManager.ConnectionStrings["SendPort"].ConnectionString); string SendDisplayName = ConfigurationManager.ConnectionStrings["SendDisplayName"].ConnectionString; string SendAddress = ConfigurationManager.ConnectionStrings["SendAddress"].ConnectionString; string SendPassword = ConfigurationManager.ConnectionStrings["SendPassword"].ConnectionString; string TOAddress = dtEmail.Rows[i]["F_Email"].ToString(); string[] Partint = TOAddress.Split(';'); if (!string.IsNullOrEmpty(TOAddress)) { foreach (var p in Partint) { string CCAddress = ""; string Subject = "有来自华恒SRM平台信息"; bool isBodyHtml = false; string F_RealName = dtEmail.Rows[i]["VenName"].ToString(); //string StarTime = dr["StarTime"].ToString();
string NowDate = DateTime.Now.GetDateTimeFormats('D')[0].ToString(); string body = "尊敬的" + F_RealName + ":"; body += " \r\n 你的采购订单订单:" + obj.POCode + "被回签确认退回,请前往系统查看详情!。"; body += "\r\n"; body += " 顺颂商祺!"; body += "\r\n"; body += " 华恒焊接(昆山)股份有限公司"; body += "\r\n"; body += " " + NowDate; string StrConn = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
if (!string.IsNullOrEmpty(p.ToString())) { try { //MailHelper.SendEmail(StrConn, SendHost, SendPort, SendDisplayName, SendAddress, SendPassword, p.ToString(), CCAddress, Subject, isBodyHtml, body);
} catch (Exception ex) { throw new Exception("供应商:" + F_RealName + "邮件发送失败! \r\n" + ex.Message); } } } } } } } } } cmd.Transaction.Commit(); } catch (Exception ex) { cmd.Transaction.Rollback(); throw new Exception(ex.Message); } finally { if (conn.State == ConnectionState.Open) { conn.Close(); } conn.Dispose(); } } catch (Exception ex) { throw new Exception(ex.Message); } } } }
|