You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

327 lines
15 KiB

4 days ago
  1. using Newtonsoft.Json;
  2. using NFine.Code;
  3. using NFine.Data.Extensions;
  4. using NFine.Domain._03_Entity.SRM;
  5. using NFine.Repository;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Configuration;
  9. using System.Data;
  10. using System.Data.Common;
  11. using System.Data.SqlClient;
  12. using System.Linq;
  13. using System.Net;
  14. using System.Net.Mail;
  15. using System.Net.Security;
  16. using System.Security.Cryptography.X509Certificates;
  17. using System.Text;
  18. using System.Threading.Tasks;
  19. namespace NFine.Application.SRM
  20. {
  21. public class ICSSrmMessageApp : RepositoryFactory<ICSVendor>
  22. {
  23. /// <summary>
  24. /// 获取消息信息
  25. /// </summary>
  26. /// <param name="queryJson"></param>
  27. /// <param name="jqgridparam"></param>
  28. /// <returns></returns>
  29. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  30. {
  31. DataTable dt = new DataTable();
  32. var queryParam = queryJson.ToJObject();
  33. List<DbParameter> parameter = new List<DbParameter>();
  34. string sql = @"SELECT
  35. a.MESSAGEID
  36. ,MESSAGECONTENT
  37. ,MESSAGETITLE
  38. ,c.USERCODE
  39. ,a.CreateDate
  40. ,c.VENDORCODE
  41. FROM ICSSRMMESSAGE a
  42. LEFT JOIN ICSSRMMESSAGEATTACHMENT b ON a.MESSAGEID=b.MESSAGEID
  43. LEFT JOIN ICSSRMMESSAGEREVEIVER c ON a.MESSAGEID=c.MESSAGEID
  44. LEFT JOIN ICSSRMMESSAGETO d ON a.MESSAGEID=d.MESSAGEID
  45. Where 1=1 ";
  46. if (!string.IsNullOrWhiteSpace(queryJson))
  47. {
  48. if (!string.IsNullOrWhiteSpace(queryParam["MESSAGETITLE"].ToString()))
  49. {
  50. sql += " and MESSAGETITLE like '%" + queryParam["MESSAGETITLE"].ToString() + "%' ";
  51. }
  52. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  53. {
  54. sql += " and a.StarTime >= '" + queryParam["TimeFrom"].ToString() + "' ";
  55. }
  56. if (!string.IsNullOrWhiteSpace(queryParam["TimeTo"].ToString()))
  57. {
  58. sql += " and a.EndTime <= '" + queryParam["TimeTo"].ToString() + "' ";
  59. }
  60. //if (!string.IsNullOrWhiteSpace(queryParam["Status"].ToString()))
  61. //{
  62. // sql += " and a.Status ='" + queryParam["Status"].ToString() + "'";
  63. //}
  64. }
  65. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  66. }
  67. /// <summary>
  68. /// 删除消息信息
  69. /// </summary>
  70. /// <param name="keyValue"></param>
  71. /// <returns></returns>
  72. public string DeleteICSSrmMessage(string keyValue)
  73. {
  74. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  75. string MUSERName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  76. string sql = string.Empty;
  77. sql = @" delete FROM ICSSRMMESSAGE where BidCode in ({0})
  78. delete FROM ICSSRMMESSAGEATTACHMENT where BidCode in ({0})
  79. delete FROM ICSSRMMESSAGEREVEIVER where BidCode in ({0})
  80. delete FROM ICSSRMMESSAGETO where BidCode in ({0})";
  81. sql = string.Format(sql, keyValue);
  82. string msg = "";
  83. try
  84. {
  85. SqlHelper.ExecuteNonQuery(sql);
  86. }
  87. catch (Exception ex)
  88. {
  89. msg = ex.Message;
  90. }
  91. return msg;
  92. }
  93. //保存
  94. public void SaveDetail(string queryJson)
  95. {
  96. string sql = string.Empty;
  97. try
  98. {
  99. string SendHost = ConfigurationManager.ConnectionStrings["SendHost"].ConnectionString;
  100. string StrSendPort = ConfigurationManager.ConnectionStrings["SendPort"].ConnectionString;
  101. int SendPort = 25;
  102. if (!string.IsNullOrEmpty(StrSendPort))
  103. SendPort = Convert.ToInt32(ConfigurationManager.ConnectionStrings["SendPort"].ConnectionString);
  104. string SendDisplayName = ConfigurationManager.ConnectionStrings["SendDisplayName"].ConnectionString;
  105. string SendAddress = ConfigurationManager.ConnectionStrings["SendAddress"].ConnectionString;
  106. string SendPassword = ConfigurationManager.ConnectionStrings["SendPassword"].ConnectionString;
  107. ICSSRMMESSAGE[] details = JsonConvert.DeserializeObject<ICSSRMMESSAGE[]>(queryJson);
  108. string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
  109. SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
  110. conn.Open();
  111. SqlTransaction sqlTran = conn.BeginTransaction();
  112. SqlCommand cmd = new SqlCommand();
  113. cmd.Transaction = sqlTran;
  114. cmd.Connection = conn;
  115. string MESSAGEID = "";
  116. try
  117. {
  118. string Muser = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  119. string MuserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  120. foreach (var obj in details)
  121. {
  122. if (string.IsNullOrWhiteSpace(obj.MESSAGEID))
  123. {
  124. MESSAGEID = Guid.NewGuid().ToString();
  125. }
  126. else
  127. {
  128. MESSAGEID = obj.MESSAGEID;
  129. }
  130. sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSSRMMESSAGE WHERE MESSAGEID=@MESSAGEID)
  131. BEGIN
  132. INSERT INTO dbo.ICSSRMMESSAGE
  133. ( MESSAGEID
  134. ,MESSAGECONTENT
  135. ,MESSAGETITLE
  136. ,LOGDATE
  137. ,LogUser
  138. ,CREATEDATE
  139. ,CREATEUSER)
  140. VALUES ( @MESSAGEID
  141. , @MESSAGECONTENT
  142. , @MESSAGETITLE
  143. , @LOGDATE
  144. , @LogUser
  145. , @CREATEDATE
  146. , @CREATEUSER)
  147. END
  148. ELSE
  149. BEGIN
  150. UPDATE dbo.ICSSRMMESSAGE SET
  151. MESSAGECONTENT=@MESSAGECONTENT
  152. ,MESSAGETITLE=@MESSAGETITLE
  153. ,LOGDATE=@LOGDATE
  154. ,LogUser=@LogUser
  155. WHERE MESSAGEID=@MESSAGEID
  156. END";
  157. SqlParameter[] sp_Detail = {
  158. new SqlParameter("@MESSAGEID",MESSAGEID),
  159. new SqlParameter("@MESSAGECONTENT",obj.MessageContent),
  160. new SqlParameter("@MESSAGETITLE",obj.MessageTitle),
  161. new SqlParameter("@LOGDATE",DateTime.Now.ToString("yyyy-MM-dd")),
  162. new SqlParameter("@LogUser",Muser),
  163. new SqlParameter("@CREATEDATE",DateTime.Now.ToString("yyyy-MM-dd")),
  164. new SqlParameter("@CREATEUSER",Muser),
  165. };
  166. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd);
  167. #region 附件信息
  168. if (!string.IsNullOrWhiteSpace(obj.ATTACHMENTNAME))
  169. {
  170. sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSSRMMESSAGEATTACHMENT WHERE MESSAGEID=@MESSAGEID)
  171. BEGIN
  172. INSERT INTO dbo.ICSSRMMESSAGEATTACHMENT( ATTACHMENTID, ATTACHMENTNAME, ATTACHMENTPATH, ATTACHMENTURL, MESSAGEID)
  173. VALUES ( NewID(), @ATTACHMENTNAME, @ATTACHMENTPATH, @ATTACHMENTURL, @MESSAGEID)
  174. END
  175. ELSE
  176. BEGIN
  177. UPDATE dbo.ICSSRMMESSAGEATTACHMENT SET ATTACHMENTNAME=@ATTACHMENTNAME,ATTACHMENTPATH=@ATTACHMENTPATH,ATTACHMENTURL=@ATTACHMENTURL
  178. WHERE MESSAGEID=@MESSAGEID
  179. END";
  180. SqlParameter[] sp_BD = {
  181. new SqlParameter("@ATTACHMENTNAME",obj.ATTACHMENTNAME),
  182. new SqlParameter("@ATTACHMENTPATH",obj.ATTACHMENTPATH),
  183. new SqlParameter("@ATTACHMENTURL",obj.ATTACHMENTURL),
  184. new SqlParameter("@MESSAGEID",MESSAGEID),
  185. };
  186. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_BD, cmd);
  187. }
  188. #endregion
  189. #region 消息发送对象
  190. sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSSRMMESSAGEREVEIVER WHERE MESSAGEID=@MESSAGEID)
  191. BEGIN
  192. INSERT INTO dbo.ICSSRMMESSAGEREVEIVER
  193. (MESSAGEID
  194. ,PARENTMESSAGEID
  195. ,USERCODE
  196. ,USERTYPE
  197. ,VENDORCODE
  198. ,CREATEDATE
  199. ,CREATEUSER
  200. ,LOGDATE
  201. ,LOGUSER)
  202. VALUES (@MESSAGEID
  203. , NewID()
  204. , @USERCODE
  205. , @USERTYPE
  206. , @VENDORCODE
  207. , @CREATEDATE
  208. , @CREATEUSER
  209. , @LOGDATE
  210. , @LOGUSER)
  211. END
  212. ELSE
  213. BEGIN
  214. UPDATE dbo.ICSSRMMESSAGEREVEIVER SET USERCODE=@USERCODE
  215. ,USERTYPE=@USERTYPE
  216. ,LOGDATE=@LOGDATE
  217. ,LOGUSER=@LOGUSER WHERE MESSAGEID=@MESSAGEID
  218. END";
  219. SqlParameter[] sp_GYS = {
  220. new SqlParameter("@MESSAGEID",MESSAGEID),
  221. new SqlParameter("@USERCODE",Muser),
  222. new SqlParameter("@USERTYPE",Muser),
  223. new SqlParameter("@VENDORCODE",obj.VENDORCODE),
  224. new SqlParameter("@LOGDATE",DateTime.Now.ToString("yyyy-MM-dd")),
  225. new SqlParameter("@LOGUSER",Muser),
  226. new SqlParameter("@CREATEDATE",DateTime.Now.ToString("yyyy-MM-dd")),
  227. new SqlParameter("@CREATEUSER",Muser),
  228. };
  229. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_GYS, cmd);
  230. #endregion
  231. #region 消息收件人
  232. //投标信息
  233. sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSSRMMESSAGETO WHERE MESSAGEID=@MESSAGEID)
  234. BEGIN
  235. INSERT INTO dbo.ICSSRMMESSAGETO (
  236. MESSAGEID
  237. ,MESSAGETOID
  238. ,STATUS
  239. ,USERCODE
  240. ,CREATEDATE
  241. ,CREATEUSER
  242. ,LOGDATE
  243. ,LOGUSER)
  244. VALUES
  245. (@MESSAGEID, newid(), @STATUS, @USERCODE, @CREATEDATE, @CREATEUSER, @LOGDATE,@LOGUSER)
  246. END
  247. ELSE
  248. BEGIN
  249. UPDATE dbo.ICSSRMMESSAGETO SET USERCODE=@USERCODE, LOGDATE=@LOGDATE, LOGUSER=@LOGUSER
  250. WHERE MESSAGEID=@MESSAGEID
  251. END";
  252. SqlParameter[] sp_BidInfo = {
  253. new SqlParameter("@MESSAGEID",MESSAGEID),
  254. //new SqlParameter("@TBCount",details.ZTBCount),
  255. new SqlParameter("@STATUS","1"),
  256. new SqlParameter("@USERCODE",Muser),
  257. new SqlParameter("@LOGDATE",DateTime.Now.ToString("yyyy-MM-dd")),
  258. new SqlParameter("@LogUser",Muser),
  259. new SqlParameter("@CREATEDATE",DateTime.Now.ToString("yyyy-MM-dd")),
  260. new SqlParameter("@CREATEUSER",Muser),
  261. };
  262. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_BidInfo, cmd);
  263. #endregion
  264. cmd.Transaction.Commit();
  265. }
  266. }
  267. catch (Exception ex)
  268. {
  269. cmd.Transaction.Rollback();
  270. throw new Exception(ex.Message);
  271. }
  272. finally
  273. {
  274. if (conn.State == ConnectionState.Open)
  275. {
  276. conn.Close();
  277. }
  278. conn.Dispose();
  279. }
  280. }
  281. catch (Exception ex)
  282. {
  283. throw new Exception(ex.Message);
  284. }
  285. }
  286. /// <summary>
  287. /// 修改时获取维护信息
  288. /// </summary>
  289. /// <param name="POCode"></param>
  290. /// <param name="PORow"></param>
  291. /// <param name="WorkPoint"></param>
  292. /// <returns></returns>
  293. public DataTable ICSICSSrmMessageByCreate(string MESSAGEID)
  294. {
  295. DataTable dt = new DataTable();
  296. //var queryParam = queryJson.ToJObject();
  297. List<DbParameter> parameter = new List<DbParameter>();
  298. string sql = string.Empty;
  299. sql = @"SELECT
  300. a.MESSAGEID
  301. ,MESSAGECONTENT
  302. ,MESSAGETITLE
  303. ,c.USERCODE
  304. ,a.CreateDate
  305. ,c.VENDORCODE
  306. FROM ICSSRMMESSAGE a
  307. LEFT JOIN ICSSRMMESSAGEATTACHMENT b ON a.MESSAGEID=b.MESSAGEID
  308. LEFT JOIN ICSSRMMESSAGEREVEIVER c ON a.MESSAGEID=c.MESSAGEID
  309. LEFT JOIN ICSSRMMESSAGETO d ON a.MESSAGEID=d.MESSAGEID
  310. Where 1=1 ";
  311. sql += " and a.MESSAGEID='" + MESSAGEID + "'";
  312. return Repository().FindTableBySql(sql.ToString());
  313. }
  314. }
  315. }