StorageController.php 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. <?php
  2. namespace App\Http\Controllers\api\thirdPart\haiq;
  3. use App\Services\ForeignHaiRoboticsService;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Facades\Http;
  6. class StorageController
  7. {
  8. protected $post;
  9. /** @var ForeignHaiRoboticsService $service */
  10. private $service;
  11. public function __construct()
  12. {
  13. $this->service=app('ForeignHaiRoboticsService');
  14. $stockInfo = [
  15. "skuCode" => "TEST-BSSKU",//商品编码 sku
  16. "qty" => 9,//数量
  17. ];
  18. $bin = [
  19. "taskCode" => "TEST-BS2010100001",//任务编号 全局唯一
  20. "binCode" => "TEST-BIN01",//料箱编码
  21. "fromLocCode" => "HAIB1-02-01",//源库位编码
  22. "toLocCode" => "HAIB1-02-01",//目标库位编码 出库填多个,表示这些库位都可以支持
  23. "sequence" => -1,//出库顺序 -1表示没有顺序,只有移库出库时需要指定顺序,其他可为-1
  24. "stockInfo" => [$stockInfo],//商品信息
  25. ];
  26. /*$this->request = [[
  27. "groupCode" => 1,//组号/波次号 一组任务需要一起完成,再开始下一组任务;没有组任务的限制默认传-1或空
  28. "taskMode" => 3,//任务模式 值 1 (输送线入库)值 2 (输送线出库)值 3(货架到缓存货架)值4(货架到流利货架)
  29. "priority" => 99,//优先级 1-2147483647 1最低
  30. "sequenceFlag" => -1,//是否需要有序 1:需要有序 0:不需要有序
  31. "bins" => [$bin],//可执行货箱任务
  32. ]];*/
  33. $this->post = [[
  34. "taskMode" => 2,
  35. "bins"=>[[
  36. "taskCode" =>"TEST-BS2011160007",
  37. "binCode" => "IDE0000001",
  38. // "fromLocCode" => "BIN-IN1",
  39. "toLocCode" => "BIN-OUT1",
  40. ],[
  41. "taskCode" =>"TEST-BS2011160008",
  42. "binCode" => "IDE0000001",
  43. // "fromLocCode" => "BIN-IN1",
  44. "toLocCode" => "BIN-OUT1",
  45. ],[
  46. "taskCode" =>"TEST-BS2011160009",
  47. "binCode" => "IDE0000001",
  48. // "fromLocCode" => "BIN-IN1",
  49. "toLocCode" => "BIN-OUT1",
  50. ]],
  51. "groupCode" => 21,
  52. "priority" => 20,
  53. "sequenceFlag" => -1,
  54. ]];
  55. $this->post2 = [[
  56. "taskMode" => 2,
  57. "bins"=>[[
  58. "taskCode" =>"TEST-BS2011160016",
  59. "binCode" => "IDE0000002",
  60. // "fromLocCode" => "BIN-IN1",
  61. "toLocCode" => "BIN-OUT1",
  62. ],[
  63. "taskCode" =>"TEST-BS2011160017",
  64. "binCode" => "IDE0000009",
  65. // "fromLocCode" => "BIN-IN1",
  66. "toLocCode" => "BIN-OUT1",
  67. ],[
  68. "taskCode" =>"TEST-BS2011160018",
  69. "binCode" => "IDE0000014",
  70. // "fromLocCode" => "BIN-IN1",
  71. "toLocCode" => "BIN-OUT1",
  72. ],[
  73. "taskCode" =>"TEST-BS2011160019",
  74. "binCode" => "IDE0000016",
  75. // "fromLocCode" => "BIN-IN1",
  76. "toLocCode" => "BIN-OUT1",
  77. ]],
  78. "groupCode" => 'W12346',
  79. "priority" => 20,
  80. "sequenceFlag" => -1,
  81. ]];
  82. $this->backIn = [[
  83. "taskMode" => 1,
  84. "bins"=>[[
  85. "taskCode" =>"TESTININ-BS2011160016",
  86. "binCode" => "IDE0000052",
  87. "fromLocCode" => "BIN-OUT1",
  88. ],[
  89. "taskCode" =>"TESTIN-BS2011160017",
  90. "binCode" => "IDE0000004",
  91. "fromLocCode" => "BIN-OUT1",
  92. ],[
  93. "taskCode" =>"TESTIN-BS2011160018",
  94. "binCode" => "IDE0000054",
  95. "fromLocCode" => "BIN-OUT1",
  96. ],[
  97. "taskCode" =>"TESTIN-BS2011160019",
  98. "binCode" => "IDE0005683",
  99. "fromLocCode" => "BIN-OUT1",
  100. ]],
  101. "groupCode" => 'W12346In',
  102. "priority" => 20,
  103. "sequenceFlag" => -1,
  104. ]];
  105. $this->move = [[
  106. "taskMode" => 3,
  107. "bins"=>[[
  108. "taskCode" =>"TESTINM-BS2011160024",
  109. "binCode" => "IDE0000054",
  110. "fromLocCode" => "",
  111. "toLocCode" => "HAIB2-01-02",
  112. ],[
  113. "taskCode" =>"TESTINM-BS2011160023",
  114. "binCode" => "IDE0000004",
  115. "fromLocCode" => "",
  116. "toLocCode" => "HAIB2-01-01",
  117. ],[
  118. "taskCode" =>"TESTINM-BS2011160022",
  119. "binCode" => "IDE0005683",
  120. "fromLocCode" => "",
  121. "toLocCode" => "HAIB2-02-03",
  122. ]],
  123. "groupCode" => 'WM12352',
  124. "priority" => 20,
  125. "sequenceFlag" => -1,
  126. ]];
  127. $this->lightOn = [
  128. "areaCode"=> "1004",
  129. "PTLAction"=> 1,
  130. "PTLSettings"=> [
  131. "color"=> 1,
  132. "frequency"=> 1
  133. ],
  134. "displayInfo"=> [
  135. "detail01"=> "detail01",
  136. "detail02"=> "detail02",
  137. "detail03"=> "detail03",
  138. "qrCode"=> "qrCode",
  139. "qty00"=> "11",
  140. "qty01"=> 1,
  141. "qty02"=> 2,
  142. "title"=> "title",
  143. "uomDesc01"=> "uo",
  144. "uomDesc02"=> "uo"
  145. ],
  146. "locCode"=> "1004-BZ04-01-01"
  147. ];
  148. $this->lightOff = [
  149. "locCode"=> "12G03-21",
  150. ];
  151. }
  152. public function relocate(Request $request,$post){
  153. $response = Http::post(config('api.haiq.storage.moveBin'),$post);
  154. if (!$response->ok()){
  155. app('LogService')->log(__METHOD__,"haiq-请求失败,路径异常","REQUEST:".json_encode($this->post)." | RESPONSE:".$response);
  156. return ['success'=>false,"data"=>$response->body()];
  157. }
  158. if (($response["code"] ?? false) && $response["code"] != 200){
  159. app('LogService')->log(__METHOD__,"haiq-料箱出库失败","REQUEST:".json_encode($this->post)." | RESPONSE:".$response);
  160. return ['success'=>false,"data"=>$response["errMsg"]];
  161. }
  162. if (($response["status"] ?? false) && $response["status"] == 500){
  163. app('LogService')->log(__METHOD__,"haiq-料箱出库失败","REQUEST:".json_encode($this->post)." | RESPONSE:".$response);
  164. return ['success'=>false,"data"=>$response["msg"]];
  165. }
  166. app('LogService')->log(__METHOD__,"haiq-料箱出库成功","REQUEST:".json_encode($this->post)." | RESPONSE:".$response);
  167. return ["success"=>true];
  168. }
  169. public function light(Request $request,$post){
  170. $response = Http::post(config('api.haiq.storage.moveBin'),$post);
  171. if (!$response->ok()){
  172. app('LogService')->log(__METHOD__,"haiq-请求失败,路径异常","REQUEST:".json_encode($this->post)." | RESPONSE:".$response);
  173. return ['success'=>false,"data"=>$response->body()];
  174. }
  175. if (($response["code"] ?? false) && $response["code"] != 200){
  176. app('LogService')->log(__METHOD__,"haiq-料箱出库失败","REQUEST:".json_encode($this->post)." | RESPONSE:".$response);
  177. return ['success'=>false,"data"=>$response["errMsg"]];
  178. }
  179. if (($response["status"] ?? false) && $response["status"] == 500){
  180. app('LogService')->log(__METHOD__,"haiq-料箱出库失败","REQUEST:".json_encode($this->post)." | RESPONSE:".$response);
  181. return ['success'=>false,"data"=>$response["msg"]];
  182. }
  183. app('LogService')->log(__METHOD__,"haiq-料箱出库成功","REQUEST:".json_encode($this->post)." | RESPONSE:".$response);
  184. return ["success"=>true];
  185. }
  186. public function moveBin(Request $request){
  187. return $this->relocate($request,$this->post);
  188. }
  189. public function moveBin2(Request $request){
  190. return $this->relocate($request,$this->post2);
  191. }
  192. public function moveBinIn(Request $request){
  193. return $this->relocate($request,$this->backIn);
  194. }
  195. public function moveBinM(Request $request){
  196. return $this->relocate($request,$this->move);
  197. }
  198. public function lightOn(Request $request){
  199. return $this->relocate($request,$this->lightOn);
  200. }
  201. public function taskUpdate(Request $request){
  202. $this->service->taskUpdate();
  203. app('LogService')->log(__METHOD__,__FUNCTION__,json_encode($request->all()));
  204. return ['code'=>200,'errMsg'=>'','data'=>$request->all()];
  205. }
  206. public function exception(Request $request){
  207. $this->service->taskUpdate();
  208. app('LogService')->log(__METHOD__,__FUNCTION__,json_encode($request->all()));
  209. return ['code'=>200,'errMsg'=>'','data'=>$request->all()];
  210. }
  211. }