IwmsApi.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. using ServiceCenter.Logs;
  2. using ServiceCenter.Redis;
  3. using ServiceCenter.WebApi;
  4. using WCS.WorkEngineering.WebApi.Models.AGV;
  5. using WCS.WorkEngineering.WebApi.Models.AGV.Request;
  6. using WCS.WorkEngineering.WebApi.Models.AGV.Response;
  7. namespace WCS.WorkEngineering.WebApi.Controllers
  8. {
  9. public class IwmsApi
  10. {
  11. private static string _IwmsUrl = null!;
  12. /// <summary>
  13. /// AGV地址
  14. /// </summary>
  15. public static string IwmsUrl
  16. {
  17. get
  18. {
  19. _IwmsUrl ??= RedisHub.Default.Check("IwmsUrl");
  20. if (string.IsNullOrEmpty(_IwmsUrl))
  21. {
  22. throw new KnownException($"请在Redis配置IwmsUrl", LogLevelEnum.High);
  23. }
  24. return _IwmsUrl;
  25. }
  26. }
  27. /// <summary>
  28. /// 满轮出库
  29. /// </summary>
  30. /// <param name="matCode">物料编号</param>
  31. /// <param name="wbCode">取货点位置</param>
  32. /// <param name="taskNo">任务号</param>
  33. /// <param name="rfid">RFID</param>
  34. /// <param name="matNo">材料号</param>
  35. /// <param name="isSurplus">改手盘标记</param>
  36. /// <param name="isRework">返工标记</param>
  37. /// <param name="matFast">快投标记</param>
  38. /// <param name="gradeCode">质量等级</param>
  39. /// <param name="wetIntoBinCode">仓位号</param>
  40. /// <returns></returns>
  41. public static zhongTianIntoStockResponse 满轮出库(string matCode, string wbCode, string taskNo, string rfid, string matNo, bool isSurplus, bool isRework, bool matFast, string gradeCode, string wetIntoBinCode)
  42. {
  43. var zhongTian = new zhongTianIntoStockRequest()
  44. {
  45. matCode = matCode,
  46. wbCode = wbCode,
  47. inSpoolFull = "1",
  48. getOutEmpty = false,
  49. wetIntoReturn = false,
  50. isSurplus = isSurplus == false ? "0" : "1",
  51. isRework = isRework == false ? "0" : "1",
  52. spoolNo = rfid,
  53. gradeCode = gradeCode,
  54. matFast = matFast == false ? "0" : "1",
  55. matNo = matNo,
  56. orderProcessLenOut = "0",
  57. taskNo = $"RK{taskNo}",
  58. returnDesc = "",
  59. lockFlag = "0",
  60. };
  61. if (wetIntoBinCode.Length == 14)
  62. {
  63. zhongTian.wetInto = true;
  64. zhongTian.wetIntoBinCode = wetIntoBinCode;
  65. zhongTian.wetIntoSpec = false;
  66. zhongTian.wetSpecWbCode = "";
  67. }
  68. else
  69. {
  70. zhongTian.wetInto = false;
  71. zhongTian.wetIntoBinCode = "";
  72. zhongTian.wetIntoSpec = true;
  73. zhongTian.wetSpecWbCode = wetIntoBinCode;
  74. }
  75. return zhongTianIntoStock(zhongTian);
  76. //return zhongTianOutStock(new zhongTianOutStockRequest()
  77. //{
  78. // matCode = matCode,
  79. // workAreaCode = wbCode,
  80. // outSpoolFull = "1"
  81. //});
  82. }
  83. public static zhongTianOutStockResponse 空轮回库(string matCode, string wbCode, bool isSurplus, bool isRework, int taskNo, string RFID)
  84. {
  85. return zhongTianOutStock(new zhongTianOutStockRequest()
  86. {
  87. matCode = matCode,
  88. workAreaCode = wbCode,
  89. outSpoolFull = "0",
  90. intoEmpty = false,
  91. wetOut = "",
  92. wetOutReturn = true,
  93. spoolNo = RFID,
  94. isSurplus = isSurplus == false ? "0" : "1",
  95. isRework = isRework == false ? "0" : "1",
  96. reqCode = Guid.NewGuid().ToString().Replace("-", ""),
  97. taskNo = $"CK{wbCode}{taskNo}"
  98. });
  99. }
  100. public static zhongTianIntoStockResponse zhongTianIntoStock(zhongTianIntoStockRequest req)
  101. {
  102. var res = APICaller.CallApi2<zhongTianIntoStockResponse>(IwmsUrl + "/databus/publish/zhongTianIntoStock", req);
  103. if (res.code != AgvResponseCode.Success)
  104. {
  105. throw new KnownException(res.message, LogLevelEnum.High);
  106. }
  107. return res;
  108. }
  109. public static zhongTianOutStockResponse zhongTianOutStock(zhongTianOutStockRequest req)
  110. {
  111. var res = APICaller.CallApi2<zhongTianOutStockResponse>(IwmsUrl + "/databus/publish/zhongTianOutStock", req);
  112. if (res.code != AgvResponseCode.Success)
  113. {
  114. throw new KnownException(res.message, LogLevelEnum.High);
  115. }
  116. return res;
  117. }
  118. }
  119. }