Просмотр исходного кода

Merge branch 'zzd'

# Conflicts:
#	app/Http/Controllers/OrderController.php
LD 5 лет назад
Родитель
Сommit
409db83bc0

+ 87 - 13
app/Http/Controllers/CommodityController.php

@@ -4,7 +4,9 @@ namespace App\Http\Controllers;
 
 use App\Commodity;
 use App\Imports\CommodityImport;
-use App\OracleBasSKU;
+use App\Services\CommodityBarcodeService;
+use App\Services\CommodityService;
+use App\Services\LogService;
 use Exception;
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Http\Request;
@@ -175,27 +177,42 @@ class CommodityController extends Controller
 
 
     public function syncOwnerCommodities($owner_id,$owner_code){
+        $today = date('Y-m-d H:i:s');
+        $codeColumn = ['alternate_sku1','alternate_sku2'];
         $map = [];
         $skus = [];
         $wmsCommodities = app('oracleBasSkuService')->getOwnerCommodities(['code' => $owner_code]);
         foreach ($wmsCommodities as $index => $wmsCommodity){
             $map[$wmsCommodity->sku] = $index;
             $skus[] = $wmsCommodity->sku;
+            $trimSku = rtrim($wmsCommodity->sku,"*");
+            if ($trimSku != $wmsCommodity->sku){
+                $skus[] = $trimSku;
+                $map[$trimSku] = $index;
+            }
         }
+        /** @var CommodityService $commodityService */
+        $commodityService = app('commodityService');
+        /** @var CommodityBarcodeService $commodityBarcodeService */
+        $commodityBarcodeService = app('commodityBarcodeService');
 
-        $commodities = app('commodityService')->getOwnerCommodities(['id' => $owner_id, 'sku'=>$skus]);
-
+        $commodities = $commodityService->getOwnerCommodities(['owner_id' => $owner_id, 'sku'=>$skus]);
         $updateCommodities = [];
         $updateCommodities[] = [
-            'id', 'name', 'length', 'width', 'height', 'volumn',
+            'id', 'sku', 'name', 'length', 'width', 'height', 'volumn',
         ];
+        $barcodeMap = [];
+        $commoditiesId = [];
+        $barcodes = [];
         foreach ($commodities as $commodity){
             $wms = $wmsCommodities[$map[$commodity->sku]];
-            if (($commodity->length != $wms->skulength) || ($commodity->width != $wms->skuwidth)
-                || ($commodity->height != $wms->skuhigh) || ($commodity->volumn != $wms->cube)
-                || ($commodity->name != $wms->descr_c)){
+            $trimSku = rtrim($wms->sku,"*");
+            if (($commodity->sku != $trimSku) || ($commodity->length != $wms->skulength)
+                || ($commodity->width != $wms->skuwidth) || ($commodity->name != $wms->descr_c)
+                || ($commodity->height != $wms->skuhigh) || ($commodity->volumn != $wms->cube)){
                 $updateCommodities[] = [
                     'id'=>$commodity->id,
+                    'sku'=>$trimSku,
                     'name' => $wms->descr_c,
                     'length' => $wms->skulength,
                     'width' => $wms->skuwidth,
@@ -203,17 +220,51 @@ class CommodityController extends Controller
                     'volumn' => $wms->cube
                 ];
             }
+            foreach ($codeColumn as $column){
+                if ($wms[$column]){
+                    $wmsCode = rtrim($wms[$column],"*");
+                    $barcodeMap[$wmsCode] = $commodity->id;
+                    $barcodes[] = $wmsCode;
+                }
+            }
+            $commoditiesId[] = $commodity->id;
             unset($wmsCommodities[$map[$commodity->sku]]);
-            unset($map[$commodity->sku]);
+            if (isset($map[$wms->sku]))unset($map[$commodity->sku]);
+            if (isset($map[$trimSku]))unset($map[$trimSku]);
         }
-        unset($commodities);
-        unset($skus);
+        unset($commodities,$skus);
 
-        if (count($updateCommodities) > 1)app('commodityService')->batchUpdate($updateCommodities);
+        if (count($updateCommodities) > 1){
+            $commodityService->batchUpdate($updateCommodities);
+            LogService::log(__METHOD__,"同步商品-批量更新",json_encode($updateCommodities));
+            $commodityBarcodes = $commodityBarcodeService->get(['commodity_id'=>$commoditiesId, 'code'=>$barcodes]);
+
+            unset($commoditiesId,$barcodes);
+            foreach ($commodityBarcodes as $barcode){
+                if (($barcodeMap[$barcode->code]  ?? false) && $barcodeMap[$barcode->code] == $barcode->commodity_id){
+                    unset($barcodeMap[$barcode->code]);
+                }
+            }
+            if (count($barcodeMap) > 0){
+                $barcodeInsert = [];
+                foreach ($barcodeMap as $key => $value){
+                    $barcodeInsert[] = [
+                        'commodity_id'=>$value,
+                        'code' => $key,
+                        'created_at' => $today
+                    ];
+                }
+                $commodityBarcodeService->insert($barcodeInsert);
+                LogService::log(__METHOD__,"同步商品-录入条码",json_encode($barcodeInsert));
+            }
+        }
 
         $createCommodities = [];
-        $today = date('Y-m-d H:i:s');
+        $barcodeMap = [];
+        $skus = [];
+
         foreach ($map as $sku => $index){
+            if (substr($sku,-1) == "*")continue;
             $wms = $wmsCommodities[$index];
             $createCommodities[] = [
                 'owner_id' => $owner_id,
@@ -225,9 +276,32 @@ class CommodityController extends Controller
                 'volumn' => $wms->cube,
                 "created_at" => $today,
             ];
+            $barcodeMap[$wms->sku] = [];
+            foreach ($codeColumn as $column){
+                if ($wms[$column]){
+                    $barcodeMap[$wms->sku][] = rtrim($wms[$column],"*");
+                }
+            }
+            $skus[] = $wms->sku;
             unset($wmsCommodities[$index]);
         }
 
-        if (count($createCommodities) > 0)app('commodityService')->insert($createCommodities);
+        if (count($createCommodities) > 0){
+            $commodityService->insert($createCommodities);
+            LogService::log(__METHOD__,"同步商品-录入商品",json_encode($createCommodities));
+            $commodities = $commodityService->get(['owner_id'=>$owner_id , 'sku'=>$skus]);
+            $barcodeInsert = [];
+            foreach ($commodities as $commodity){
+                foreach ($barcodeMap[$commodity->sku] as $code){
+                    $barcodeInsert[] = [
+                        'commodity_id'=>$commodity->id,
+                        'code' => $code,
+                        'created_at' => $today
+                    ];
+                }
+            }
+            $commodityBarcodeService->insert($barcodeInsert);
+            LogService::log(__METHOD__,"同步商品-录入条码",json_encode($barcodeInsert));
+        }
     }
 }

