Преглед изворни кода

同步asn时推单任务逻辑修改

eric2h пре 4 година
родитељ
комит
b87e0946c7

+ 28 - 6
app/Jobs/RejectedPushJob.php

@@ -2,6 +2,7 @@
 
 namespace App\Jobs;
 
+use App\OracleDOCASNDetail;
 use Illuminate\Bus\Queueable;
 use Illuminate\Contracts\Queue\ShouldQueue;
 use Illuminate\Foundation\Bus\Dispatchable;
@@ -25,14 +26,15 @@ class RejectedPushJob implements ShouldQueue
      * ['sku' => '75603675975072','taskNum' => 'JI20220316211', 'asnNo' => 'asn002', 'type' => '推单'],
      * ]
      */
-    private $pushData;
+    private $asnHerders;
 
     /**
-     * @param array $pushData
+     * RejectedPushJob constructor.
+     * @param $asnHerders
      */
-    public function __construct(array $pushData)
+    public function __construct($asnHerders)
     {
-        $this->pushData = $pushData;
+        $this->asnHerders = $asnHerders;
     }
 
 
@@ -43,8 +45,28 @@ class RejectedPushJob implements ShouldQueue
      */
     public function handle()
     {
+        $result = array();
+        $array=array();
+        if (count($this->asnHerders)>0){
+            foreach ($this->asnHerders as $asnHerder){
+                if ($asnHerder->asntype=='THRK'&&$asnHerder->notes){
+                    preg_match('/^[A-Z]{2}[0-9]{8}\d{0,8}/', $asnHerder->notes, $result);
+                    if (count($result)<1) continue;
+                    $details=OracleDOCASNDetail::query()->select('sku')->where('asnno',$asnHerder->asnno)->get();
+                    if (count($details)<1)continue;
+                    foreach ($details as $detail){
+                        $array[][] = [
+                            'sku'=>$detail->sku,
+                            'taskNum'=>$result[0],
+                            'asnNo'=>$asnHerder->asnno,
+                            'type'=>'推单'
+                        ];
+                    }
+                }
+            }
+        }
         $url = config('api.java.wms.rejectedPushTask.receivePush');
-        $response = Http::post($url, $this->pushData);
-        Log::info("推送信息!", ['res' => $response->body(), 'req' => $this->pushData]);
+        $response = Http::post($url, $array);
+        Log::info("推送信息!", ['res' => $response->body(), 'req' => $array]);
     }
 }

+ 0 - 19
app/Services/OracleDocAsnHerderService.php

@@ -61,23 +61,4 @@ class OracleDocAsnHerderService
             ->where('CustomerId', $customId)->count();
     }
 
-    public function rejectPush($asnHerders)
-    {
-        if (count($asnHerders)>0){
-            $arr=[];
-            foreach ($asnHerders as $asnHerder){
-                if ($asnHerder->asntype=='THRK'&&$asnHerder->notes){
-                    //['sku' => '75603675975072','taskNum' => 'JI20220316211', 'asnNo' => 'asn002', 'type' => '推单'],
-                    $arr[][] = [
-                        'sku'=>'sku',
-                        'taskNum'=>'sku',
-                        'asnNo'=>'sku',
-                        'type'=>'推单'
-                    ];
-                }
-            }
-            RejectedPushJob::dispatch($arr);
-        }
-    }
-
 }

+ 3 - 2
app/Services/StoreService.php

@@ -3,6 +3,7 @@
 namespace App\Services;
 
 use App\Feature;
+use App\Jobs\RejectedPushJob;
 use App\Jobs\StoreCreateInstantBill;
 use App\Order;
 use App\OwnerFeeDetail;
@@ -67,7 +68,7 @@ class StoreService
         $last_time = $this->getAsnLastSyncAt($created_at, 'create');
         $asnHerders = $oracleDocAsnHerderService->getWmsAsnOnStartDateCreate($last_time);
         try {
-            $oracleDocAsnHerderService->rejectPush($asnHerders);
+            RejectedPushJob::dispatch($asnHerders);
         } catch (\Exception $e) {
             Log::error("退货推送asn集合失败",[$e->getMessage()]);
         }
@@ -95,7 +96,7 @@ class StoreService
             ->log(__METHOD__, __FUNCTION__, '11 获取上次更新时间:' . $last_time );
         $asnHerders = $oracleDocAsnHerderService->getWmsAsnOnStartDateEdit($last_time);
         try {
-            $oracleDocAsnHerderService->rejectPush($asnHerders);
+            RejectedPushJob::dispatch($asnHerders);
         } catch (\Exception $e) {
             Log::error("退货推送asn集合失败",[$e->getMessage()]);
         }