ajun преди 4 години
родител
ревизия
6496b46e5b

+ 14 - 0
app/Http/Controllers/OrderPackageExpressBillPrintRecordController.php

@@ -0,0 +1,14 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use App\Services\OrderPackageExpressBillPrintRecordService;
+
+class OrderPackageExpressBillPrintRecordController extends Controller
+{
+    public function updateRecordApi($logistic_number,OrderPackageExpressBillPrintRecordService  $service,$task_id): array
+    {
+        return $service->expressBillPrintRecord($logistic_number,$task_id);
+    }
+
+}

+ 0 - 14
app/Http/Controllers/OrderPackageExpressBillPrintRecordsController.php

@@ -1,14 +0,0 @@
-<?php
-
-namespace App\Http\Controllers;
-
-use App\Services\OrderPackageExpressBillPrintRecordsService;
-
-class OrderPackageExpressBillPrintRecordsController extends Controller
-{
-    public function updateRecordApi($logistic_number,OrderPackageExpressBillPrintRecordsService  $service): array
-    {
-        return $service->expressBillPrintRecord($logistic_number);
-    }
-
-}

+ 5 - 15
app/Http/Controllers/PrintController.php

@@ -4,9 +4,7 @@ namespace App\Http\Controllers;
 
 use App\Components\AsyncResponse;
 use App\Services\DeliveryService;
-use App\Terminal;
-use App\TerminalPrinter;
-use App\TerminalPrinterLogistic;
+use App\Services\TerminalPrinterLogisticService;
 use Illuminate\Http\Request;
 
 class PrintController extends Controller
@@ -23,18 +21,10 @@ class PrintController extends Controller
     {
         if (!$request->has('printStr')) return ['success' => false, 'message' => '为空'];
         $results = app(DeliveryService::class)->getDelivery($request['printStr']);
-        $ip = $request->getClientIp();
-        $terminalQuery = Terminal::query()->select('id')->where('ip', $ip);
-        $terminalPrinterQuery = TerminalPrinter::query()->select('id')->whereIn('terminal_id',$terminalQuery);
-        $terminalPrinterLogistics = TerminalPrinterLogistic::query()->with('terminalPrinter','logistic')->whereIn('terminal_printer_id',$terminalPrinterQuery)->get();
-        foreach ($terminalPrinterLogistics as &$item) {
-            $logisticCode = $item['logistic']['code'];
-            $terminalPrinterName = $item['terminalPrinter']['printer_name'];
-            $data[$logisticCode] = $terminalPrinterName;
-        }
-        foreach ($results as &$result){
-            $result['printerName'] = $data[$result['logistic_code']] ?? '';
-        }
+        // 匹配打印机
+        $results = app(TerminalPrinterLogisticService::class)->setPrinterName($results);
+
+        //
         return ['success' => true, 'data' => $results];
     }
 

+ 3 - 2
app/OrderPackageExpressBillPrintRecords.php

@@ -7,11 +7,12 @@ use Illuminate\Database\Eloquent\Model;
 use App\Traits\ModelLogChanging;
 use Illuminate\Database\Eloquent\Relations\BelongsTo;
 
