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.

304 lines
13 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.IO;
  13. using System.Linq;
  14. using System.Text;
  15. using System.Threading.Tasks;
  16. using System.Web;
  17. namespace NFine.Application.SRM
  18. {
  19. public class ICSSrmportAlnoticeApp : RepositoryFactory<ICSVendor>
  20. {
  21. /// <summary>
  22. /// 查询公告信息
  23. /// </summary>
  24. /// <param name="queryJson"></param>
  25. /// <param name="jqgridparam"></param>
  26. /// <returns></returns>
  27. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  28. {
  29. DataTable dt = new DataTable();
  30. var queryParam = queryJson.ToJObject();
  31. List<DbParameter> parameter = new List<DbParameter>();
  32. string sql = @"select
  33. NoticeContent,
  34. NoticeID,
  35. NoticeTitle,
  36. NoticeType,
  37. CONVERT(NVARCHAR(20),NoValidDate,23) AS NoValidDate,
  38. Status,
  39. UserCode,
  40. VendorStatus,
  41. ViewCount,
  42. VISIBility,
  43. CASE when IsOutPottal='1' THEN '是'ELSE '否' END IsOutPottal,
  44. CONVERT(NVARCHAR(20),CreateDate,23) AS CreateDate
  45. from ICSSRMPORTALNOTICE Where 1=1 ";
  46. if (!string.IsNullOrWhiteSpace(queryJson))
  47. {
  48. if (!string.IsNullOrWhiteSpace(queryParam["NoticeContent"].ToString()))
  49. {
  50. sql += " and NoticeContent like '%" + queryParam["NoticeContent"].ToString() + "%' ";
  51. }
  52. if (!string.IsNullOrWhiteSpace(queryParam["NoticeTitle"].ToString()))
  53. {
  54. sql += " and NoticeTitle like '%" + queryParam["NoticeTitle"].ToString() + "%' ";
  55. }
  56. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  57. {
  58. sql += " and a.StarTime >= '" + queryParam["TimeFrom"].ToString() + "' ";
  59. }
  60. if (!string.IsNullOrWhiteSpace(queryParam["TimeTo"].ToString()))
  61. {
  62. sql += " and a.EndTime <= '" + queryParam["TimeTo"].ToString() + "' ";
  63. }
  64. if (!string.IsNullOrWhiteSpace(queryParam["Status"].ToString()))
  65. {
  66. sql += " and a.Status ='" + queryParam["Status"].ToString() + "'";
  67. }
  68. }
  69. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  70. }
  71. /// <summary>
  72. /// 获取数据字典中维护的公告类型
  73. /// </summary>
  74. /// <param name="WorkPoint"></param>
  75. /// <returns></returns>
  76. public DataTable GetNOTICETYPE()
  77. {
  78. string ItemCode = string.Empty;
  79. string F_EnCode = "";
  80. string sqlItem = @"SELECT '' as F_ItemCode,'' as F_ItemName
  81. Union
  82. select F_ItemCode,b.F_ItemName from [dbo].[Sys_SRM_Items] a
  83. LEFT JOIN [dbo].[Sys_SRM_ItemsDetail] b on a.F_Id=b.F_itemID
  84. where F_EnCode='NOTICETYPE'";
  85. sqlItem = string.Format(sqlItem, F_EnCode);
  86. DataTable table = SqlHelper.GetDataTableBySql(sqlItem);
  87. return table;
  88. }
  89. /// <summary>
  90. /// 保存公告
  91. /// </summary>
  92. /// <param name="queryJson"></param>
  93. /// <param name="ID"></param>
  94. public void SubmitSrmportAlnotice(string queryJson, string ID)
  95. {
  96. try
  97. {
  98. DataTable dt = new DataTable();
  99. List<DbParameter> parameter = new List<DbParameter>();
  100. ICSSRMPORTALNOTICEModel[] list = JsonConvert.DeserializeObject<ICSSRMPORTALNOTICEModel[]>(queryJson);
  101. string sql = string.Empty;
  102. string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
  103. SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
  104. conn.Open();
  105. SqlTransaction sqlTran = conn.BeginTransaction();
  106. SqlCommand cmd = new SqlCommand();
  107. cmd.Transaction = sqlTran;
  108. cmd.Connection = conn;
  109. try
  110. {
  111. string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  112. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.Replace("'", "");
  113. foreach (var obj in list)
  114. {
  115. sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSSRMPORTALNOTICE WHERE NoticeID=@ID)
  116. BEGIN
  117. INSERT INTO dbo.ICSSRMPORTALNOTICE
  118. (CompanyCode
  119. ,CreateDate
  120. ,CreateUser
  121. ,IsOutPottal
  122. ,LogDate
  123. ,LogUser
  124. ,NoticeContent
  125. ,NoticeTitle
  126. ,NoticeType
  127. ,NoValidDate
  128. ,Status
  129. ,UserCode
  130. ,VendorStatus
  131. ,ViewCount
  132. ,VISIBility
  133. ,NOTICEID
  134. )
  135. VALUES
  136. (
  137. @CompanyCode
  138. ,@CreateDate
  139. ,@CreateUser
  140. ,@IsOutPottal
  141. ,@LogDate
  142. ,@LogUser
  143. ,@NoticeContent
  144. ,@NoticeTitle
  145. ,@NoticeType
  146. ,@NoValidDate
  147. ,@Status
  148. ,@UserCode
  149. ,@VendorStatus
  150. ,@ViewCount
  151. ,@VISIBility
  152. ,NEWID()
  153. )
  154. END
  155. ELSE
  156. BEGIN
  157. UPDATE dbo.ICSSRMPORTALNOTICE SET
  158. CompanyCode=@CompanyCode
  159. ,CreateDate=@CreateDate
  160. ,CreateUser=@CreateUser
  161. ,IsOutPottal=@IsOutPottal
  162. ,LogDate=@LogDate
  163. ,LogUser=@LogUser
  164. ,NoticeContent=@NoticeContent
  165. ,NoticeTitle=@NoticeTitle
  166. ,NoticeType=@NoticeType
  167. ,NoValidDate=@NoValidDate
  168. ,UserCode=@UserCode
  169. ,VendorStatus=@VendorStatus
  170. ,VISIBility=@VISIBility
  171. WHERE NOTICEID=@ID
  172. END";
  173. SqlParameter[] sp_Detail = {
  174. new SqlParameter("@CompanyCode",obj.CompanyCode),
  175. new SqlParameter("@CreateDate",DateTime.Now.ToString("yyyy-MM-dd")),
  176. new SqlParameter("@CreateUser",UserCode),
  177. new SqlParameter("@IsOutPottal",obj.IsOutPottal),
  178. new SqlParameter("@LogDate",DateTime.Now.ToString("yyyy-MM-dd")),
  179. new SqlParameter("@LogUser",UserCode),
  180. new SqlParameter("@NoticeContent",obj.NoticeContent),
  181. new SqlParameter("@NoticeTitle",obj.NoticeTitle),
  182. new SqlParameter("@NoticeType",obj.NoticeType),
  183. new SqlParameter("@NoValidDate",obj.NoValidDate),
  184. new SqlParameter("@ID",ID),
  185. new SqlParameter("@Status", obj.Status==""||obj.Status==null?"0":obj.Status),
  186. new SqlParameter("@UserCode",UserCode),
  187. new SqlParameter("@VendorStatus",obj.VendorStatus),
  188. new SqlParameter("@ViewCount",1),
  189. new SqlParameter("@VISIBility",obj.VISIBility),
  190. };
  191. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd);
  192. }
  193. cmd.Transaction.Commit();
  194. }
  195. catch (Exception ex)
  196. {
  197. cmd.Transaction.Rollback();
  198. throw new Exception(ex.Message);
  199. }
  200. finally
  201. {
  202. if (conn.State == ConnectionState.Open)
  203. {
  204. conn.Close();
  205. }
  206. conn.Dispose();
  207. }
  208. }
  209. catch (Exception ex)
  210. {
  211. throw new Exception(ex.Message);
  212. }
  213. }
  214. /// <summary>
  215. /// 删除公告信息
  216. /// </summary>
  217. /// <param name="NoticeID"></param>
  218. /// <returns></returns>
  219. public string DeleteSrmportAlnotice(string NoticeID)
  220. {
  221. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  222. string MUSERName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  223. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  224. NoticeID = NoticeID.TrimStart('"').TrimEnd('"').TrimEnd(',');
  225. string sql = string.Empty;
  226. sql = @"delete FROM ICSSRMPORTALNOTICE where NOTICEID in ({0})";
  227. sql = string.Format(sql, NoticeID);
  228. string msg = "";
  229. try
  230. {
  231. SqlHelper.ExecuteNonQuery(sql);
  232. }
  233. catch (Exception ex)
  234. {
  235. msg = ex.Message;
  236. }
  237. return msg;
  238. }
  239. /// <summary>
  240. /// 修改时获取维护信息
  241. /// </summary>
  242. /// <param name="POCode"></param>
  243. /// <param name="PORow"></param>
  244. /// <param name="WorkPoint"></param>
  245. /// <returns></returns>
  246. public DataTable ICSSrmportAlnoticeByCreate(string NoticeID)
  247. {
  248. DataTable dt = new DataTable();
  249. //var queryParam = queryJson.ToJObject();
  250. List<DbParameter> parameter = new List<DbParameter>();
  251. string sql = string.Empty;
  252. sql = @"select
  253. NoticeContent,
  254. NoticeID,
  255. NoticeTitle,
  256. NoticeType,
  257. NoValidDate,
  258. Status,
  259. UserCode,
  260. VendorStatus,
  261. ViewCount,
  262. VISIBility,
  263. IsOutPottal,
  264. CreateDate
  265. ,COMPANYCODE
  266. from ICSSRMPORTALNOTICE Where 1=1 ";
  267. sql += " and NoticeID='" + NoticeID + "'";
  268. return Repository().FindTableBySql(sql.ToString());
  269. }
  270. public object ImportOrder()
  271. {
  272. HttpPostedFile oFile = HttpContext.Current.Request.Files["txt_file"];
  273. //获取送货单号
  274. //string STNO = Request.Form["STNO"].ToString();
  275. string fileName = Path.GetFileNameWithoutExtension(oFile.FileName)
  276. + Path.GetExtension(oFile.FileName);
  277. string Paths = System.Web.HttpContext.Current.Server.MapPath("~\\File\\GGFile\\" );
  278. if (!Directory.Exists(Paths))
  279. {
  280. Directory.CreateDirectory(Paths);
  281. }
  282. string filePath = System.Web.HttpContext.Current.Server.MapPath("~\\File\\GGFile\\" + fileName);
  283. int iLen = oFile.ContentLength;
  284. byte[] bData = new byte[iLen];
  285. oFile.InputStream.Read(bData, 0, iLen);
  286. FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate);
  287. fs.Write(bData, 0, bData.Length);
  288. fs.Flush();
  289. fs.Close();
  290. fs.Dispose();
  291. return "";
  292. }
  293. }
  294. }