Browse Source

BUG修复

Zhouzhendong 5 năm trước cách đây
mục cha
commit
488eded3e0

+ 5 - 3
app/Http/Controllers/TestController.php

@@ -77,7 +77,6 @@ class TestController extends Controller
         echo ($inventoryCompareService)->getCreatingMissionCode('安桥主品');
         echo ($inventoryCompareService)->getCreatingMissionCode('安桥主品');
         echo ($inventoryCompareService)->getCreatingMissionCode('安桥主品');
-
     }
 
     function setCache(Request $request)
@@ -164,8 +163,6 @@ class TestController extends Controller
 
     public function delme()
     {
-
-
         $fields = [
             'doc_order_header.userdefine1',
             'doc_order_header.userdefine2',
@@ -186,6 +183,11 @@ class TestController extends Controller
 
         dd($_temOracleInfo);
     }
+
+    public function mergerPackageData(){
+
+    }
+
     public function excelIt()
     {
         $excel = new ExcelController();

+ 13 - 2
app/OrderPackage.php

@@ -3,11 +3,15 @@
 namespace App;
 
 use App\Http\Controllers\Controller;
+use App\Services\LogService;
 use App\Services\OrderIssueService;
+use App\Services\OrderPackageService;
+use App\Services\OrderService;
 use App\Traits\ModelTimeFormat;
 use Carbon\Carbon;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Support\Arr;
+use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\DB;
 
 class OrderPackage extends Model
@@ -98,10 +102,16 @@ class OrderPackage extends Model
         $packages = [];
         $now = Carbon::now();
         foreach($resultOracleObjs as $resultOracleObj){
+            /** @var OrderService */
+            $order = app('orderService')->logisticNumberCreateOrder($resultOracleObj['SOReference5']);
+            if (!$order){
+                LogService::log(__METHOD__,"此包裹在WMS未找到order",json_encode($resultOracleObj),Auth::user()['id']);
+                continue;
+            }
             array_push($packages,[
                 'batch_number'=>$batchCode??'',
-                /** @var OrderIssueService $orderIssueService */
-                'order_id' => app('orderIssueService')->createOrFindByOrderNo($resultOracleObj['orderno']),
+                /** @var OrderPackageService */
+                'order_id' => $order->id,
                 'logistic_number'=>$resultOracleObj['SOReference5']??'',
                 'weight'=>$weight,
                 'weighed_at'=> $now,
@@ -112,6 +122,7 @@ class OrderPackage extends Model
         DB::transaction(function ()use($packages){
             Package::query()->insert($packages);
         });
+        LogService::log(__METHOD__,"批量录入包裹成功",json_encode($packages),Auth::user()['id']);
     }
     public function unifyThisMeasureUnderSameBatch(){
         $this->fetchPaperBox();

+ 2 - 0
app/Package.php

@@ -3,6 +3,7 @@
 namespace App;
 
 use App\Http\Controllers\Controller;
+use App\Services\OrderIssueService;
 use Carbon\Carbon;
 use Illuminate\Database\Eloquent\Model;
 use App\Traits\ModelTimeFormat;
@@ -89,6 +90,7 @@ class Package extends Model
         foreach($resultOracleObjs as $resultOracleObj){
             array_push($packages,[
                 'batch_number'=>$batchCode??'',
+                /** @var OrderIssueService */
                 'order_id' => app('orderIssueService')->createOrFindByOrderNo($resultOracleObj['orderno']),
                 'logistic_number'=>$resultOracleObj['SOReference5']??'',
                 'weight'=>$weight,

+ 59 - 4
app/Services/OrderService.php

@@ -4,14 +4,10 @@ namespace App\Services;
 
 use App\Logistic;
 use App\OracleActAllocationDetails;
-use App\OracleBasCustomer;
 use App\OracleDOCASNHeader;
-use App\OracleDOCOrderDetail;
 use App\OracleDOCOrderHeader;
 use App\Order;
 use App\OrderItems;
-use App\OrderPackage;
-use App\OrderPackageCommodities;
 use App\Owner;
 use App\RejectedBill;
 use App\Shop;
@@ -104,4 +100,63 @@ class OrderService
         }
         return $this->findOrCreateByClientCode($orderHeader['soreference1']);
     }
+
+    public function first(array $params){
+        $order = Order::query();
+        foreach ($params as $column => $value){
+            $order->where($column, $value);
+        }
+        return $order->first();
+    }
+
+    public function logisticNumberCreateOrder($logistic_number)
+    {
+        /**
+         * @var OracleActAllocationDetailService
+         * @var OracleActAllocationDetails $actAllocationDetail
+         */
+        $actAllocationDetail = app('oracleActAllocationDetailService')->first(['picktotraceid' => $logistic_number]);
+        $order = $this->first(['code' => $actAllocationDetail->orderno]);
+        if ($order) return $order;
+
+
+        $actAllocationDetail->load(['oracleDocOrderHeader' => function ($query) {
+            $query->with('oracleBASCode');
+        }]);
+        $orderHeader = $actAllocationDetail->oracleDocOrderHeader ?? null;
+        if ($orderHeader == null) return null;
+
+        $owner = app('ownerService')->first(['code' => $orderHeader->customerid]);
+        if (!$owner) {
+            $orderHeader->load('oracleBASCustomer');
+            $customer_name = $orderHeader->oracleBASCustomer ? $orderHeader->oracleBASCustomer->descr_c : null;
+            /** @var OwnerService */
+            if ($customer_name) $owner = app('ownerService')->create(['code' => $orderHeader->customerid, 'name' => $customer_name]);
+        }
+
+        $shop = null;
+        $shop_name = $orderHeader->issuepartyname;
+        if ($shop_name && $owner) {
+            $shop = app('shopService')->firstOrCreate(['name' => $shop_name, 'owner_id' => $owner->id]);
+        }
+
+        $logistics = app('logisticService')->firstOrCreate(['code' => $orderHeader->carrierid],
+            ['code' => $orderHeader->carrierid, 'name' => $orderHeader->carriername]);
+
+        return Order::query()->create([
+            'code' => $orderHeader->orderno,
+            'owner_id' => $owner ? $owner->id : null,
+            'wms_status' => $orderHeader->oracleBASCode ? $orderHeader->oracleBASCode->codename_c : null,
+            'created_at' => $orderHeader->addtime,
+            'logistic_id' => $logistics ? $logistics->id : null,
+            'shop_id' => $shop ? $shop->id : null,
+            'consignee_name' => $orderHeader->c_contact,
+            'consignee_phone' => $orderHeader->c_tel2,
+            'province' => $orderHeader->c_province,
+            'city' => $orderHeader->c_city,
+            'district' => $orderHeader->c_district,
+            'address' => $orderHeader->c_address1,
+            'client_code' => $orderHeader->soreference1,
+        ]);
+    }
 }

+ 1 - 1
app/Services/ProcessService.php

@@ -61,7 +61,7 @@ Class ProcessService
     }
 
     public function getSql(array $params){
-        return $this->conditionQuery($params)->whereNull('deleted_at')
+        return $this->conditionQuery($params)->whereNull('processes.deleted_at')
                 ->selectRaw('processes.code,processes.amount,processes.completed_amount,processes.status,processes.remark,processes.unit_price,processes.created_at')
             ->leftJoin('owners','processes.owner_id','owners.id')
                 ->selectRaw('owners.name owner_name')

+ 1 - 1
app/Services/RejectedService.php

@@ -92,7 +92,7 @@ class RejectedService
         return $this->conditionQuery($request->input())->get();
     }
     public function getSql(array $param){
-        $sql = $this->conditionQuery($param)->selectRaw('rejected_bills.*')->whereNull('deleted_at')
+        $sql = $this->conditionQuery($param)->selectRaw('rejected_bills.*')->whereNull('rejected_bills.deleted_at')
             ->leftJoin('owners','rejected_bills.id_owner','=','owners.id')
             ->selectRaw('owners.name owner_name')
             ->leftJoin('logistics','rejected_bills.id_logistic_return','=','logistics.id')

+ 1 - 1
app/Services/WaybillService.php

@@ -55,7 +55,7 @@ Class WaybillService
     }
 
     public function getSql(array $param){
-        $waybills = $this->conditionQuery($param)->whereNull('deleted_at');
+        $waybills = $this->conditionQuery($param)->whereNull('waybills.deleted_at');
         return $waybills->leftJoin('owners','owners.id','=','waybills.owner_id')->selectRaw('owners.name owner_name')
             ->leftJoin('units as warehouse_weight_unit','warehouse_weight_unit.id','=','waybills.warehouse_weight_unit_id')
                 ->selectRaw('warehouse_weight_unit.name warehouse_weight_unit_name')