Zhouzhendong преди 4 години
родител
ревизия
6bdcde95fc
променени са 2 файла, в които са добавени 70 реда и са изтрити 29 реда
  1. 26 27
      app/Console/Commands/SyncBatchTask.php
  2. 44 2
      app/Http/Controllers/TestController.php

+ 26 - 27
app/Console/Commands/SyncBatchTask.php

@@ -225,36 +225,35 @@ sql;
             $wmsBatches = DB::connection("oracle")->select(DB::raw($sql));
             $this->headerExe($wmsBatches);
             $batches = $this->batchService->get(["code"=>$nos]);
-            $updateOrder = [["code","batch_id"]];
-            $existOrder = [];
-            $updatingBatches = [];
-            foreach (Order::query()->select("code","batch_id")->whereNotNull("batch_id")->whereIn("code",$ods)->get() as $item){
-                $existOrder[$item->code] = $item->batch_id;
-            }
-            foreach ($batches as $batch){
-                $mark = false;
-                foreach ($map[$batch->code] as $on){
-                    if (!isset($existOrder[$on]) || $existOrder[$on]!=$batch->id){
-                        $updateOrder[] = [
-                            "code"=>$on,
-                            "batch_id"=>$batch->id
-                        ];
-                        $mark = true;
-                    }
+        }
+        $updateOrder = [["code","batch_id"]];
+        $existOrder = [];
+        $updatingBatches = [];
+        foreach (Order::query()->select("code","batch_id")->whereNotNull("batch_id")->whereIn("code",$ods)->get() as $item){
+            $existOrder[$item->code] = $item->batch_id;
+        }
+        foreach ($batches as $batch){
+            $mark = false;
+            foreach ($map[$batch->code] as $on){
+                if (!isset($existOrder[$on]) || $existOrder[$on]!=$batch->id){
+                    $updateOrder[] = [
+                        "code"=>$on,
+                        "batch_id"=>$batch->id
+                    ];
+                    $mark = true;
                 }
-                if ($mark)$updatingBatches[] = $batch;
-                unset($map[$batch->code]);
-            }
-            if (count($updateOrder)>1){
-                app("OrderService")->batchUpdate($updateOrder);//反向修改订单
-                LogService::log(__METHOD__,"波次同步-修改订单波次号",json_encode($updateOrder));
-                app("BatchService")->checkBatchOrderInfo($updatingBatches);
-                LogService::log(__METHOD__,"修改过的波次_",json_encode($updatingBatches));
-                LogService::log(__METHOD__,"波次注册一入口",json_encode($updatingBatches));
-                BatchTaskJob::dispatch($updatingBatches);    //在这里为波次注册队列任务!
             }
+            if ($mark)$updatingBatches[] = $batch;
+            unset($map[$batch->code]);
+        }
+        if (count($updateOrder)>1){
+            app("OrderService")->batchUpdate($updateOrder);//反向修改订单
+            LogService::log(__METHOD__,"波次同步-修改订单波次号",json_encode($updateOrder));
+            app("BatchService")->checkBatchOrderInfo($updatingBatches);
+            LogService::log(__METHOD__,"修改过的波次_",json_encode($updatingBatches));
+            LogService::log(__METHOD__,"波次注册一入口",json_encode($updatingBatches));
+            BatchTaskJob::dispatch($updatingBatches);    //在这里为波次注册队列任务!
         }
-
         if ($map){
             $waveCodes = array_keys($map);
             $waves = $this->service->get(["waveno"=>$waveCodes],["waveno"=>"in"]);

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

@@ -155,8 +155,50 @@ class TestController extends Controller
     }
     public function test()
     {
-        app("CacheShelfService")->_stationCacheLightOn("HAIB1-01-03","IDE0004463");
-        dd();
+        $batches = Batch::query()->where("created_at",'>=',"2021-05-28 11:00:00")->get();
+        foreach ($batches as $batch){
+            $code = $batch->code;
+            $wave = DB::connection("oracle")->selectOne(DB::raw("select * from DOC_WAVE_HEADER where WAVENO = ?"),[$code]);
+            if (!$wave){
+                $error[] = $code."FLUX无波次";
+                continue;
+            }
+            $owner = app("OwnerService")->codeGetOwner($wave->customerid);
+            $obj = [
+                "wms_status" => $this->wms_status($wave),
+                "wms_type"=>$wave->descr,
+                "created_at"=>date("Y-m-d H:i:s"),
+                "wms_created_at"=>$wave->addtime,
+                "updated_at"=>$wave->edittime,
+                "owner_id"=>$owner->id,
+            ];
+            $wave = Batch::query()->where("code",$code)->first();
+            if (!$wave){
+                $error[] = $code."本地无波次";
+                $obj["code"] = $code;
+                $wave = Batch::query()->create($obj);
+            }else{
+                Batch::query()->where("code",$code)->update($obj);
+            }
+            $ordernos = array_column(DB::connection("oracle")->select(DB::raw("select orderno from DOC_WAVE_DETAILS where WAVENO = ?"),[$code]),"orderno");
+            $count = Order::query()->whereIn("code",$ordernos)->count();
+            if (count($ordernos)!=$count)$error[] = $code."本地订单缺失";
+            Order::query()->whereIn("code",$ordernos)->update([
+                "batch_id"=>$wave->id
+            ]);
+            Order::query()->with(["batch","bin"])->whereIn("code",$ordernos)->get()->each(function ($order){
+                if (!$order->bin){
+                    $bin = DB::connection("oracle")->selectOne(DB::raw("select seqno from DOC_WAVE_DETAILS where waveno = ? and orderno = ?"),[$order->batch->code,$order->code]);
+                    if ($bin){
+                        OrderBin::query()->create([
+                            'order_id' => $order->id,
+                            'number' => $bin->seqno,
+                        ]);
+                    }
+                }
+            });
+        }
+        dd("OK");
         $asnno = "ASN2105240178";
         $query = DB::raw("SELECT b.ALTERNATE_SKU1,h.WAREHOUSEID,h.asnno,d.ASNLINENO,d.SKUDESCRC,h.CUSTOMERID,d.SKU,d.PACKID,d.RECEIVEDQTY_EACH,d.EXPECTEDQTY_EACH,d.LOTATT01,d.LOTATT02,d.lotatt04,".
             "d.lotatt05,d.lotatt08,d.USERDEFINE1,d.USERDEFINE2,d.USERDEFINE3,d.USERDEFINE4,d.USERDEFINE5,d.RECEIVINGLOCATION FROM DOC_ASN_DETAILS d ".