ERPHelper.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. using JLHHJSvr.BLL;
  2. using JLHHJSvr.Com.Model;
  3. using JLHHJSvr.LJException;
  4. using Newtonsoft.Json.Linq;
  5. using System;
  6. using System.Collections;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. namespace JLHHJSvr.Helper
  12. {
  13. internal class ERPHelper : HelperBase
  14. {
  15. private JObject BuildLoginRequest()
  16. {
  17. return new JObject
  18. {
  19. { "token", GlobalVar.ERP_TOKEN },
  20. { "account", GlobalVar.ERP_ACCOUNT_NAME },
  21. { "userid", GlobalVar.ERP_ACCOUNT_USERNAME },
  22. { "password", GlobalVar.ERP_ACCOUNT_PASSWORD },
  23. { "clientType", 30 }
  24. };
  25. }
  26. protected void Login()
  27. {
  28. var request = BuildLoginRequest();
  29. try
  30. {
  31. var result = DoExecute("Login", request);
  32. var token = result.GetValue("token").ToObject<string>();
  33. if (!string.IsNullOrEmpty(token))
  34. {
  35. GlobalVar.ERP_TOKEN = token;
  36. }
  37. }
  38. catch (Exception ex)
  39. {
  40. throw new LJCommonException($"ERP登录失败: {ex.Message}");
  41. }
  42. }
  43. public void CheckLogin()
  44. {
  45. if(string.IsNullOrEmpty(GlobalVar.ERP_TOKEN))
  46. {
  47. Login();
  48. }
  49. }
  50. public List<T> GetERPList<T>(string apiMethod, JObject parameters)
  51. {
  52. CheckLogin();
  53. // 根据 API 方法的返回结果名称来提取相应的数据
  54. var apiDict = new Dictionary<string, string>()
  55. {
  56. {"GetL1Mtrldef","mtrldefList" },
  57. {"GetSCWorkgroupList","scworkgroupList" },
  58. {"GetL1Mtrltype","mtrltypeList" },
  59. };
  60. var request = new JObject();
  61. request.Add("token", GlobalVar.ERP_TOKEN);
  62. if (parameters != null)
  63. {
  64. foreach (var param in parameters)
  65. {
  66. request.Add(param.Key,param.Value);
  67. }
  68. }
  69. var result = DoExecute(apiMethod, request);
  70. if (!apiDict.TryGetValue(apiMethod, out var listName))
  71. {
  72. throw new ArgumentException("Unsupported API method", nameof(apiMethod));
  73. }
  74. return result.GetValue(listName).ToObject<List<T>>();
  75. }
  76. public List<erp_mtrldef> GetErpMtrlDefList(JObject parameters)
  77. {
  78. return GetERPList<erp_mtrldef>("GetL1Mtrldef", parameters);
  79. }
  80. public List<erp_sc_workgroup> GetERPWrkGrpList(JObject parameters)
  81. {
  82. return GetERPList<erp_sc_workgroup>("GetSCWorkgroupList", parameters);
  83. }
  84. public List<u_mtrltype> GetERPMtrlTypeList(JObject parameters)
  85. {
  86. return GetERPList<u_mtrltype>("GetL1Mtrltype", parameters);
  87. }
  88. }
  89. }