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.

128 lines
5.7 KiB

3 weeks ago
  1. using Newtonsoft.Json;
  2. using Newtonsoft.Json.Linq;
  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.Linq;
  11. using System.Text;
  12. using System.Threading.Tasks;
  13. namespace NFine.Application.WMS
  14. {
  15. public class ICSAPISendApp : RepositoryFactory<ICSVendor>
  16. {
  17. private static string userId = ConfigurationManager.ConnectionStrings["userId"].ConnectionString;
  18. private static string password = ConfigurationManager.ConnectionStrings["password"].ConnectionString;
  19. private static string OCMUrl = ConfigurationManager.ConnectionStrings["OCMUrl"].ConnectionString;
  20. /// <summary>
  21. /// 重新上传(咖博士)
  22. /// </summary>
  23. /// <param name="ids"></param>
  24. /// <returns></returns>
  25. public string Upload(string ids)
  26. {
  27. string msg = "";
  28. try
  29. {
  30. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  31. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  32. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  33. ids = ids.TrimEnd(',');
  34. string updatesql=string.Empty;
  35. //获取需要重新上传的数据
  36. string sql = $"SELECT ID,URL,Param FROM ICSAPI WHERE ID in ({ids}) AND Status='0' AND WorkPoint='{WorkPoint}' ;";
  37. var dt = SqlHelper.CmdExecuteDataTable(sql);
  38. if (dt.Rows.Count<=0)
  39. {
  40. throw new Exception("请选择上传失败的数据!");
  41. }
  42. for (int i=0;i< dt.Rows.Count;i++)
  43. {
  44. string id = dt.Rows[i]["ID"].ToString();
  45. string url = dt.Rows[i]["URL"].ToString();
  46. string param = dt.Rows[i]["Param"].ToString();
  47. string newID = PublicMethod.GetNewid();
  48. //获取token
  49. //string token=GetTokenInfermation();
  50. string token = "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ7XCJwcm9maWxlXCI6e1wiYWJqdHlwZVwiOlwiMDAxXCIsXCJjX29ialwiOlwiYWRtaW5cIixcImlzRmlyc3RMb2dpblwiOlwiTlwiLFwicHJpbWVyS2V5XCI6XCJXTVNhZG1pblwiLFwiY19wZXJfbjFcIjpcIueuoeeQhuWRmFwiLFwiY191c2VyXCI6XCJXTVNhZG1pblwiLFwiY19lbnRcIjo2NjIsXCJjX29ianR5cGVcIjpcIjFcIixcImNfbGFuY19uMVwiOlwi566A5L2T5Lit5paHXCIsXCJhYmptdGVsXCI6XCIzMTNcIixcImNfbGFuZ1wiOlwiemhfQ05cIixcImNfb3JnXCI6XCIxMDAwMDFcIixcImNfY3VyclwiOlwiQ05ZXCIsXCJjX2RlcHRcIjpcIkNGMDAwMFwiLFwiY191c2VyX24xXCI6XCJXTVNhZG1pblwiLFwiY19wZXJcIjpcImFkbWluXCIsXCJjX29yZ19uMVwiOlwi5ZKW5Y2a5aOr546v5aKDXCJ9fSIsImlhdCI6MTczMDQ1MTM0NywianRpIjoiYWM1YmJiM2EtNWYyZi00YzY1LWE1NWYtNTVkYTA3MTRmNTdlIn0.QzMtW4hL7VlBzPl0tz3FfbU-KMFuLvsKYUhYc6nsZNUlA94_utMjRSyZWw5arKbXfm1Ntk99wgpMMojP8KZQbA";
  51. System.Net.WebHeaderCollection webHeader = new System.Net.WebHeaderCollection();
  52. webHeader.Add("Token", token);
  53. webHeader.Add("program-code", "fxdi055");
  54. #region 分销接口
  55. string resultStr = PublicMethod.HttpPost("销售出库", url, param, webHeader);
  56. var resultData = (JObject)JsonConvert.DeserializeObject(resultStr);
  57. string status = "0";
  58. string oldStatus = "2";
  59. if (resultData["statusDescription"].ToString() == "OK" && Convert.ToBoolean(resultData["response"]["success"]))
  60. {
  61. status = "1";
  62. oldStatus = "3";
  63. }
  64. #endregion
  65. updatesql += $"INSERT INTO [ICSAPI] ([ID],[SourceID], [Url], [Token], [Param], [Result], [Status], [MUSER], [MUSERName], [MTIME], [WorkPoint]) VALUES ('{newID}','{id}', '{url}', '{token}', '{param}', '{resultStr}', '{status}', '{MUSER}', '{MUSERNAME}', GETDATE(), '{WorkPoint}');" +
  66. $"UPDATE ICSAPI SET SourceID='{newID}',Status='{oldStatus}' WHERE ID='{id}' ";
  67. }
  68. int count=SqlHelper.CmdExecuteNonQuery(updatesql);
  69. if (count <= 0)
  70. {
  71. msg = $"更新数据失败";
  72. }
  73. }
  74. catch (Exception ex)
  75. {
  76. msg = ex.Message;
  77. }
  78. return msg;
  79. }
  80. /// <summary>
  81. /// 获取token的方法
  82. /// </summary>
  83. /// <returns></returns>
  84. public static string GetTokenInfermation()
  85. {
  86. try
  87. {
  88. var Input = new
  89. {
  90. param = new
  91. {
  92. userId,
  93. password,
  94. ent = 662,
  95. language = "zh_CN",
  96. scend = false,
  97. ati = ""
  98. }
  99. };
  100. string Inputstr = JsonConvert.SerializeObject(Input);
  101. string resultStr = PublicMethod.HttpPost("销售出库获取Token", OCMUrl + "A/ILoginService/login", Inputstr);
  102. JObject resultData = (JObject)JsonConvert.DeserializeObject(resultStr);
  103. if (resultData["statusDescription"].ToString() == "OK")
  104. {
  105. return resultData["response"]["token"].ToString();
  106. }
  107. else
  108. {
  109. throw new Exception("获取Tocken失败");
  110. }
  111. }
  112. catch (System.Net.WebException ex)
  113. {
  114. throw new Exception(ex.Message);
  115. }
  116. }
  117. }
  118. }