+ 1 - 1
app/Http/Controllers/OrderController.php

@@ -29,7 +29,7 @@ class OrderController extends Controller
         $orders = $result['orders'];
         $commodities = $result['commodities'];
         $customers=OracleBasCustomer::query()->select('customerid','descr_c')->where('customer_type','OW')->where('active_flag','Y')->get();
-        $page = $request['page'] ?? 1;
+        $page = $request["page"] ?? 1;
         $codes=DB::connection('oracle')->table('BAS_CODES')->select('code','codename_c')->where('codeid','SO_STS')->orderBy('code','asc')->get();
         $orderIssueType = OrderIssueType::all();
         return view('order/index/delivering',compact('orders','customers','request','codes','commodities','page','picktotraceids','orderIssueType'));

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

@@ -413,9 +413,8 @@ class TestController extends Controller
     }
 
     public function test2(){
-        $a = OracleBasSKU::query()->where('customerid','HY')->get();
-        unset($a[0]);
-        dd($a[1],$a);
+        $a = "025648*96875**";
+        dd(substr($a,-1));
     }
 
     /*1*/

+ 1 - 2
app/Imports/StoreCheckingReceiveImport.php

@@ -34,7 +34,7 @@ class StoreCheckingReceiveImport implements ToCollection,WithHeadingRow
             "货主","SKU","商品名称","条码","数量","生产日期","失效日期","批号","唯一码"
         ];
         foreach ($header as $str){
-            if (!($row[$str] ?? false)){
+            if (!isset($row[$str])){
                 Cache::put("storeCheckingReceive",["success"=>false, "data"=>"表头不存在“".$str."”"],86400);
                 return false;
             }
@@ -88,7 +88,6 @@ class StoreCheckingReceiveImport implements ToCollection,WithHeadingRow
                 }
             }
             array_push($items,[
-                "bin_number" => $item["格口号"],
                 "imported_amount" => $item["数量"],
                 "produced_at" => $item["生产日期"],
                 "invalid_at" => $item["失效日期"],

+ 9 - 0
app/Services/CommodityBarcodeService.php

@@ -22,4 +22,13 @@ Class CommodityBarcodeService
         }
         return $query->first();
     }
+
+    public function get(array $params){
+        $query = CommodityBarcode::query()->select('commodity_id','code');
+        foreach ($params as $column => $values){
+            if (is_array($values)) $query->whereIn($column,$values);
+            else $query->where($column,$values);
+        }
+        return $query->get();
+    }
 }

+ 1 - 1
app/Services/StoreCheckingReceiveService.php