-class OrderPackageExpressBillPrintRecords extends Model
+class OrderPackageExpressBillPrintRecord extends Model
 {
     use ModelLogChanging;
+    protected $table = 'order_package_express_bill_print_records';
 
-    protected $fillable = ['order_id','order_package_id','process_id','logistic_number','print_count'];
+    protected $fillable = ['order_id','order_package_id','process_id','logistic_number','print_count','task_id'];
 
     public function order(): BelongsTo
     {

+ 2 - 2
app/Providers/AppServiceProvider.php

@@ -157,7 +157,7 @@ use App\Services\PrintPartImageService;
 use App\Services\DbOpenService;
 use App\Services\DeliveryTypeService;
 use App\Services\ErrorPushService;
-use App\Services\OrderPackageExpressBillPrintRecordsService;
+use App\Services\OrderPackageExpressBillPrintRecordService;
 use App\Services\TerminalPrinterLogisticService;
 
 class AppServiceProvider extends ServiceProvider
@@ -295,7 +295,7 @@ class AppServiceProvider extends ServiceProvider
         app()->singleton('OrderPackageCommoditiesService', OrderPackageCommoditiesService::class);
         app()->singleton('OrderPackageCommoditySerialNumberService', OrderPackageCommoditySerialNumberService::class);
         app()->singleton('OrderPackageExceptionTypeCountingRecordService', OrderPackageExceptionTypeCountingRecordService::class);
-        app()->singleton('OrderPackageExpressBillPrintRecordsService',OrderPackageExpressBillPrintRecordsService::class);
+        app()->singleton('OrderPackageExpressBillPrintRecordService',OrderPackageExpressBillPrintRecordService::class);
         app()->singleton('OrderPackageReceivedSyncRecordService', OrderPackageReceivedSyncRecordService::class);
         app()->singleton('OrderPackageReceivedSyncService', OrderPackageReceivedSyncService::class);
         app()->singleton('OrderPackageService', OrderPackageService::class);

+ 7 - 6
app/Services/OrderPackageExpressBillPrintRecordsService.php → app/Services/OrderPackageExpressBillPrintRecordService.php

@@ -4,16 +4,16 @@ namespace App\Services;
 
 use App\OrderPackage;
 use App\Traits\ServiceAppAop;
-use App\OrderPackageExpressBillPrintRecords;
+use App\OrderPackageExpressBillPrintRecord;
 use Illuminate\Support\Facades\Auth;
 
-class OrderPackageExpressBillPrintRecordsService
+class OrderPackageExpressBillPrintRecordService
 {
     use ServiceAppAop;
-    protected $modelClass=OrderPackageExpressBillPrintRecords::class;
+    protected $modelClass=OrderPackageExpressBillPrintRecord::class;
 
     // 添加 快递面单打印记录
-    public function expressBillPrintRecord($logisticNumber): array
+    public function expressBillPrintRecord($logisticNumber,$task_id): array
     {
         $orderPackage =  OrderPackage::query()->with('order')->where('logistic_number',$logisticNumber)->first();
         $data = ['logistic_number' => $logisticNumber];
@@ -22,13 +22,14 @@ class OrderPackageExpressBillPrintRecordsService
             $data['order_package_id'] = $orderPackage['id'];
         }
 
-        $printCount = OrderPackageExpressBillPrintRecords::query()->where('logistic_number',$logisticNumber)->max("print_count");
+        $printCount = OrderPackageExpressBillPrintRecord::query()->where('logistic_number',$logisticNumber)->max("print_count");
         if ($printCount == 0) $printCount = 1;
         else $printCount ++;
         $data['print_count'] = $printCount;
+        $data['task_id'] = $task_id;
 
         $data['process_id'] = Auth::user()['id'];
-        OrderPackageExpressBillPrintRecords::query()->create($data);
+        OrderPackageExpressBillPrintRecord::query()->create($data);
         return ['success' => true];
     }
 

+ 2 - 2
database/factories/OrderPackageExpressBillPrintRecordsFactory.php → database/factories/OrderPackageExpressBillPrintRecordFactory.php

@@ -2,10 +2,10 @@
 
 /** @var \Illuminate\Database\Eloquent\Factory $factory */
 
-use App\OrderPackageExpressBillPrintRecords;
+use App\OrderPackageExpressBillPrintRecord;
 use Faker\Generator as Faker;
 
-$factory->define(OrderPackageExpressBillPrintRecords::class, function (Faker $faker) {
+$factory->define(OrderPackageExpressBillPrintRecord::class, function (Faker $faker) {
     return [
         'order_id' => $faker->numberBetween(0,10),
         'order_package_id' => $faker->numberBetween(0,10),

+ 1 - 0
database/migrations/2021_07_29_114758_create_order_package_express_bill_print_records_table.php

@@ -20,6 +20,7 @@ class CreateOrderPackageExpressBillPrintRecordsTable extends Migration
             $table->integer('process_id')->comment('打印账号');
             $table->integer('logistic_number')->comment("面单号");
             $table->integer('print_count')->comment('第几次打印');
+            $table->string("task_id")->comment("打印任务编号");
             $table->timestamps();
         });
     }

+ 1 - 1
database/seeds/OrderPackageExpressBillPrintRecordsSeeder.php → database/seeds/OrderPackageExpressBillPrintRecordSeeder.php

@@ -2,7 +2,7 @@
 
 use Illuminate\Database\Seeder;
 
-class OrderPackageExpressBillPrintRecordsSeeder extends Seeder
+class OrderPackageExpressBillPrintRecordSeeder extends Seeder
 {
     /**
      * Run the database seeds.

+ 21 - 9
resources/views/maintenance/expressPrinting/print/template.blade.php

@@ -66,6 +66,8 @@
 
 
 @section('lastScript')
+    <script type="text/javascript" src='http://localhost:8000/CLodopfuncs.js?name=CLODOPA'></script>
+
     <script>
         let WebSocketStatus = {
             Close: 0,
@@ -142,7 +144,7 @@
                     let _this =this;
                     window.axios.post(url, data).then(res => {
                         this.printItems =this.printItems.concat(res.data.data);
-                         res.data.data.forEach((item)=>{
+                         res.data.data.forEach((item,i,array)=>{
                              _this.previewLogisticFace(item);
                         })
                         this.$forceUpdate();
@@ -152,8 +154,7 @@
                 },
                 // TODO ClientWs 返回信息
                 receiveClientWebSocketMessage(meg) {
-                    let data  = meg.data;
-                    data = JSON.parse(data);
+                    let data = JSON.parse(meg.data);
                     if (data['Status'] !== true){return ;}
                     let _this = this;
                     switch (data["ProcessType"]) {
@@ -189,12 +190,12 @@
                     let _this = this;
                     window.axios.post(url, data).then(res => {
                         if (res.data.success){
-                            console.log(res.data.data);
-                            this.printItems.forEach((item)=>{
+                             this.printItems.forEach((item)=>{
                                 res.data.data.forEach(node=>{
                                     if(node['task_id'] === item["task_id"]){
                                         item['base64'] = node['base64'];
-                                        _this.prin tImage(item);
+                                        _this.printImage(item);
+                                        //_this.LodopPrint(item);
                                     }
                                 })
 
@@ -239,8 +240,7 @@
                     if (data.type === "CAINIAO") {
                         let json = this.getCnPreviewTaskJson(data)
                         if (this.cnWebSocket && this.cnWebSocket.readyState === 1) {
-                            console.log(json);
-                            this.cnWebSocket.send(json)
+                             this.cnWebSocket.send(json)
                         }
                     } else if (data.type === "PDD") {
                         let json = this.getPddPreviewTaskJson(data)
@@ -250,7 +250,11 @@
                     }
                 },
                 handlerCnWebsocket(message) {
-                    let data = JSON.parse(message.data)
+                    let data = JSON.parse(message.data);
+                    if (data.status === 'failed'){
+                        window.tempTip.show(data.msg);
+                        return ;
+                    }
                     if (data.cmd === 'print') {
                         let url = data['previewImage'][0];
                         this.printItems.forEach((item)=>{
@@ -337,7 +341,15 @@
                 printImage(item){
                     let data = JSON.parse(JSON.stringify(item));
                     data.processType = "printImage";
+                    data.p
                     this.ClientWebSocket.send(JSON.stringify(data));
+                },
+                LodopPrint(item){
+                    let LODOP = getCLodop();
+                    LODOP.PRINT_INIT("打印插件功能演示_Lodop功能_BASE64编码串打印图片");
+                    LODOP.ADD_PRINT_IMAGE(100,100,"100%","100%",'data:image/jpeg;base64,'+item.base64);
+                    LODOP.ADD_PRINT_RECT("0%","0%","100%","100%",0,1)
+                    LODOP.PREVIEW();
                 }
             }
         });

+ 1 - 1
routes/apiLocal.php

@@ -161,7 +161,7 @@ Route::group(['prefix'=>'maintenance'],function (){
 
 /** 快递打印次数记录*/
 Route::group(['prefix'=>'printRecord'],function(){
-    Route::post("/updateRecord/{logistic_number}","OrderPackageExpressBillPrintRecordsController@updateRecordApi");
+    Route::post("/updateRecord/{logistic_number}/{task_id}","OrderPackageExpressBillPrintRecordController@updateRecordApi");
 });
 
 /** 控制台 */