loustwo vor 3 Jahren
Ursprung
Commit
2732cf8e54

+ 2 - 0
app/Http/Controllers/api/thirdPart/haochuang/SortingController.php

@@ -191,6 +191,8 @@ SQL;
         $messageId = $batch_id.($childIndex == null ? '' : '#'.$childIndex);
         (new WaveService())->sendPiece("HC-ST-".$messageId, UserToken::getUser($token)->id ?? '0', $ownerId,
                                             $warehouseId, date("Y-m-d H:i:s"), $number);
+
+        (new WaveService())->sendOwnerPiece($batch_id,$warehouseId,$ownerId,date("Y-m-d H:i:s"));
         return $data;
     }
 

+ 76 - 20
app/Services/WaveService.php

@@ -4,8 +4,14 @@
 namespace App\Services;
 
 
+use App\OracleBasSKU;
+use App\OracleDOCOrderDetail;
+use App\OracleDOCOrderHeader;
+use App\OracleDOCWaveDetails;
 use App\OracleDOCWaveHeader;
+use App\Owner;
 use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\DB;
 use App\Traits\ServiceAppAop;
 use Illuminate\Support\Facades\Http;
@@ -14,7 +20,9 @@ use Illuminate\Support\Facades\Http;
 class WaveService
 {
     use ServiceAppAop;
-    protected $modelClass=Wave::class;
+
+    protected $modelClass = Wave::class;
+
     public function queryWave(Request $request)
     {
         $sql = $this->createSqlByCondition($request);
@@ -54,6 +62,7 @@ class WaveService
         $sql .= " left join BAS_CODES codes on wave_header.WaveStatus = codes.CODE and codes.codeId = 'SO_STS'";
         return $sql;
     }
+
     public function cancelPrint($ids)
     {
         $meg = ['success' => false, 'fail_info' => null];
@@ -99,7 +108,7 @@ class WaveService
             $childSql .= " and addTime < '" . $end_time . " 23:59:59'";
         }
         if ($wave_num) {
-            $childSql .= " and waveNo like '" .trim($wave_num). "'";
+            $childSql .= " and waveNo like '" . trim($wave_num) . "'";
         }
         if ($wave_status) {
             $childSql .= " and waveStatus = " . $wave_status;
@@ -126,7 +135,8 @@ class WaveService
         return ['page' => $page, 'paginate' => $paginate, 'start_time' => $start_time, 'end_time' => $end_time, 'wave_num' => $wave_num, 'wave_status' => $wave_status,];
     }
 
-    public function getSql(Request $request){
+    public function getSql(Request $request)
+    {
         $childSql = "( select row_number() over (order by addTime desc ) nums,UdfPrintFlag2,WaveNo,WaveStatus,Descr,CarrierID,WaveDispatchID,addWho,addTime,WaveRule,UserDefine1,UserDefine2 from doc_wave_header where 1=1 ";
         if ($request->input('start_time')) {
             $childSql .= " and addTime > '" . $request->input('start_time') . " 00:00:00' ";
@@ -137,17 +147,17 @@ class WaveService
         if ($request->input('wave_num')) {
             $wave_num = $request->input('wave_num');
             $wave_num = $this->getWaveNoString($wave_num);
-            if(strpos($wave_num,',')){
-                $childSql .= " and WaveNo in (" .$wave_num . ") ";
-            }else{
-                $childSql .= " and WaveNo like '" .$wave_num . "' ";
+            if (strpos($wave_num, ',')) {
+                $childSql .= " and WaveNo in (" . $wave_num . ") ";
+            } else {
+                $childSql .= " and WaveNo like '" . $wave_num . "' ";
             }
         }
         if ($request->input('wave_status')) {
             $childSql .= " and WaveStatus =  '" . $request->input('wave_status') . "' ";
         }
-        $childSql.=' order by addTime';
-        $childSql =  $childSql . ") wave_header ";
+        $childSql .= ' order by addTime';
+        $childSql = $childSql . ") wave_header ";
         $sql = ' select wave_header.WaveNo,' .
             'wave_header.WaveStatus,' .
             'codes.CODENAME_C,' .
@@ -159,7 +169,7 @@ class WaveService
             'wave_header.UserDefine1,' .
             'wave_header.UserDefine2,' .
             'wave_header.WaveDispatchID,' .
-            'wave_header.UdfPrintFlag2 from ' ;
+            'wave_header.UdfPrintFlag2 from ';
         $sql .= $childSql;
         $sql .= " left join BAS_CUSTOMER  customer on  customer.CustomerID  = wave_header.CarrierID and customer.CUSTOMER_TYPE = 'CA'";
         $sql .= " left join BAS_CODES codes on wave_header.WaveStatus = codes.CODE and codes.codeId = 'SO_STS'";
@@ -190,26 +200,28 @@ class WaveService
         ]];
         return $arr;
     }
-    public function getWaveNoString($wave_num){
+
+    public function getWaveNoString($wave_num)
+    {
         $sqlString = '';
-        if(!$wave_num){
+        if (!$wave_num) {
             return $sqlString;
         }
-        if(strpos($wave_num,"%")){
+        if (strpos($wave_num, "%")) {
             return $wave_num;
         }
-        if(strpos($wave_num,",") ){
+        if (strpos($wave_num, ",")) {
 
-            $arr = explode(',',$wave_num);
+            $arr = explode(',', $wave_num);
             $let = count($arr);
-            for($i=0;$i<$let;$i++){
-                $arr[$i] = "'".$arr[$i]."'";
+            for ($i = 0; $i < $let; $i++) {
+                $arr[$i] = "'" . $arr[$i] . "'";
             }
-            $sqlString = implode(",",$arr);
+            $sqlString = implode(",", $arr);
             return $sqlString;
         }
-        if($wave_num){
-            $sqlString = "'".$wave_num."'";
+        if ($wave_num) {
+            $sqlString = "'" . $wave_num . "'";
         }
         return $sqlString;
     }
@@ -246,4 +258,48 @@ class WaveService
             app('LogService')->log("二次分拣计件",  "sendPiece", '服务端错误:'.$http->body());
         }
     }
+
+
+    public function sendOwnerPiece($batch_id,$warehouseId,$ownerId,$date)
+    {
+        $url = config('api.java.base') . config('api.java.piece.ownerLog.delivery');
+        $waveQuery = OracleDOCWaveDetails::query()->select("orderNo")->where("waveNo", $batch_id);
+        $items = OracleDOCOrderDetail::query()->where("orderNo", $waveQuery)->get();
+        if (count($items) == 0) {
+            app('LogService')->log("二次分拣货主计件",  "batch_id details is null", $batch_id);
+            return;
+        }
+        foreach ($items as $orderDetail) {
+            $basSku = OracleBasSKU::query()->where("CUSTOMERID",$orderDetail->customerid)->where("sku",$orderDetail->sku)->first();
+            if(isNull($basSku)){
+                app('LogService')->log("二次分拣货主计件",  "CUSTOMERID sku is null", $orderDetail->customerid.$orderDetail->sku);
+                continue;
+            }
+            $request = [
+                "messageId" => $batch_id.$orderDetail->orderno.$orderDetail->sku.$orderDetail->orderlineno ,
+                "deliveryOrderCode" => $orderDetail->orderno,
+                "warehouseId" => $warehouseId,
+                "ownerId" => $ownerId,
+                "userId" => Auth::user()['id'],
+                "userType" => 0,
+                "jobType" => "二次分拣",
+                "jobName" => "二次分拣",
+                "pieceTime" => $date,
+                "number" => $orderDetail->qty_each,
+                "itemNumber" =>$orderDetail->qty_each,
+                "commodityName" => $basSku->descr_c
+            ];
+            app('LogService')->log("二次分拣货主计件",  "通知服务端", json_encode($request));
+            $http = Http::post($url, $request);
+            if (!$http->successful()) {
+                app('LogService')->log("二次分拣货主计件",  "sendPiece", '发送失败:'.$http->body());
+                return;
+            }
+            $result = $http->json();
+            if ($result["code"] != 200) {
+                app('LogService')->log("二次分拣货主计件",  "sendPiece", '服务端错误:'.$http->body());
+            }
+        }
+    }
+
 }