Browse Source

临时提交

ajun 4 years ago
parent
commit
af34361c15

+ 16 - 2
app/Http/Controllers/PrintController.php

@@ -5,6 +5,8 @@ namespace App\Http\Controllers;
 use App\Components\AsyncResponse;
 use App\Services\DeliveryService;
 use App\Services\PrintService;
+use App\Terminal;
+use App\TerminalPrinter;
 use Illuminate\Http\Request;
 
 class PrintController extends Controller
@@ -20,8 +22,20 @@ class PrintController extends Controller
     public function getPrintDataApi(Request $request): array
     {
         if(!$request->has('printStr')) return ['success'=> false , 'message' => '为空'];
-        $result = app(DeliveryService::class)->getDelivery($request['printStr']);
-        return ['success' => true,'data' => $result];
+        $results = app(DeliveryService::class)->getDelivery($request['printStr']);
+        $ip = $request->getClientIp();
+        $terminal =  Terminal::query()->where('ip',$ip)->with('printers')->first();
+        if (!$terminal) return ['success' => false, 'messages' => '当前终端没有注册'];
+        $printers = [];
+        foreach ($terminal->printers as $printer) {
+            $printer_type =  $printer['print_type'];
+            if (!array_key_exists($printer_type,$printers)) $printers[$printer_type] = [];
+            $printers[$printer_type][] = $printer['printer_name'];
+        }
+        foreach ($results as $key=>$result) {
+            $results[$key]['printerName'] = $printers[$result['component_type']][0] ?? '';
+        }
+        return ['success' => true,'data' => $results];
     }
 
     public function uploadPrintDataApi(Request $request,DeliveryService  $service): array

+ 3 - 3
app/Http/Controllers/TerminalController.php

@@ -18,15 +18,15 @@ class TerminalController extends Controller
 
         $terminals =  Terminal::query()->orderByDesc('id')->paginate($request['paginate'] ?? 50);
 
-        return view('maintenance/expressPrinting/setting/terminal/index',
+        return view('maintenance.expressPrinting.setting.terminal.index',
             compact('terminals')
         );
     }
 
     public function storeApi(TerminalRequest  $request): array
     {
-        if (!Gate::allows('基础设置-快递打印-终端-添加'))
-            return ['success' => false, 'message' => '没有对应权限'];
+//        if (!Gate::allows('基础设置-快递打印-终端-添加'))
+//            return ['success' => false, 'message' => '没有对应权限'];
 
         $terminal = Terminal::query()->create($request->all());
         return ['success' => true, 'data' => $terminal];

+ 6 - 1
app/Http/Controllers/TestController.php

@@ -1750,7 +1750,12 @@ TEXT;
 
     public function testSum()
     {
-        dd(strpos("SFSYQHD",'F'));
+        dd(strpos("SFSYQHD",'E'));
+    }
+
+
+    public function showOrderInfo(){
+        
     }
 
 

+ 11 - 6
app/Services/SFDeliveryService.php

@@ -18,13 +18,15 @@ class SFDeliveryService implements DeliveryInterface
     function getDeliveryInfo($OracleDocOrderDeliveryInfos): array
     {
         $items = $OracleDocOrderDeliveryInfos->filter(function($item){
-            $consigned = $item->docOrderHeader->consigneeid;
-            if (strpos($consigned,'SF') == 0 && !in_array($consigned,['SFSYQHD','SFTHQHD','SFQHD']))
+            $consigned = $item->docOrderHeader['carrierid'];
+            if ((strpos($consigned,'SF') != false ) && (!in_array($consigned,['SFSYQHD','SFTHQHD']))){
                 return true;
+            }
             return false;
         });
-
         return $items->map(function($item) {
+            $delivery = $this->getDocOrderDeliveryInfo($item);
+            $item['delivery'] = $delivery;
             return [
                 // TODO 需要动态获取面单获取的组件 TYPE
                 'type' => 'SF',
@@ -35,7 +37,7 @@ class SFDeliveryService implements DeliveryInterface
                 'owner_code' => $item->docOrderHeader->customerid ?? '',
                 'logistic_code' => $item->docOrderHeader->userdefine1 ?? '',
                 'logistic_number' => $item['trackingno'],
-                'delivery' => $this->getDocOrderDeliveryInfo($item),
+                'delivery' => $this->getDelivery($item),
                 'base64' => $this->getBase64($item),
                 'printerName' => '',
             ];
@@ -49,15 +51,18 @@ class SFDeliveryService implements DeliveryInterface
         })->where('logistic_id', function(Builder $query)use($item){
             $query->from('logistics')->selectRaw('id')->where("code",$item['userdefine1']);
         })->first();
+
+        if (!$item) return '';
+
         $image = $this->draw($item['delivery'],$item,null);
         $path = '';
         $this->saveImage($image,$path);
         return $this->readImageBase64($path);
     }
 
-    function getDelivery($item)
+    function getDelivery($item): array
     {
-        return null;
+        return $this->getDocOrderDeliveryInfo($item);
     }
 
 

+ 23 - 22
app/Traits/DeliveryProcess.php

@@ -61,10 +61,11 @@ trait DeliveryProcess
     // 菜鸟面单和拼多多面单 TB PDD
     function getDocOrderDeliveryInfo($docOrderDelivery): array
     {
-        // 波次订单中枢
+        // 波次订单总数
         $wave_count = (function () use ($docOrderDelivery) {
-            return OracleDOCWaveDetails::query()->where('waveno', $docOrderDelivery->docOrderHeader['waveno'])->count();
-        });
+            $count = OracleDOCWaveDetails::query()->where('waveno', $docOrderDelivery->docOrderHeader['waveno'])->count();
+            return $count ? strval($count) : '0';
+        })();
         // 备注
         list($remark1, $remark2, $remark3) = (function () use ($docOrderDelivery) {
             switch ($docOrderDelivery->docOrderHeader['customerid'] ?? '') {
@@ -94,7 +95,7 @@ trait DeliveryProcess
             if (strstr($peo, '武乡')) return '上海嘉定区徐行镇武乡路9号';
             if (strstr($peo, '泗砖')) return '上海嘉定区徐行镇武乡路9号';
             return '宝时仓';
-        });
+        })();
         // 城镇 收货
         $raddr = (function () use ($docOrderDelivery) {
             $docOrderHeader  = $docOrderDelivery['doc_order_header'];
@@ -111,15 +112,16 @@ trait DeliveryProcess
                 '上海', '上海市', '江苏', '江苏省', '浙江', '浙江省', '北京', '北京市', '安徽', '安徽省', '山东', '河南', '江西', '湖南', '湖北', '山东省', '河南省', '江西省', '湖南省', '湖北省'
             ])) return 'D';
             return '';
