소스 검색

安卓提供盘点任务接口

haozi 4 년 전
부모
커밋
8fb30e998b
4개의 변경된 파일67개의 추가작업 그리고 88개의 파일을 삭제
  1. 58 0
      app/Http/ApiControllers/InventoryController.php
  2. 2 88
      app/Http/Controllers/TestController.php
  3. 4 0
      app/InventoryAccount.php
  4. 3 0
      routes/api.php

+ 58 - 0
app/Http/ApiControllers/InventoryController.php

@@ -0,0 +1,58 @@
+<?php
+
+
+namespace App\Http\ApiControllers;
+
+
+use App\Components\ApiResponse;
+use App\Http\Requests\AndroidGateRequest;
+use App\InventoryAccount;
+
+class InventoryController
+{
+    use ApiResponse;
+
+    /**
+     * @api {get} /inventory/inventoryTasks 获取盘点任务数据
+     * @apiName inventoryTasks
+     * @apiGroup inventory
+     *
+     * @apiParam {int} page 页数
+     * @apiParam {int} paginate 每页多少
+     *
+     * @apiSuccess {string} message 响应描述
+     * @apiSuccess {int} status_code HTTP响应码
+     * @apiSuccess {array} data 数据列表
+     *
+     * @apiSuccessExample {json} Success-Response:
+     *     HTTP/1.1 200 OK
+     *     {
+     *       "message": "请求成功",
+     *       "status_code": "200"
+     *       "data":[
+     *          {
+     *              "id"=>"宝时单号",
+     *              "created_at"   =>"任务创建时间",
+     *              "end_at"     =>"库位最后操作时间",
+     *              "owner_name"=>"货主名",
+     *              "type"=>"任务类型",
+     *              "total"=>"盘点任务数",
+     *              "processed"=>"盘点数",
+     *          }
+     *        ]
+     *     }
+     */
+    public function inventoryTasks(AndroidGateRequest $request)
+    {
+        $page       = $request->input("page",1);
+        $paginate   = $request->input("paginate",20);
+        $ownerIds=app('OwnerService')->getSelection();
+        $inventories=InventoryAccount::query()->with('owner')
+            ->orderBy('id','desc')
+            ->whereIn('status',['待盘点','盘点中','复盘中'])
+            ->whereIn('owner_id',$ownerIds)
+            ->paginate($paginate,'*', 'page',$page)
+            ->append(["owner_name"]);
+        $this->response(['inventories'=>$inventories]);
+    }
+}

+ 2 - 88
app/Http/Controllers/TestController.php

@@ -23,6 +23,7 @@ use App\Http\Controllers\api\thirdPart\syrius\units\Signature;
 use App\Http\Controllers\api\thirdPart\syrius\units\StorageTypeAttribute;
 use App\Http\Requests\AndroidGateRequest;
 use App\Http\Requests\OrderDelivering;
+use App\InventoryAccount;
 use App\Jobs\BatchTaskJob;
 use App\Jobs\BroadcastBatchToZhengCangJob;
 use App\Jobs\CacheShelfTaskJob;
@@ -269,94 +270,7 @@ class TestController extends Controller
     }
 
 
-}
-class Worker{
-    //监听socket
-    protected $socket = NULL;
-
-    //所有的socket连接
-    protected $allSockets = array();
-
-    //连接事件回调
-    public $onConnect = NULL;
-
-    //断线事件回调
-    public $onClose = NULL;
-
-    //接收消息事件回调
-    public $onMessage = NULL;
-
-    public function __construct($socket_address) {
-        //创建一个socket监听
-        $this->socket = stream_socket_server($socket_address);
-
-        //设置为非阻塞
-        stream_set_blocking($this->socket, 0);
-
-        //将socket监听加入allSockets
-        $this->allSockets[(int)$this->socket] = $this->socket;
-    }
-
-    public function run() {
-        while(true) {
-            //不监听可写事件与带外数据事件
-            $write = $except = array();
-            //监听所有的socket事件
-            $read = $this->allSockets;
-            //整个进程阻塞在这里,持续监听可读事件
-            //此处参数均为引用传递,在函数中会改变传值
-            stream_select($read, $write, $except, 60);
-
-            //处理所有可读事件
-            foreach ($read as $index => $socket) {
-                //如果是监听socket,此处表示有新的连接
-                if ($socket === $this->socket) {
-                    //通过stream_socket_accept获取新的连接
-                    $new_conn_socket = stream_socket_accept($socket);
 
-                    if ($this->onConnect) {
-                        //触发连接事件的回调,并将当前连接传递给回掉函数
-                        call_user_func($this->onConnect, $socket);
-                    }
-                    //记录此socket连接,以便于sream_select监听可读事件
-                    $this->allSockets[(int)$new_conn_socket] = $new_conn_socket;
-                } else
-                    //如果可读事件不为监听socket,则表示对应客户端有数据发过来
-                {
-                    //从连接中读取数据
-                    $buffer = fread($socket, 65535);
-                    //如果数据为空,表示客户端已经断开连接
-                    if ('' === $buffer || false === $buffer) {
-                        //尝试触发onClose回调
-                        if ($this->onClose) {
-                            call_user_func($this->onClose, $socket);
-                        }
-                        fclose($socket);
-                        //关闭socket连接并从allSockets中删除
-                        unset($this->allSockets[(int)$socket]);
-                        continue;
-                    }
-                    //表示一个正常的连接,已经读取到消息,交给回掉函数处理
-                    if ($this->onMessage) {
-                        call_user_func($this->onMessage, $socket, $buffer);
-                    }
-                }
-            }
-        }
-    }
-
-    public function asnTest(){
-        $service = new StoreItemService();
-        $docAsns = OracleDOCASNHeader::query()->whereIn('asnno',['ASN2112080434','ASN2112080435'])->get();
-        $storeItems = $service->getAsnDetailsByAsnHerder($docAsns);
-        dd($storeItems);
-    }
 
-    public function testSyncOrder(){
-        $order_no = 'SO211124008523';
-        $service = new OracleDOCOrderHeaderService();
-        $order_headers = $service->getQuery()->where('OrderNo',$order_no)->get();
-        $order_tracking_service = new OrderTrackingService();
-        $order_tracking_service->createByWmsOrderHeader($order_headers);
-    }
 }
+

+ 4 - 0
app/InventoryAccount.php

@@ -67,4 +67,8 @@ class InventoryAccount extends Model
             'mark'=>Auth::user()['name'],
         ]);
     }
+    public function getOwnerNameAttribute()
+    {
+        return $this->relations["owner"]["name"] ?? "";
+    }
 }

+ 3 - 0
routes/api.php

@@ -32,6 +32,9 @@ Route::prefix("v1")->group(function (){
             Route::prefix("order")->group(function () {
                 Route::GET('batchRecover', 'OrderController@recoverBatch');
             });
+            Route::prefix("inventory")->group(function () {
+                Route::GET('inventoryTasks', 'OrderController@getInventoryTasks');
+            });
         });
 });