@@ -24,7 +24,7 @@ Class StoreCheckingReceiveService
     }
 
     public function paginate(array $params){
-        $query = StoreCheckingReceive::query();
+        $query = StoreCheckingReceive::query()->orderByDesc('id');
         $query->with('owner');
         $query = $this->conditionQuery($query, $params);
         return $query->paginate($params['paginate'] ?? 50);

+ 2 - 2
resources/views/order/index/delivering.blade.php

@@ -394,10 +394,10 @@
                 },
                 href(page){
                     let url = document.URL;
-                    if (url.indexOf('page='+this.page) != -1){
+                    if (url.indexOf('page='+this.page) !== -1){
                         url = url.replace("page="+this.page,"page="+page);
                     }else{
-                        if (url.indexOf('?') == -1) url += "?page="+page;
+                        if (url.indexOf('?') === -1) url += "?page="+page;
                         else url += "&page="+page;
                     }
                     window.location.href=url;

+ 1 - 1
resources/views/process/index.blade.php

@@ -1,7 +1,7 @@
 @extends('layouts.app')
 @section('title')二次加工管理@endsection
 @section('content')
-    <span id="nav2">
+<span id="nav2">
     @component('process.menu')@endcomponent
 </span>
     <div class="d-none" id="process">

+ 8 - 5
resources/views/store/checkingReceive/mission.blade.php

@@ -2,11 +2,11 @@
 @section('title')盘收一体-任务@endsection
 
 @section('content')
+<span id="nav2">
+    @component('store.menu')@endcomponent
+    @component('store.checkingReceive.menu')@endcomponent
+</span>
 <div id="container" class="d-none container-fluid">
-    <span>
-        @component('store.menu')@endcomponent
-        @component('store.checkingReceive.menu')@endcomponent
-    </span>
     <div class="modal fade" id="import" tabindex="-1" role="dialog" aria-hidden="true">
         <div class="modal-dialog modal-dialog-centered modal-lg" role="document">
             <div class="modal-content">
@@ -21,7 +21,7 @@
                             <input name="file" hidden type="file" class="col-5" id="excelFile" @change="getFile($event)"
                                    accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel">
                         </label>
-                        <button class="btn btn-dark col-5" @click="$('#excelFile').trigger('click');">选择Excel文件</button><br>
+                        <button class="btn btn-dark col-5" @click="selectFile()">选择Excel文件</button><br>
                         <small class="text-primary">@{{ excel.file ? excel.file.name : '' }}</small>
                     </div>
                 </div>
@@ -203,6 +203,9 @@
                     setTimeout(function () {
                         $("#popover").removeAttr('hidden').popover('show');
                     },0);
+                },
+                selectFile(){
+                    $('#excelFile').trigger('click');
                 }
             },
         });

+ 10 - 10
resources/views/store/checkingReceive/show.blade.php

@@ -2,16 +2,16 @@
 @section('title')盘收一体-任务@endsection
 
 @section('content')
+<span id="nav2">
+    @component('store.menu')@endcomponent
+    @component('store.checkingReceive.menu')
+        @can('入库管理-盘收一体-盘收')
+        <li class="nav-item">
+            <a class="nav-link" href="{{URL::current()}}" :class="{active:isActive('mission',3)}">盘收</a>
+        </li>@endcan
+    @endcomponent
+</span>
     <div id="container" class="d-none container-fluid">
-        <span>
-            @component('store.menu')@endcomponent
-            @component('store.checkingReceive.menu')
-                @can('入库管理-盘收一体-盘收')
-                <li class="nav-item">
-                    <a class="nav-link" href="{{URL::current()}}" :class="{active:isActive('mission',3)}">盘收</a>
-                </li>@endcan
-            @endcomponent
-        </span>
         <div class="row m-2 card">
             <audio src="{{asset('sound/warning_otherBarcode.mp3')}}" controls="controls" preload id="soundWarning" hidden>
             </audio>
@@ -129,7 +129,7 @@
                 asn_amount:'{{$storeCheckingReceiveItem->asn_amount}}',imported_diff_amount:'{{$storeCheckingReceiveItem->imported_diff_amount}}',
                 asn_diff_amount:'{{$storeCheckingReceiveItem->asn_diff_amount}}',produced_at:'{{$storeCheckingReceiveItem->produced_at}}',
                 invalid_at:'{{$storeCheckingReceiveItem->invalid_at}}',batch_code:'{{$storeCheckingReceiveItem->batch_code}}',
-                unique_code:'{{$storeCheckingReceiveItem->unique_code}}'}
+                unique_code:'{{$storeCheckingReceiveItem->unique_code}}'},
                 @endforeach
             ],
             inputMode : 'regular',