-        });
+        })();
         return [
-            'waveno' => $docOrderDelivery->docOrderHeader['owner'],         // 波次
-            'print_sum' => '总打印数' . ($count ?? 0) . '行号#' . $docOrderDelivery->docOrderHeader->oracleDOCWaveDetail['seqno'], //  订单所处波次的序号
+            'waveno' => $docOrderDelivery->docOrderHeader['waveno'] ?? '',          // 波次
+            'print_sum' => '总打印数' . ($wave_count ?? 0) . '行号#' . $docOrderDelivery->docOrderHeader->oracleDOCWaveDetail['seqno'], //  订单所处波次的序号
             'wave_count' => $wave_count,
             // 订单总数
             'count' => (function () use ($docOrderDelivery) {
-                return OracleDOCOrderDetail::query()->where('orderno', $docOrderDelivery->docOrderHeader['ordenro'])->sum('qtyAllocated_each');
-            }),                         // 订单商品总数
+                $count = OracleDOCOrderDetail::query()->where('orderno', $docOrderDelivery->docOrderHeader['ordenro'])->sum('qtyAllocated_each') ;
+                return $count ? strval($count) : "0";
+            })(),                         // 订单商品总数
             'remark1' => $remark1,
             'remark2' => $remark2,
             'remark3' => $remark3,
@@ -136,7 +138,7 @@ trait DeliveryProcess
             'logistic_number' => $docOrderDelivery['delivery_no'],
             'raddr' => $raddr,                                              // 收货地址
             'YD' => $yd,                                                    // 韵达自定义
-            'H_EDI_15' => $docOrderDelivery->docOrderHeader['H_EDI_15'],    // 大头笔
+            'H_EDI_15' => $docOrderDelivery->docOrderHeader['H_EDI_15'] ?? '',     // 大头笔
             'logistic_name' => (function () use ($docOrderDelivery) {
                 $logistic = Logistic::query()->where('code', $docOrderDelivery->docOrderHeader['carrierid'])->first();
                 return $logistic['name'] ?? '';
@@ -174,8 +176,9 @@ trait DeliveryProcess
         })();
 
         // $ordercount 订单波次的订单总数
-        $ordercount = (function () use ($docOrderHeader) {
-            return OracleDOCWaveDetails::query()->where('waveno', $docOrderHeader['waveno'])->count();
+        $owner_count = (function () use ($docOrderHeader) {
+            $count =  OracleDOCWaveDetails::query()->where('waveno', $docOrderHeader['waveno'])->count();
+            return $count ? strval($count) : "0";
         })();
 
         // orderseq 订单在波次里的序号
@@ -241,11 +244,11 @@ trait DeliveryProcess
         // 仓库
         $wh = (function () use ($docOrderHeader) {
             $customerid = $docOrderHeader['customerid'] ?? '';
-            if (strstr('泗砖', $customerid)) return '泗砖宝石仓';
-            if (strstr('武乡', $customerid)) return '武乡宝石仓';
-            if (strstr('九干', $customerid)) return '九干宝石仓';
+            if (strstr($customerid,'泗砖' )) return '泗砖宝石仓';
+            if (strstr($customerid,'武乡' )) return '武乡宝石仓';
+            if (strstr($customerid,'九干' )) return '九干宝石仓';
             return '宝时仓';
-        });
+        })();
 
         $yd = (function () use ($docOrderHeader) {
             if ($docOrderHeader['carrierid'] == 'YUNDA') {
@@ -258,14 +261,12 @@ trait DeliveryProcess
             return '';
         })();
         return [
-            'waveno' => $docOrderHeader['owner'],
-            'print_sum' => '总打印数' . ($ordercount ?? 0) . '行号#' .$docOrderHeader->oracleDOCWaveDetail['seqno'] ?? '', //  订单所处波次的序号,
-            'wave_count' => (function()use($docOrderHeader){
-                return Logistic::query()->where('code',$docOrderHeader[''])->first()['name'];
-            })(),
+            'waveno' => $docOrderHeader['waveno'] ?? '',
+            'print_sum' => '总打印数' . ($owner_count ?? 0) . '行号#' .$docOrderHeader->oracleDOCWaveDetail['seqno'] ?? '', //  订单所处波次的序号,
+            'wave_count' => $owner_count,
             'orderno' => $docOrderHeader['orderno'] ?? '',
             'logistic_number' => $docOrderHeader['deliveryno'] ?? $docOrderHeader['soreference5'],
-            'count' => $ordercount,  // 订单所属波次订单总数
+            'count' => $owner_count,  // 订单所属波次订单总数
             'orderseq' => $orderseq, // 订单序号
             'seqno' => $seqno,       // 打印序号
             'remark1' => $remark1,   // 备注1

+ 4 - 4
resources/views/maintenance/expressPrinting/setting/printer/index.blade.php

@@ -5,19 +5,19 @@
 @section('content')
     <div class="container-fluid " id="list">
         <div class="card">
-            @can('基础设置-快递打印-打印机-添加')
+{{--            @can('基础设置-快递打印-打印机-添加')--}}
                 @include('maintenance.expressPrinting.setting.printer._create')
-            @endcan
+{{--            @endcan--}}
             @can('基础设置-快递打印-打印机-编辑')
                 @include('maintenance.expressPrinting.setting.printer._edit')
             @endcan
             <div class="card-body">
                 <div class="row pull-left m-1">
-                    @can('基础设置-快递打印-打印机-添加')
+{{--                    @can('基础设置-快递打印-打印机-添加')--}}
                         <button class="btn btn-outline-info mb-1 mr-3" @click="showCreatedModel"><span
                                 class="fa fa-plus"></span>&nbsp;新&nbsp;&nbsp;增
                         </button>
-                    @endcan
+{{--                    @endcan--}}
                 </div>
                 @include('maintenance.expressPrinting.setting.printer._table')
             </div>

+ 6 - 6
resources/views/maintenance/expressPrinting/setting/terminal/index.blade.php

@@ -5,19 +5,19 @@
 @section('content')
     <div class="container-fluid " id="list">
         <div class="card">
-            @can('基础设置-快递打印-终端-添加')
+{{--            @can('基础设置-快递打印-终端-添加')--}}
                 @include('maintenance.expressPrinting.setting.terminal._create')
-            @endcan
-            @can('基础设置-快递打印-终端-编辑')
+{{--            @endcan--}}
+{{--            @can('基础设置-快递打印-终端-编辑')--}}
                 @include('maintenance.expressPrinting.setting.terminal._edit')
-            @endcan
+{{--            @endcan--}}
             <div class="card-body">
                 <div class="row pull-left m-1">
-                    @can('基础设置-快递打印-终端-添加')
+{{--                    @can('基础设置-快递打印-终端-添加')--}}
                         <button class="btn btn-outline-info mb-1 mr-3" @click="showCreatedModel"><span
                                 class="fa fa-plus"></span>&nbsp;新&nbsp;&nbsp;增
                         </button>
-                    @endcan
+{{--                    @endcan--}}
                 </div>
                 @include('maintenance.expressPrinting.setting.terminal._table')
             </div>