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

Merge branch 'yang-fix-panel' into yang

# Conflicts:
#	app/Http/Controllers/Auth/LoginController.php
#	app/Http/Controllers/TestController.php
ANG YU 5 лет назад
Родитель
Сommit
6413712857
100 измененных файлов с 587 добавлено и 345 удалено
  1. 1 1
      app/AuditLog.php
  2. 1 1
      app/Authority.php
  3. 1 1
      app/Batch.php
  4. 1 1
      app/CarType.php
  5. 1 1
      app/Carrier.php
  6. 1 1
      app/City.php
  7. 1 1
      app/Commodity.php
  8. 1 1
      app/CommodityBarcode.php
  9. 17 0
      app/Console/Commands/ModelMakeCommand.php
  10. 0 46
      app/Console/Commands/SyncOrderCountingRecordTask.php
  11. 10 0
      app/Console/Commands/stubs/model.stub
  12. 4 0
      app/Console/Kernel.php
  13. 1 1
      app/CustomField.php
  14. 1 1
      app/Customer.php
  15. 1 1
      app/CustomerLog.php
  16. 1 1
      app/CustomerLogStatus.php
  17. 4 1
      app/CustomerTag.php
  18. 1 1
      app/Depository.php
  19. 15 0
      app/Exceptions/ErrorException.php
  20. 16 0
      app/Exceptions/Exception.php
  21. 16 0
      app/Exceptions/FatalException.php
  22. 17 4
      app/Exceptions/Handler.php
  23. 16 0
      app/Exceptions/PanicException.php
  24. 16 0
      app/Exceptions/WarningException.php
  25. 1 1
      app/Feature.php
  26. 1 1
      app/Http/Controllers/Auth/LoginController.php
  27. 0 1
      app/Http/Controllers/ControlPanelController.php
  28. 17 2
      app/Http/Controllers/CustomerBaseController.php
  29. 5 0
      app/Http/Controllers/CustomerTagController.php
  30. 13 1
      app/Http/Controllers/PriceModelController.php
  31. 278 199
      app/Http/Controllers/TestController.php
  32. 2 1
      app/Http/Controllers/api/thirdPart/haiq/StorageController.php
  33. 5 5
      app/Http/Requests/ForeignHaiRobotic_taskUpdateRequest.php
  34. 6 3
      app/Imports/OrderIssueImport.php
  35. 1 1
      app/InventoryAccount.php
  36. 1 1
      app/InventoryAccountMission.php
  37. 1 1
      app/InventoryBlindReceiveExcel.php
  38. 1 1
      app/InventoryCompare.php
  39. 1 1
      app/InventoryDailyLog.php
  40. 1 1
      app/InventoryDailyLoggingOwner.php
  41. 1 1
      app/JobType.php
  42. 1 1
      app/LaborCompany.php
  43. 1 1
      app/LaborReport.php
  44. 1 1
      app/LaborReportStatus.php
  45. 1 1
      app/Log.php
  46. 1 1
      app/Logistic.php
  47. 1 1
      app/LogisticNumberFeature.php
  48. 1 1
      app/LogisticTiming.php
  49. 1 1
      app/MaterialBox.php
  50. 1 1
      app/MeasuringMachine.php
  51. 1 1
      app/Menu.php
  52. 47 0
      app/ModelExtended.php
  53. 2 1
      app/OperatorLog.php
  54. 1 1
      app/OracleActAllocationDetails.php
  55. 1 1
      app/OracleActTransactionLog.php
  56. 2 2
      app/OracleBasCode.php
  57. 1 1
      app/OracleBasCustomer.php
  58. 1 1
      app/OracleBasSKU.php
  59. 1 1
      app/OracleDOCASNDetail.php
  60. 1 1
      app/OracleDOCASNHeader.php
  61. 1 1
      app/OracleDOCMovementDetail.php
  62. 1 1
      app/OracleDOCMovementHeader.php
  63. 1 1
      app/OracleDOCOrderDetail.php
  64. 1 1
      app/OracleDOCOrderHeader.php
  65. 1 1
      app/OracleDOCWaveDetails.php
  66. 1 1
      app/OracleDOCWaveHeader.php
  67. 1 1
      app/OracleDocOrderPackingSummary.php
  68. 1 1
      app/OracleIdxAsrsReceive.php
  69. 1 1
      app/OracleInvLotAtt.php
  70. 1 1
      app/OracleInvLotLocId.php
  71. 1 1
      app/Order.php
  72. 1 1
      app/OrderBin.php
  73. 1 1
      app/OrderCommodity.php
  74. 1 1
      app/OrderCommodityAssign.php
  75. 1 1
      app/OrderCountingRecord.php
  76. 1 1
      app/OrderIssue.php
  77. 2 2
      app/OrderIssueOnTop.php
  78. 1 1
      app/OrderIssueProcessLog.php
  79. 1 1
      app/OrderIssueType.php
  80. 1 1
      app/OrderPackage.php
  81. 1 1
      app/OrderPackageCommodities.php
  82. 1 1
      app/OrderTracking.php
  83. 1 1
      app/OrderTrackingOwner.php
  84. 1 1
      app/Owner.php
  85. 1 1
      app/OwnerAreaReport.php
  86. 1 1
      app/OwnerBillReport.php
  87. 1 1
      app/OwnerContract.php
  88. 1 1
      app/OwnerFeeDetail.php
  89. 1 1
      app/OwnerInStorageRule.php
  90. 1 1
      app/OwnerOutStorageRule.php
  91. 1 1
      app/OwnerPriceDirectLogistic.php
  92. 1 1
      app/OwnerPriceDirectLogisticCar.php
  93. 1 1
      app/OwnerPriceExpress.php
  94. 1 1
      app/OwnerPriceExpressProvince.php
  95. 1 1
      app/OwnerPriceLogistic.php
  96. 1 1
      app/OwnerPriceLogisticDetail.php
  97. 1 1
      app/OwnerPriceOperation.php
  98. 1 1
      app/OwnerReport.php
  99. 1 1
      app/OwnerStoragePriceModel.php
  100. 1 1
      app/OwnerStoragePriceModelOwner.php

+ 1 - 1
app/AuditLog.php

@@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Model;
 use Illuminate\Database\Eloquent\SoftDeletes;
 use App\Traits\ModelTimeFormat;
 
-class AuditLog extends Model
+class AuditLog extends ModelExtended
 {
     use ModelTimeFormat;
     use SoftDeletes;

+ 1 - 1
app/Authority.php

@@ -5,7 +5,7 @@ namespace App;
 use Illuminate\Database\Eloquent\Model;
 use App\Traits\ModelTimeFormat;
 
-class Authority extends Model
+class Authority extends ModelExtended
 {
     use ModelTimeFormat;
     protected $fillable = ['name','remark','id_parent','alias_name','type','relevance','permission'];

+ 1 - 1
app/Batch.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class Batch extends Model
+class Batch extends ModelExtended
 {
     protected $fillable = [
         'id','code','type', 'wms_type', 'status', 'wms_status', 'wms_created_at',"remark","owner_id",

+ 1 - 1
app/CarType.php

@@ -5,7 +5,7 @@ namespace App;
 use Illuminate\Database\Eloquent\Model;
 use App\Traits\ModelTimeFormat;
 
-class CarType extends Model
+class CarType extends ModelExtended
 {
     use ModelTimeFormat;
 

+ 1 - 1
app/Carrier.php

@@ -5,7 +5,7 @@ namespace App;
 use Illuminate\Database\Eloquent\Model;
 use App\Traits\ModelTimeFormat;
 
-class Carrier extends Model
+class Carrier extends ModelExtended
 {
     use ModelTimeFormat;
     protected $fillable=[

+ 1 - 1
app/City.php

@@ -5,7 +5,7 @@ namespace App;
 use Illuminate\Database\Eloquent\Model;
 use App\Traits\ModelTimeFormat;
 
-class City extends Model
+class City extends ModelExtended
 {
     use ModelTimeFormat;
     protected $fillable=[

+ 1 - 1
app/Commodity.php

@@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Database\Eloquent\Model;
 use App\Traits\ModelTimeFormat;
 
-class Commodity extends Model
+class Commodity extends ModelExtended
 {
     use ModelTimeFormat;
     protected $fillable=['name','sku','owner_id','created_at','length','width','height','volumn',"type","pack_spec"];

+ 1 - 1
app/CommodityBarcode.php

@@ -5,7 +5,7 @@ namespace App;
 use Illuminate\Database\Eloquent\Model;
 use App\Traits\ModelTimeFormat;
 
-class CommodityBarcode extends Model
+class CommodityBarcode extends ModelExtended
 {
     use ModelTimeFormat;
     protected $fillable=['code','commodity_id','created_at'];

+ 17 - 0
app/Console/Commands/ModelMakeCommand.php

@@ -0,0 +1,17 @@
+<?php
+
+
+namespace App\Console\Commands;
+
+
+class ModelMakeCommand extends \Illuminate\Foundation\Console\ModelMakeCommand
+{
+    protected function getStub()
+    {
+        if ($this->option('pivot')) {
+            return parent::getStub();
+        }
+        return __DIR__ . '/stubs/model.stub';
+    }
+
+}

+ 0 - 46
app/Console/Commands/SyncOrderCountingRecordTask.php

@@ -1,46 +0,0 @@
-<?php
-
-namespace App\Console\Commands;
-
-use App\Services\OrderCountingRecordService;
-use Carbon\Carbon;
-use Illuminate\Console\Command;
-
-class SyncOrderCountingRecordTask extends Command
-{
-    /**
-     * The name and signature of the console command.
-     *
-     * @var string
-     */
-    protected $signature = 'syncOrderCountingRecordTask';
-
-    /**
-     * The console command description.
-     *
-     * @var string
-     */
-    protected $description = 'Command description';
-
-    /**
-     * Create a new command instance.
-     *
-     * @return void
-     */
-    public function __construct()
-    {
-        parent::__construct();
-    }
-
-    /**
-     * Execute the console command.
-     *
-     */
-    public function handle()
-    {
-        $orderCountingRecordService = new OrderCountingRecordService;
-        $orderCountingRecordService->orderCountingRecords(Carbon::now()->toDateString(), Carbon::now()->toDateString(), null, '日');
-        $orderCountingRecordService->orderCountingRecords(Carbon::now()->toDateString(), Carbon::now()->toDateString(), null, '周');
-        $orderCountingRecordService->orderCountingRecords(Carbon::now()->toDateString(), Carbon::now()->toDateString(), null, '月');
-    }
-}

+ 10 - 0
app/Console/Commands/stubs/model.stub

@@ -0,0 +1,10 @@
+<?php
+
+namespace {{ namespace }};
+
+use Illuminate\Database\Eloquent\Model;
+
+class {{ class }} extends ModelExtended
+{
+    //
+}

+ 4 - 0
app/Console/Kernel.php

@@ -14,6 +14,7 @@ use App\Console\Commands\TestTemp;
 use App\Console\Commands\WASSyncWMSOrderInformation;
 use Illuminate\Console\Scheduling\Schedule;
 use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
+use Illuminate\Foundation\Console\ModelMakeCommand;
 
 class Kernel extends ConsoleKernel
 {
@@ -63,6 +64,9 @@ class Kernel extends ConsoleKernel
     protected function commands()
     {
         $this->load(__DIR__ . '/Commands');
+        $this->app->extend('command.model.make',function(ModelMakeCommand $base,$app){
+            return new \App\Console\Commands\ModelMakeCommand($app['files']);
+        });
         require base_path('routes/console.php');
     }
 }

+ 1 - 1
app/CustomField.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class CustomField extends Model
+class CustomField extends ModelExtended
 {
     protected $fillable=['table',
         'field',

+ 1 - 1
app/Customer.php

@@ -6,7 +6,7 @@ use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Database\Eloquent\Relations\HasMany;
 
-class Customer extends Model
+class Customer extends ModelExtended
 {
     use ModelTimeFormat;
 

+ 1 - 1
app/CustomerLog.php

@@ -5,7 +5,7 @@ namespace App;
 use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Model;
 
-class CustomerLog extends Model
+class CustomerLog extends ModelExtended
 {
     use ModelTimeFormat;
 

+ 1 - 1
app/CustomerLogStatus.php

@@ -5,7 +5,7 @@ namespace App;
 use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Model;
 
-class CustomerLogStatus extends Model
+class CustomerLogStatus extends ModelExtended
 {
     use ModelTimeFormat;
 

+ 4 - 1
app/CustomerTag.php

@@ -2,10 +2,13 @@
 
 namespace App;
 
+use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Model;
 
-class CustomerTag extends Model
+class CustomerTag extends ModelExtended
 {
+    use ModelTimeFormat;
+
     protected $fillable=[
         "name","explanation"
     ];

+ 1 - 1
app/Depository.php

@@ -5,7 +5,7 @@ namespace App;
 use Illuminate\Database\Eloquent\Model;
 use App\Traits\ModelTimeFormat;
 
-class Depository extends Model
+class Depository extends ModelExtended
 {
     use ModelTimeFormat;
     protected $fillable=[

+ 15 - 0
app/Exceptions/ErrorException.php

@@ -0,0 +1,15 @@
+<?php
+
+
+namespace App\Exceptions;
+
+
+use Throwable;
+
+class ErrorException extends Exception
+{
+    public function __construct($message = "",  $code = 0, Throwable $previous = null)
+    {
+        parent::__construct($message,$type='error',$code, $previous);
+    }
+}

+ 16 - 0
app/Exceptions/Exception.php

@@ -0,0 +1,16 @@
+<?php
+
+
+namespace App\Exceptions;
+
+
+use Throwable;
+
+class Exception extends \Exception
+{
+        public function __construct($message = "",$type='error', $code = 0, Throwable $previous = null)
+        {
+            parent::__construct($message, $code, $previous);
+            $this['type']=$type;
+        }
+}

+ 16 - 0
app/Exceptions/FatalException.php

@@ -0,0 +1,16 @@
+<?php
+
+
+namespace App\Exceptions;
+
+
+use Throwable;
+
+class FatalException extends Exception
+{
+
+    public function __construct($message = "",  $code = 0, Throwable $previous = null)
+    {
+        parent::__construct($message,$type='fatal',$code, $previous);
+    }
+}

+ 17 - 4
app/Exceptions/Handler.php

@@ -9,6 +9,8 @@ use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
 use Illuminate\Http\Exceptions\HttpResponseException;
 use Illuminate\Http\Request;
 use Illuminate\Http\Response;
+use Illuminate\Support\Facades\Auth;
+use Illuminate\Validation\ValidationException;
 use Symfony\Component\HttpKernel\Exception\HttpException;
 use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
 use Throwable;
@@ -51,13 +53,14 @@ class Handler extends ExceptionHandler
      *
      * @param Request $request
      * @param Throwable $exception
-     * @return \Symfony\Component\HttpFoundation\Response
+     * @return \Symfony\Component\HttpFoundation\Response|void
      * @throws Throwable
      */
     public function render($request, Throwable $exception)
     {
         $errMsg='';
         try{
+            $type = $exception->type ?? 'error';
             $errMsg=(function()use($exception){
                 return $errMsg=
                     '异常: '
@@ -65,15 +68,23 @@ class Handler extends ExceptionHandler
                     method_exists($exception,'getStatusCode')
                         ?($exception->getStatusCode()??'')
                         :'')
+                    .' errors:'.(
+                    method_exists($exception,'errors')
+                        ?(json_encode($exception->errors(),JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES)??'')
+                        :'')
                     .' message:'.(
                     method_exists($exception,'getMessage')
                         ?($exception->getMessage()??'')
                         :'')
                     .' trace:'.
-                    method_exists($exception,'getTraceAsString')
+                    (method_exists($exception,'getTraceAsString')
                         ?($exception->getTraceAsString()??'')
-                        :'';
+                        :'');
             })();
+            if($request->is("api/*")
+                && $exception instanceof ValidationException){
+                return response()->json($exception->errors(),200,[],JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
+            }
             if(strpos($exception->getMessage(),'This action is unauthorized')!==false){
                 return response()->view('exception.unauthorized');
             }
@@ -107,7 +118,9 @@ class Handler extends ExceptionHandler
                 $functionName,
                 ($errMsg??'')
                 .'请求:'.json_encode($request->all())
-                .'调用堆栈:'.$tracesAll
+                .'调用堆栈:'.$tracesAll,
+                Auth::id()??'',
+                $type
             );
         }
         return parent::render($request, $exception);

+ 16 - 0
app/Exceptions/PanicException.php

@@ -0,0 +1,16 @@
+<?php
+
+
+namespace App\Exceptions;
+
+
+use Throwable;
+
+class PanicException extends Exception
+{
+
+    public function __construct($message = "", $code = 0, Throwable $previous = null)
+    {
+        parent::__construct($message,  $type='panic', $code,$previous = null);
+    }
+}

+ 16 - 0
app/Exceptions/WarningException.php

@@ -0,0 +1,16 @@
+<?php
+
+
+namespace App\Exceptions;
+
+
+use Throwable;
+
+class WarningException extends Exception
+{
+
+    public function __construct($message = "",  $code = 0, Throwable $previous = null)
+    {
+        parent::__construct($message,$type='warning',$code, $previous);
+    }
+}

+ 1 - 1
app/Feature.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class Feature extends Model
+class Feature extends ModelExtended
 {
     protected $fillable = [
         "type",     //类型

+ 1 - 1
app/Http/Controllers/Auth/LoginController.php

@@ -34,7 +34,7 @@ class LoginController extends Controller
      *
      * @var string
      */
-    protected $redirectTo = '/control/panel/menu';
+    protected $redirectTo = '/rejected/index/general';
 
     /**
      * Create a new controller instance.

+ 0 - 1
app/Http/Controllers/ControlPanelController.php

@@ -5,7 +5,6 @@ namespace App\Http\Controllers;
 use App\Services\CheckActiveMenuService;
 use App\Services\LaborReportsCountingRecordService;
 use App\Services\NewOrderCountingRecordService;
-use App\Services\OrderCountingRecordService;
 use App\Services\RealtimePendingOrdersService;
 use App\Services\UserService;
 use App\User;

+ 17 - 2
app/Http/Controllers/CustomerBaseController.php

@@ -2,6 +2,8 @@
 
 namespace App\Http\Controllers;
 
+use App\Customer;
+use App\CustomerTag;
 use App\Owner;
 use App\Services\LogService;
 use Illuminate\Http\Request;
@@ -20,9 +22,10 @@ class CustomerBaseController extends Controller
     public function index(Request $request)
     {
         if(!Gate::allows('客户-查询')){ return redirect('denied');  }
-        $customers = app('CustomerService')->paginate($request->input(),["owners.contracts.files"]);
+        $customers = app('CustomerService')->paginate($request->input(),["owners.contracts.files","tags:id,name"]);
         $owners = app("OwnerService")->getIntersectPermitting(['id','name','customer_id']);
-        return response()->view('customer.customer.index',compact("customers","owners"));
+        $tags = CustomerTag::query()->get(["id","name"]);
+        return response()->view('customer.customer.index',compact("customers","owners","tags"));
     }
 
     /**
@@ -141,4 +144,16 @@ class CustomerBaseController extends Controller
         if ($row==count($ids))return ["success"=>true];
         return ["success"=>false,"data"=>"修改错误,影响了“".$row."”个项目"];
     }
+
+    public function addTag(Request $request)
+    {
+        $tags = $request->input("tags");
+        $id = $request->input("id");
+        /** @var Customer $customer */
+        $customer = app("CustomerService")->find($id);
+        if (!$customer)return ["success"=>false,"data"=>"客户不存在"];
+        $customer->tags()->sync($tags);
+        $customer->load("tags");
+        return ["success"=>true,"data"=>$customer->tags];
+    }
 }

+ 5 - 0
app/Http/Controllers/CustomerTagController.php

@@ -57,4 +57,9 @@ class CustomerTagController extends Controller
             "name" => "标签名"
         ]);
     }
+
+    public function get()
+    {
+        return ["success"=>true,"data"=>CustomerTag::query()->get(["id","name"])];
+    }
 }

+ 13 - 1
app/Http/Controllers/PriceModelController.php

@@ -21,6 +21,7 @@ use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Cache;
 use Illuminate\Support\Facades\Gate;
 use Illuminate\Support\Facades\Validator;
+use Illuminate\Validation\Rule;
 use Maatwebsite\Excel\Facades\Excel;
 
 class PriceModelController extends Controller
@@ -353,7 +354,10 @@ class PriceModelController extends Controller
             'name'=>['required',$id?"unique:owner_price_operations,name,$id":'unique:owner_price_operations,name'],
             'priority'=>['required','integer','min:0','max:100'],
             'rules.*.strategy'=>['required_if:operation_type,出库'],
-            'rules.*.amount'=>['required',"integer"],
+            'rules.*.amount'=>[Rule::requiredIf(function () use ($params) {
+                if ("operation_type" == "入库")return true;
+                return false;
+            }),"integer"],
             'rules.*.unit_id'=>['required','integer'],
             'rules.*.unit_price'=>['required','numeric',"min:0"],
             'rules.*.priority'=>['required_if:operation_type,出库','integer','min:0','max:100'],
@@ -753,6 +757,14 @@ class PriceModelController extends Controller
         LogService::log(__METHOD__,"计费模型-删除物流计费详情",$id);
         return ["success"=>true];
     }
+    public function logisticDestroy($id)
+    {
+        if(!Gate::allows('计费模型-物流-删除')){ return ["success"=>false,"data"=>"无权操作"];  }
+        if (!$id)return ["success"=>false,"data"=>"非法参数"];
+        app("OwnerPriceLogisticService")->destroy($id);
+        LogService::log(__METHOD__,"计费模型-删除物流计费",$id);
+        return ["success"=>true];
+    }
 
     private function logisticValidator(array $params,$id = null)
     {

+ 278 - 199
app/Http/Controllers/TestController.php

@@ -6,6 +6,7 @@ namespace App\Http\Controllers;
 use App\Authority;
 use App\Batch;
 use App\Carrier;
+use App\City;
 use App\Commodity;
 use App\CommodityBarcode;
 use App\Console\Commands\SyncWMSOrderTask;
@@ -17,6 +18,7 @@ use App\InventoryAccount;
 use App\LaborReport;
 use App\Log;
 use App\Logistic;
+use App\Menu;
 use App\OracleActAllocationDetails;
 use App\OracleBasSKU;
 use App\OracleDOCOrderHeader;
@@ -47,7 +49,6 @@ use App\Services\LogisticService;
 use App\Services\LogService;
 use App\Services\OracleDocAsnHerderService;
 use App\Services\OracleDOCOrderHeaderService;
-use App\Services\OrderPackageReceivedSyncService;
 use App\Services\OrderCommodityService;
 use App\Services\OrderPackageService;
 use App\Services\OrderService;
@@ -67,6 +68,7 @@ use App\Warehouse;
 use App\Waybill;
 use App\WaybillPriceModel;
 use Carbon\Carbon;
+use ChangeColumnOrderIdToOrderIssues;
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\Cache;
@@ -127,15 +129,17 @@ class TestController extends Controller
         echo \request()->input("name");
         exit();
     }
-    public function mergeCarrier(){
+
+    public function mergeCarrier()
+    {
         $carriers = Carrier::query()->get();
         $logistics = [];
         $map = [];
-        foreach ($carriers as $carrier){
+        foreach ($carriers as $carrier) {
             $map[$carrier->name] = $carrier->id;
-            $lo = Logistic::query()->where("name",$carrier->name)->first();
-            if ($lo){
-                if ($lo->type == '快递'){
+            $lo = Logistic::query()->where("name", $carrier->name)->first();
+            if ($lo) {
+                if ($lo->type == '快递') {
 //                    $lo->update(["type"=>"全部"]);$lo->save();
                 }
                 continue;
@@ -143,52 +147,54 @@ class TestController extends Controller
             $logistics[] = [
                 "name" => $carrier->name,
                 'mobile' => $carrier->mobile,
-                'delivery_fee'=> $carrier->delivery_fee,
-                'remark'=> $carrier->remark,
+                'delivery_fee' => $carrier->delivery_fee,
+                'remark' => $carrier->remark,
                 "type" => "物流"
             ];
         }
         Logistic::query()->insert($logistics);
-        $ls = Logistic::query()->where("type","物流")->get();
+        $ls = Logistic::query()->where("type", "物流")->get();
         $result = [];
-        foreach ($ls as $l)
-        {
-            if (isset($map[$l->name]))$result[$map[$l->name]] = $l->id;
+        foreach ($ls as $l) {
+            if (isset($map[$l->name])) $result[$map[$l->name]] = $l->id;
         }
-        LogService::log(__METHOD__,"同步承运商",json_encode($result));
-        foreach ($result as $tag => $val){
-            Waybill::query()->where("logistic_id",$tag)->update([
+        LogService::log(__METHOD__, "同步承运商", json_encode($result));
+        foreach ($result as $tag => $val) {
+            Waybill::query()->where("logistic_id", $tag)->update([
                 "logistic_id" => $val
             ]);
-            WaybillPriceModel::query()->where("logistic_id",$tag)->update([
+            WaybillPriceModel::query()->where("logistic_id", $tag)->update([
                 "logistic_id" => $val
             ]);
-            DB::table("logistic_user")->where("logistic_id",$tag)->update([
+            DB::table("logistic_user")->where("logistic_id", $tag)->update([
                 "logistic_id" => $val
             ]);
         }
     }
-    public function updateLaborRemark(){
-        $laborReports=LaborReport::query()->with(['remarks'=>function($query){
+
+    public function updateLaborRemark()
+    {
+        $laborReports = LaborReport::query()->with(['remarks' => function ($query) {
             return $query->whereNotNull('mark');
         }])->get();
         $updateParams = [[
-            'id','remark','updated_at'
+            'id', 'remark', 'updated_at'
         ]];
-        $updated_at=Carbon::now()->toDateTimeString();
-        foreach ($laborReports as $laborReport){
-            if ($laborReport->remarks){
+        $updated_at = Carbon::now()->toDateTimeString();
+        foreach ($laborReports as $laborReport) {
+            if ($laborReport->remarks) {
                 $updateParams[] = [
-                    'id'=>$laborReport->id,
-                    'remark'=>$laborReport->remarks->mark,
-                    'updated_at'=>$updated_at,
+                    'id' => $laborReport->id,
+                    'remark' => $laborReport->remarks->mark,
+                    'updated_at' => $updated_at,
                 ];
             }
         }
-        if(count($updateParams) > 1){
-            app(BatchUpdateService::class)->batchUpdate('labor_reports',$updateParams);
+        if (count($updateParams) > 1) {
+            app(BatchUpdateService::class)->batchUpdate('labor_reports', $updateParams);
         }
     }
+
     function packageFromLog(Request $request)
     { //x        $packagesBatch=Package::where('batch_number',$batch_number)->first();
         ini_set('max_execution_time', 2500);
@@ -215,6 +221,7 @@ class TestController extends Controller
         });
         dd($uploaded . '/' . $count);
     }
+
     function issues()
     {
         /** @var OrderPackageService $orderPackageService */
@@ -227,16 +234,19 @@ class TestController extends Controller
             $orderPackageService->createdByOrder($item);
         }
     }
+
     function tlog(Request $request)
     {
-        app('LogService')->log(__METHOD__,'cczdelme'.__FUNCTION__,json_encode($request->all()),null);
+        app('LogService')->log(__METHOD__, 'cczdelme' . __FUNCTION__, json_encode($request->all()), null);
     }
+
     function setCache(Request $request)
     {
         $today = now();
         Cache::put('storedTest', $today);
         return "cacheing:'$today'<script>localStorage.setItem('storedTest','{$today}')</script>";
     }
+
     function getCache(Request $request)
     {
         $cache = Cache::get('storedTest');
@@ -245,8 +255,11 @@ class TestController extends Controller
 
     function t1(Request $request)
     {
-        throw new \Exception('aaaaaa');
+        $user=City::query()->first();
+        $user['created_at'] = '2020-12-23';
+        $user->save();
     }
+
     function packageT(Request $request)
     {
         $package = Package::where('created_at', '<', '2020-07-08')->whereNotNull('logistic_number')->first();
@@ -519,56 +532,57 @@ class TestController extends Controller
         }
     }
 
-    public function test5(){
-        ini_set('max_execution_time',2500);
-        ini_set('memory_limit','1526M');
+    public function test5()
+    {
+        ini_set('max_execution_time', 2500);
+        ini_set('memory_limit', '1526M');
         //清理冗余条码
 //        $this->cleanBarcode();
 
-        while(true){
+        while (true) {
             $toDay = Carbon::now();
             $skus = DB::select(DB::raw('select sku from commodities group by sku,owner_id having count(*)>1 limit 500 '));
-            $skus = array_column($skus,'sku');
+            $skus = array_column($skus, 'sku');
 
-            $commodities = Commodity::query()->with('barcodes')->whereNotNull('owner_id')->whereIn('sku',$skus)->get();
+            $commodities = Commodity::query()->with('barcodes')->whereNotNull('owner_id')->whereIn('sku', $skus)->get();
 
 
-            if (count($commodities) < 1)return "SUCCESS";
+            if (count($commodities) < 1) return "SUCCESS";
             $commodityMap = [];
             $commodityDel = [];
             $commodityTag = [];
             $commodityBar = [];
             $createBarcodes = [];
             $logs = [];
-            foreach ($commodities as $commodity){
-                if ($commodityMap[$commodity->sku.'_'.$commodity->owner_id] ?? false){
-                    $codes = $commodity->barcodes ? array_column($commodity->barcodes->toArray(),'code') : [];
+            foreach ($commodities as $commodity) {
+                if ($commodityMap[$commodity->sku . '_' . $commodity->owner_id] ?? false) {
+                    $codes = $commodity->barcodes ? array_column($commodity->barcodes->toArray(), 'code') : [];
                     $logs[] = [
                         'id' => $commodity->id,
                         'sku' => $commodity->sku,
-                        'owner_id'=>$commodity->owner_id,
-                        'code'=>$codes,
+                        'owner_id' => $commodity->owner_id,
+                        'code' => $codes,
                     ];
                     $commodityDel[] = $commodity->id;
-                    $commodityTag[$commodity->id] = $commodityMap[$commodity->sku.'_'.$commodity->owner_id];
+                    $commodityTag[$commodity->id] = $commodityMap[$commodity->sku . '_' . $commodity->owner_id];
 
-                    $arr = array_diff($codes,$commodityBar[$commodity->sku.'_'.$commodity->owner_id]);
-                    foreach ($arr as $code){
-                        if (!$code)continue;
+                    $arr = array_diff($codes, $commodityBar[$commodity->sku . '_' . $commodity->owner_id]);
+                    foreach ($arr as $code) {
+                        if (!$code) continue;
                         $createBarcodes[] = [
                             'code' => $code,
-                            'commodity_id' => $commodityMap[$commodity->sku.'_'.$commodity->owner_id],
+                            'commodity_id' => $commodityMap[$commodity->sku . '_' . $commodity->owner_id],
                             'created_at' => $toDay,
                         ];
                     }
-                }else{
-                    $commodityMap[$commodity->sku.'_'.$commodity->owner_id] = $commodity->id;
-                    $commodityBar[$commodity->sku.'_'.$commodity->owner_id] = $commodity->barcodes ? array_column($commodity->barcodes->toArray(),'code') : [];
+                } else {
+                    $commodityMap[$commodity->sku . '_' . $commodity->owner_id] = $commodity->id;
+                    $commodityBar[$commodity->sku . '_' . $commodity->owner_id] = $commodity->barcodes ? array_column($commodity->barcodes->toArray(), 'code') : [];
                 }
             }
-            dd($commodityMap,$commodityDel,$commodityTag);
-            app('LogService')->log(__METHOD__,'清理商品',json_encode($logs,JSON_UNESCAPED_UNICODE));
-            app('LogService')->log(__METHOD__,'重新分配商品',json_encode($commodityTag,JSON_UNESCAPED_UNICODE));
+            dd($commodityMap, $commodityDel, $commodityTag);
+            app('LogService')->log(__METHOD__, '清理商品', json_encode($logs, JSON_UNESCAPED_UNICODE));
+            app('LogService')->log(__METHOD__, '重新分配商品', json_encode($commodityTag, JSON_UNESCAPED_UNICODE));
 
             app('InventoryAccountMissionService')->batchUpdateItself('commodity_id', $commodityTag);//批量更新库存盘点任务
             app('InventoryCompareService')->batchUpdateItself('commodity_id', $commodityTag);//批量更新库存对比
@@ -577,13 +591,14 @@ class TestController extends Controller
             app('StoreCheckingReceiveItemService')->batchUpdateItself('commodity_id', $commodityTag);//批量更新入库盘收一体
             app('OrderPackageCommoditiesService')->batchUpdateItself('commodity_id', $commodityTag);//批量更新订单商品
 
-            app('LogService')->log(__METHOD__,'删除商品与对应条码',json_encode($commodityDel,JSON_UNESCAPED_UNICODE));
-            CommodityBarcode::query()->whereIn('commodity_id',$commodityDel)->delete();
+            app('LogService')->log(__METHOD__, '删除商品与对应条码', json_encode($commodityDel, JSON_UNESCAPED_UNICODE));
+            CommodityBarcode::query()->whereIn('commodity_id', $commodityDel)->delete();
             Commodity::destroy($commodityDel);
         }
     }
 
-    private function cleanBarcode(){
+    private function cleanBarcode()
+    {
 
         $logCommodityBarcodes = CommodityBarcode::query()->where('code', "")->get();
         if (count($logCommodityBarcodes) > 0) app('LogService')->log(__METHOD__, "纠正商品-删除空条码", json_encode($logCommodityBarcodes, JSON_UNESCAPED_UNICODE));
@@ -604,30 +619,31 @@ where (c.code,c.commodity_id) in (select code,commodity_id from commodity_barcod
         CommodityBarcode::destroy($barcodeDelete);
     }
 
-    private function multiCodes(){
+    private function multiCodes()
+    {
 
-        $barcode='BG10B1014C002100';
-        $commodity=Commodity::whereHas('barcodes', function (Builder $query)use($barcode){
-            $query->where('code',$barcode);
-        })->where('owner_id',4)->first();
+        $barcode = 'BG10B1014C002100';
+        $commodity = Commodity::whereHas('barcodes', function (Builder $query) use ($barcode) {
+            $query->where('code', $barcode);
+        })->where('owner_id', 4)->first();
         $codes = $commodity->barcodes->map(function ($barcode) {
-            return $barcode->code??'';
+            return $barcode->code ?? '';
         });
-        foreach($codes as $code){
-            $commodity=Commodity::whereHas('barcodes', function (Builder $query)use($barcode){
-                $query->where('code',$barcode);
-            })->where('owner_id',4)->get();
+        foreach ($codes as $code) {
+            $commodity = Commodity::whereHas('barcodes', function (Builder $query) use ($barcode) {
+                $query->where('code', $barcode);
+            })->where('owner_id', 4)->get();
             dump($commodity);
         }
         die();
-        $commodityBuilder=Commodity::query();
-        $commodityBuilder->where('owner_id',4)->first();
-            $commodityBuilder->whereHas('barcodes', function (Builder $query)use($barcode,$codes){
-                foreach($codes as $code){
-                    $query->orWhere('code',$code);
-                }
-            });
-        dd($commodity, $codes,$commodityBuilder->get());
+        $commodityBuilder = Commodity::query();
+        $commodityBuilder->where('owner_id', 4)->first();
+        $commodityBuilder->whereHas('barcodes', function (Builder $query) use ($barcode, $codes) {
+            foreach ($codes as $code) {
+                $query->orWhere('code', $code);
+            }
+        });
+        dd($commodity, $codes, $commodityBuilder->get());
     }
 
     public function correctCommodity()
@@ -694,7 +710,7 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
             }
             $updateCommodities[$del->commodity_id] = $target->commodity_id;
         }
-        if (count($updateCommodities) > 0){
+        if (count($updateCommodities) > 0) {
             app('InventoryAccountMissionService')->batchUpdateItself('commodity_id', $updateCommodities);//批量更新库存盘点任务
             app('InventoryCompareService')->batchUpdateItself('commodity_id', $updateCommodities);//批量更新库存对比
             app('InventoryDailyLogService')->batchUpdateItself('commodity_id', $updateCommodities);//批量更新库存每日记录
@@ -716,6 +732,7 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
 
         Commodity::destroy($deleteCommodities);
     }
+
     /*1*/
     function socket(Request $request)
     {/**/
@@ -777,23 +794,26 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
     {
         /** @var CacheService $cacheService */
         $cacheService = app('CacheService');
-        $authorities=$cacheService->getOrExecute('userxx',function (){
+        $authorities = $cacheService->getOrExecute('userxx', function () {
             return Authority::with('roles')->get();
         });
         dd($authorities);
     }
+
     public function output2()
     {
         dump(Cache::get('aa'));
         Cache::put('aa', '2223', 5);
     }
+
     public function usage()
     {
         dd(Request::all());
     }
+
     public function relating()
     {
-        dd(OrderIssue::query()->where('id',182)->paginate()->total());
+        dd(OrderIssue::query()->where('id', 182)->paginate()->total());
     }
 
     public function updateOrdersWarehouse()
@@ -809,10 +829,11 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
         $warehouse = Warehouse::query()->get();
         $warehouse_map = $dataHandlerService->dataHeader(['code'], $warehouse);
         for ($i = 0; $i < $count; $i += $page) {
-            $min = $i;$max = $i + $page;
+            $min = $i;
+            $max = $i + $page;
             $orders = Order::query()->where('id', '>=', $min)->where('id', '<=', $max)->get();
             $orderNos = array_diff(array_unique(data_get($orders, '*.code')), ['', ' ', '*', null]);
-            if (count($orderNos)==0) continue;
+            if (count($orderNos) == 0) continue;
             /** @var Collection $orderHeaders */
             $orderHeaders = OracleDOCOrderHeader::query()->whereIn('orderno', $orderNos)->get();
             if ($orderHeaders->count() == 0) continue;
@@ -838,16 +859,16 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
     public function syncSendOrder()
     {
         $order_issues = OrderIssue::query()->whereNotNull('second_client_no')->get();
-        $client_nos = data_get($order_issues,'*.second_client_no');
-        $orderHeaders = OracleDOCOrderHeader::query()->selectRaw(implode(',',OracleDOCOrderHeaderService::$columns))
-            ->whereIn('SOReference1',$client_nos)
-            ->with(['oracleBASCustomer'=>function($query){
+        $client_nos = data_get($order_issues, '*.second_client_no');
+        $orderHeaders = OracleDOCOrderHeader::query()->selectRaw(implode(',', OracleDOCOrderHeaderService::$columns))
+            ->whereIn('SOReference1', $client_nos)
+            ->with(['oracleBASCustomer' => function ($query) {
                 $query->selectRaw('BAS_CUSTOMER.CustomerID,BAS_CUSTOMER.Customer_Type,BAS_CUSTOMER.Descr_C,BAS_CUSTOMER.Active_Flag');
-            },'oracleDOCOrderDetails'=>function($query){
+            }, 'oracleDOCOrderDetails' => function ($query) {
                 $query->selectRaw('doc_order_details.orderNo,doc_order_details.customerid,doc_order_details.sku,doc_order_details.QtyOrdered');
-            }, 'actAllocationDetails'=>function($query){
+            }, 'actAllocationDetails' => function ($query) {
                 $query->selectRaw('ACT_Allocation_Details.AllocationDetailsID,ACT_Allocation_Details.OrderNo,ACT_Allocation_Details.Qty_Each,ACT_Allocation_Details.PickToTraceID,ACT_Allocation_Details.CustomerID');
-            },'oracleBASCode'=>function($query){
+            }, 'oracleBASCode' => function ($query) {
                 $query->selectRaw('BAS_Codes.CodeID,BAS_Codes.CodeName_C,BAS_Codes.Code');
             }])
             ->get();
@@ -860,19 +881,19 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
         /**
          * @var OrderService $orderService
          */
-        $carbon =Carbon::now()->subMinutes(30);
-        var_dump('$orderHeader',new Carbon());
-        $orderHeader_start = OracleDOCOrderHeader::query()->selectRaw(implode(',',OracleDOCOrderHeaderService::$columns))
-            ->with(['oracleBASCustomer'=>function($query){
+        $carbon = Carbon::now()->subMinutes(30);
+        var_dump('$orderHeader', new Carbon());
+        $orderHeader_start = OracleDOCOrderHeader::query()->selectRaw(implode(',', OracleDOCOrderHeaderService::$columns))
+            ->with(['oracleBASCustomer' => function ($query) {
                 $query->selectRaw('BAS_CUSTOMER.CustomerID,BAS_CUSTOMER.Customer_Type,BAS_CUSTOMER.Descr_C,BAS_CUSTOMER.Active_Flag');
-            },'oracleDOCOrderDetails'=>function($query){
+            }, 'oracleDOCOrderDetails' => function ($query) {
                 $query->selectRaw('doc_order_details.orderNo,doc_order_details.customerid,doc_order_details.sku,doc_order_details.QtyOrdered');
-            }, 'actAllocationDetails'=>function($query){
+            }, 'actAllocationDetails' => function ($query) {
                 $query->selectRaw('ACT_Allocation_Details.AllocationDetailsID,ACT_Allocation_Details.OrderNo,ACT_Allocation_Details.Qty_Each,ACT_Allocation_Details.PickToTraceID,ACT_Allocation_Details.CustomerID,ACT_Allocation_Details.Sku');
-            },'oracleBASCode'=>function($query){
+            }, 'oracleBASCode' => function ($query) {
                 $query->selectRaw('BAS_Codes.CodeID,BAS_Codes.CodeName_C,BAS_Codes.Code');
             }])
-            ->where('DOC_Order_Header.addTime','>=',$carbon)
+            ->where('DOC_Order_Header.addTime', '>=', $carbon)
 //            ->where('DOC_Order_Header.editTime','>=',$carbon)
             ->get();
         var_dump((string)Carbon::now());
@@ -884,74 +905,79 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
 //      orderService  getCreateOrderModelsByWMSOrderHeaders
     }
 
-    public function testOrderPackages(){
+    public function testOrderPackages()
+    {
         $batch_number = 'W201114000104';
         $weight = 0.3;
-        OrderPackage::createPackagesFromBatchCode($batch_number,$weight);
+        OrderPackage::createPackagesFromBatchCode($batch_number, $weight);
     }
 
-    public function view(){
+    public function view()
+    {
         return view('test');
     }
 
-    public function cleanOrderRepeat(){
+    public function cleanOrderRepeat()
+    {
 
-        ini_set('max_execution_time',6500);
-        ini_set('memory_limit','1526M');
-        for($i=0;true;$i++){
-            $orders_repeating=Order::query()
+        ini_set('max_execution_time', 6500);
+        ini_set('memory_limit', '1526M');
+        for ($i = 0; true; $i++) {
+            $orders_repeating = Order::query()
                 ->selectRaw('count(*) as count, code, id')
                 ->whereNotNull('code')
                 ->groupBy('code')
                 ->having('count', '>', 1)
                 ->limit(100)
                 ->get();
-            if($orders_repeating->count()==0)break;
-            $orders_repeating->each(function ($order){
-                $code_repeating=$order['code'];
-                $orders_toCombine=Order::query()
-                    ->where('code',$code_repeating)
+            if ($orders_repeating->count() == 0) break;
+            $orders_repeating->each(function ($order) {
+                $code_repeating = $order['code'];
+                $orders_toCombine = Order::query()
+                    ->where('code', $code_repeating)
                     ->orderByDesc('updated_at')
                     ->get();
-                $orderId_unique=(function()use($orders_toCombine){
-                    $order_toLive=$orders_toCombine->first();
-                    foreach($orders_toCombine as $key=>$order_toEliminate){
-                        if($key==0)continue;
-                        if(!$order_toLive['batch_id'])$order_toLive['batch_id']=$order_toEliminate['batch_id'];
-                        if(!$order_toLive['owner_id'])$order_toLive['owner_id']=$order_toEliminate['owner_id'];
-                        if(!$order_toLive['status'])$order_toLive['status']=$order_toEliminate['status'];
-                        if(!$order_toLive['created_at'])$order_toLive['created_at']=$order_toEliminate['created_at'];
-                        if(!$order_toLive['code'])$order_toLive['code']=$order_toEliminate['code'];
-                        if(!$order_toLive['shop_id'])$order_toLive['shop_id']=$order_toEliminate['shop_id'];
-                        if(!$order_toLive['owner_id'])$order_toLive['owner_id']=$order_toEliminate['owner_id'];
-                        if(!$order_toLive['client_code'])$order_toLive['client_code']=$order_toEliminate['client_code'];
-                        if(!$order_toLive['logistic_id'])$order_toLive['logistic_id']=$order_toEliminate['logistic_id'];
-                        if(!$order_toLive['consignee_name'])$order_toLive['consignee_name']=$order_toEliminate['consignee_name'];
-                        if(!$order_toLive['consignee_phone'])$order_toLive['consignee_phone']=$order_toEliminate['consignee_phone'];
-                        if(!$order_toLive['province'])$order_toLive['province']=$order_toEliminate['province'];
-                        if(!$order_toLive['city'])$order_toLive['city']=$order_toEliminate['city'];
-                        if(!$order_toLive['district'])$order_toLive['district']=$order_toEliminate['district'];
-                        if(!$order_toLive['address'])$order_toLive['address']=$order_toEliminate['address'];
-                        if(!$order_toLive['wms_status'])$order_toLive['wms_status']=$order_toEliminate['wms_status'];
-                        if(!$order_toLive['status'])$order_toLive['status']=$order_toEliminate['status'];
-                        if(!$order_toLive['warehouse_id'])$order_toLive['warehouse_id']=$order_toEliminate['warehouse_id'];
-                        if(!$order_toLive['wms_edittime'])$order_toLive['wms_edittime']=$order_toEliminate['wms_edittime'];
+                $orderId_unique = (function () use ($orders_toCombine) {
+                    $order_toLive = $orders_toCombine->first();
+                    foreach ($orders_toCombine as $key => $order_toEliminate) {
+                        if ($key == 0) continue;
+                        if (!$order_toLive['batch_id']) $order_toLive['batch_id'] = $order_toEliminate['batch_id'];
+                        if (!$order_toLive['owner_id']) $order_toLive['owner_id'] = $order_toEliminate['owner_id'];
+                        if (!$order_toLive['status']) $order_toLive['status'] = $order_toEliminate['status'];
+                        if (!$order_toLive['created_at']) $order_toLive['created_at'] = $order_toEliminate['created_at'];
+                        if (!$order_toLive['code']) $order_toLive['code'] = $order_toEliminate['code'];
+                        if (!$order_toLive['shop_id']) $order_toLive['shop_id'] = $order_toEliminate['shop_id'];
+                        if (!$order_toLive['owner_id']) $order_toLive['owner_id'] = $order_toEliminate['owner_id'];
+                        if (!$order_toLive['client_code']) $order_toLive['client_code'] = $order_toEliminate['client_code'];
+                        if (!$order_toLive['logistic_id']) $order_toLive['logistic_id'] = $order_toEliminate['logistic_id'];
+                        if (!$order_toLive['consignee_name']) $order_toLive['consignee_name'] = $order_toEliminate['consignee_name'];
+                        if (!$order_toLive['consignee_phone']) $order_toLive['consignee_phone'] = $order_toEliminate['consignee_phone'];
+                        if (!$order_toLive['province']) $order_toLive['province'] = $order_toEliminate['province'];
+                        if (!$order_toLive['city']) $order_toLive['city'] = $order_toEliminate['city'];
+                        if (!$order_toLive['district']) $order_toLive['district'] = $order_toEliminate['district'];
+                        if (!$order_toLive['address']) $order_toLive['address'] = $order_toEliminate['address'];
+                        if (!$order_toLive['wms_status']) $order_toLive['wms_status'] = $order_toEliminate['wms_status'];
+                        if (!$order_toLive['status']) $order_toLive['status'] = $order_toEliminate['status'];
+                        if (!$order_toLive['warehouse_id']) $order_toLive['warehouse_id'] = $order_toEliminate['warehouse_id'];
+                        if (!$order_toLive['wms_edittime']) $order_toLive['wms_edittime'] = $order_toEliminate['wms_edittime'];
                     }
                     $order_toLive->save();
                     return $order_toLive['id'];
                 })();
-                $orderIds_toRemove=(function()use($orders_toCombine){
+                $orderIds_toRemove = (function () use ($orders_toCombine) {
                     $orders_toCombine->shift();
-                    return $orders_toCombine->map(function($order){return $order['id'];});
+                    return $orders_toCombine->map(function ($order) {
+                        return $order['id'];
+                    });
                 })();
-                OrderPackage::query()->whereIn('order_id',$orderIds_toRemove)->update(['order_id'=>$orderId_unique]);
-                OrderIssue::query()->whereIn('order_id',$orderIds_toRemove)->update(['order_id'=>$orderId_unique]);
-                OrderCommodity::query()->whereIn('order_id',$orderIds_toRemove)->update(['order_id'=>$orderId_unique]);
-                OrderBin::query()->whereIn('order_id',$orderIds_toRemove)->update(['order_id'=>$orderId_unique]);
+                OrderPackage::query()->whereIn('order_id', $orderIds_toRemove)->update(['order_id' => $orderId_unique]);
+                OrderIssue::query()->whereIn('order_id', $orderIds_toRemove)->update(['order_id' => $orderId_unique]);
+                OrderCommodity::query()->whereIn('order_id', $orderIds_toRemove)->update(['order_id' => $orderId_unique]);
+                OrderBin::query()->whereIn('order_id', $orderIds_toRemove)->update(['order_id' => $orderId_unique]);
                 Order::destroy($orderIds_toRemove);
-                app('LogService')->log(__METHOD__,__FUNCTION__,'orders_toCombine:'.json_encode($orderIds_toRemove).'|toBe OrderId: '.json_encode($orderId_unique));
+                app('LogService')->log(__METHOD__, __FUNCTION__, 'orders_toCombine:' . json_encode($orderIds_toRemove) . '|toBe OrderId: ' . json_encode($orderId_unique));
             });
-            app('LogService')->log(__METHOD__,__FUNCTION__,'orders_repeating:'.$orders_repeating->toJson());
+            app('LogService')->log(__METHOD__, __FUNCTION__, 'orders_repeating:' . $orders_repeating->toJson());
         }
         echo $i;
     }
@@ -960,12 +986,12 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
     {
         $client_no = null;
         $items = null;
-        $order=(new OrderTrackingImport())->getOrder($client_no,$items);
-        if($order['id']) echo 'yes1';
+        $order = (new OrderTrackingImport())->getOrder($client_no, $items);
+        if ($order['id']) echo 'yes1';
 
 
         $order = Order::query()->create([
-            'code'=>'null'.Str::uuid(),'client_code' => 'asdfdfdg','web_order_number' => 'sadfdsf'
+            'code' => 'null' . Str::uuid(), 'client_code' => 'asdfdfdg', 'web_order_number' => 'sadfdsf'
         ]);
         dd($order);
 //        $order=(new OrderTrackingImport())->getOrder('92024765871-SDO130000986796QX',$items);
@@ -1015,8 +1041,8 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
 
     public function reNewBatches3()
     {
-        $batches=Batch::query()->where('id',6384)->get('code');
-        $batchCodes = $batches->map(function($batch){
+        $batches = Batch::query()->where('id', 6384)->get('code');
+        $batchCodes = $batches->map(function ($batch) {
             return $batch['code'];
         })->toArray();
 //        $batchCodes = ['W201201000037',
@@ -1034,23 +1060,23 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
 //            'W201201000074',
 //            'W201201000075',
 //            'W201201000076',];
-        $requests=[];
+        $requests = [];
 //        $logs=Log::query()->select('description')->where('CREATED_AT','>','2020-11-11')
 //            ->where('type',"issued_newBatch")
 //            ->get();
 //        dd($logs);
-        foreach($batchCodes as $code){
+        foreach ($batchCodes as $code) {
 //            $request=Cache::get('temp'.$code)['description'];
-            $request=Log::query()->select('description')->where('CREATED_AT','>','2020-12-16')
-                ->where('type',"issued_newBatch")
-                ->where('description','like',"%{$code}%")
+            $request = Log::query()->select('description')->where('CREATED_AT', '>', '2020-12-16')
+                ->where('type', "issued_newBatch")
+                ->where('description', 'like', "%{$code}%")
                 ->first();
-            if($request){
-                $response=Zttp::post('https://wcs.baoshi56.com/api/thirdPart/flux/sorting/newBatch',
+            if ($request) {
+                $response = Zttp::post('https://wcs.baoshi56.com/api/thirdPart/flux/sorting/newBatch',
                     json_decode($request['description'])
                 );
-                app('LogService')->log(__METHOD__,__FUNCTION__,$response->body());
-                $requests[]=$response->body();
+                app('LogService')->log(__METHOD__, __FUNCTION__, $response->body());
+                $requests[] = $response->body();
             }
 //            Cache::put('temp'.$code,$request);
 //            $requests[]=$request;
@@ -1066,37 +1092,39 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
         $orderService = app(OrderService::class);
         /*$owners = app(OrderTrackingOwnerService::class)->getTrackingOrderOwner();*/
         /*$startDate = \Illuminate\Support\Carbon::parse('2020-10-28 00:00:00')->toDateTimeString();*/
-        $orderNos = ['SO201205001735','SO201204003891','SO201204003706','SO201204002877','SO201203003771'];
+        $orderNos = ['SO201205001735', 'SO201204003891', 'SO201204003706', 'SO201204002877', 'SO201203003771'];
         $orderHeaders = OracleDOCOrderHeader::query()->with(['oracleDOCOrderDetails', 'actAllocationDetails', 'oracleBASCode'])
-            ->whereIn('orderno',$orderNos)
+            ->whereIn('orderno', $orderNos)
             ->get();
         $orderService->updateByWmsOrders($orderHeaders);
         $orderTrackingService->createByWmsOrderHeader($orderHeaders);
     }
 
-    public function testSyncOrderTask(){
+    public function testSyncOrderTask()
+    {
         dump('hendle...');
         dump((string)Carbon::now());
-        dump(memory_get_usage()/1024/1024);
+        dump(memory_get_usage() / 1024 / 1024);
         $task = new SyncWMSOrderTask();
         $task->handle();
         dump((string)Carbon::now());
         dump('hendle...end');
-        dump(memory_get_usage()/1024/1024);
-        dump(memory_get_peak_usage()/1024/1024);
+        dump(memory_get_usage() / 1024 / 1024);
+        dump(memory_get_peak_usage() / 1024 / 1024);
         return view('test');
     }
+
     public function testSyncWaveNo()
     {
-        $waveHeader = OracleDOCWaveHeader::query()->where('waveno','W201209000024')->first();
+        $waveHeader = OracleDOCWaveHeader::query()->where('waveno', 'W201209000024')->first();
 //        Batch::query()->create([
 //            'code' => $waveHeader->waveno,
 //            'wms_created_at' => $waveHeader->addtime,
 //            'remark' => $waveHeader->descr,
 //            'wms_status' => '99',
 //        ]);
-        $waveHeaderDetails = OracleDOCWaveDetails::query()->where('waveno',$waveHeader->waveno)->get();
-        $orderNos = $waveHeaderDetails->map(function($item){
+        $waveHeaderDetails = OracleDOCWaveDetails::query()->where('waveno', $waveHeader->waveno)->get();
+        $orderNos = $waveHeaderDetails->map(function ($item) {
             return $item->orderno;
         });
         $orderHeaderService = new OracleDOCOrderHeaderService();
@@ -1105,57 +1133,59 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
         $orderService->syncOrderByWMSOrderHeaders($orderHeaders);
     }
 
-    public function testSyncOrderTracking(){
+    public function testSyncOrderTracking()
+    {
         $orderTrackingService = new OrderTrackingService();
-        $items = OrderTracking::query()->with('commodities.package.order')->where('created_at','>=','2020-12-01 00:00:00')->get();
-        $orderNos = $items->map(function ($orderTracking){
-            return   $orderTracking->commodities->package->order->code;
+        $items = OrderTracking::query()->with('commodities.package.order')->where('created_at', '>=', '2020-12-01 00:00:00')->get();
+        $orderNos = $items->map(function ($orderTracking) {
+            return $orderTracking->commodities->package->order->code;
         });
-        $update_params =[['id','client','order_remark']];
-        $orderHeaders = OracleDOCOrderHeader::query()->whereIn('OrderNo',$orderNos)->get();
+        $update_params = [['id', 'client', 'order_remark']];
+        $orderHeaders = OracleDOCOrderHeader::query()->whereIn('OrderNo', $orderNos)->get();
         foreach ($items as $orderTracking) {
             $order = $orderTracking->commodities->package->order;
-            $orderHeader = $orderHeaders->where('orderno',$order->code)->first();
-            if(!$orderHeader)continue;
-            if(empty($order))continue;
-            $params =  $orderTrackingService->getParamsByOrderHeaderAndOrder($orderHeader,$order);
-            if($params['client'] != $orderTracking->client || $params['order_remark'] != $orderTracking->order_remark ){
-                 $update_params[] = [
-                     'id' => $orderTracking->id,
-                     'client' => $params['client'] ,
-                     'order_remark'  =>$params['order_remark']
-                 ];
+            $orderHeader = $orderHeaders->where('orderno', $order->code)->first();
+            if (!$orderHeader) continue;
+            if (empty($order)) continue;
+            $params = $orderTrackingService->getParamsByOrderHeaderAndOrder($orderHeader, $order);
+            if ($params['client'] != $orderTracking->client || $params['order_remark'] != $orderTracking->order_remark) {
+                $update_params[] = [
+                    'id' => $orderTracking->id,
+                    'client' => $params['client'],
+                    'order_remark' => $params['order_remark']
+                ];
             }
         }
-        if(count($update_params) == 0)return ;
+        if (count($update_params) == 0) return;
         $orderTrackingService->batchUpdate($update_params);
     }
 
-    public function editOrderTracking(){
-        $orderTrackingService  = new OrderTrackingService();
-        $dataHandlerService  = new DataHandlerService();
-        $orderTrackings = OrderTracking::query()->with('commodities.package')->where('client','like','天猫%')->get();
+    public function editOrderTracking()
+    {
+        $orderTrackingService = new OrderTrackingService();
+        $dataHandlerService = new DataHandlerService();
+        $orderTrackings = OrderTracking::query()->with('commodities.package')->where('client', 'like', '天猫%')->get();
         $orderTracking_arr = $orderTrackings->chunk(100);
         foreach ($orderTracking_arr as $items) {
-            $update_params = [['id','order_client_code']];
-            $order_nos =  array_unique(data_get($items,'*.commodities.package.order.code'));
+            $update_params = [['id', 'order_client_code']];
+            $order_nos = array_unique(data_get($items, '*.commodities.package.order.code'));
             $orderHeaders = OracleDOCOrderHeader::query()
-                ->with(['oracleDOCOrderDetails', 'actAllocationDetails','oracleBASCode','oracleBASCustomer'])
-                ->whereIn('DOC_Order_Header.OrderNo',$order_nos)->get();
-            $orderHeader_map = $dataHandlerService->dataHeader(['orderno'],$orderHeaders);
+                ->with(['oracleDOCOrderDetails', 'actAllocationDetails', 'oracleBASCode', 'oracleBASCustomer'])
+                ->whereIn('DOC_Order_Header.OrderNo', $order_nos)->get();
+            $orderHeader_map = $dataHandlerService->dataHeader(['orderno'], $orderHeaders);
             foreach ($items as $orderTracking) {
                 $commodities = $orderTracking->commodities;
-                $orderHeader = $dataHandlerService->getKeyValue(['orderno'=>$commodities->package->order->code],$orderHeader_map);
-                $order_client_code = $orderTrackingService->get_d_edit_03($orderHeader,$commodities);
+                $orderHeader = $dataHandlerService->getKeyValue(['orderno' => $commodities->package->order->code], $orderHeader_map);
+                $order_client_code = $orderTrackingService->get_d_edit_03($orderHeader, $commodities);
                 $update_params[] = [
                     'id' => $orderTracking->id,
                     'order_client_code' => $order_client_code
                 ];
             }
             $orderTrackingService->batchUpdate($update_params);
-            unset($update_params,$orderHeaders,$orderHeader_map);
+            unset($update_params, $orderHeaders, $orderHeader_map);
         }
-        unset($orderTrackings,$orderTracking_arr);
+        unset($orderTrackings, $orderTracking_arr);
     }
 
     public function testUpdateSkuNameBarcodeToCommodity_id()
@@ -1258,7 +1288,7 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
         /**@var  CommodityService $commodityService */
         $commodityService = app(CommodityService::class);
         dump('start' . (string)Carbon::now());
-        $commodities = $commodityService->get_($ownerIds, $skus,[],true);
+        $commodities = $commodityService->get_($ownerIds, $skus, [], true);
         dump('end' . (string)Carbon::now());
     }
 
@@ -1271,22 +1301,71 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
     public function syncOrderTask()
     {
         $start_data = Carbon::parse('2020-12-10 00:00:00');
-        $orderHeaders = OracleDOCOrderHeader::query()->selectRaw(implode(',',OracleDOCOrderHeaderService::$columns))
-            ->with(['oracleBASCustomer'=>function($query){
+        $orderHeaders = OracleDOCOrderHeader::query()->selectRaw(implode(',', OracleDOCOrderHeaderService::$columns))
+            ->with(['oracleBASCustomer' => function ($query) {
                 $query->selectRaw('BAS_CUSTOMER.CustomerID,BAS_CUSTOMER.Customer_Type,BAS_CUSTOMER.Descr_C,BAS_CUSTOMER.Active_Flag');
-            },'oracleDOCOrderDetails'=>function($query){
+            }, 'oracleDOCOrderDetails' => function ($query) {
                 $query->selectRaw('doc_order_details.orderNo,doc_order_details.customerid,doc_order_details.sku,doc_order_details.QtyOrdered,doc_order_details.Location');
-            }, 'actAllocationDetails'=>function($query){
+            }, 'actAllocationDetails' => function ($query) {
                 $query->selectRaw('ACT_Allocation_Details.AllocationDetailsID,ACT_Allocation_Details.OrderNo,ACT_Allocation_Details.Qty_Each,ACT_Allocation_Details.PickToTraceID,ACT_Allocation_Details.CustomerID,ACT_Allocation_Details.Sku,ACT_Allocation_Details.Location');
-            },'oracleBASCode'=>function($query){
+            }, 'oracleBASCode' => function ($query) {
                 $query->selectRaw('BAS_Codes.CodeID,BAS_Codes.CodeName_C,BAS_Codes.Code');
-            },'orderType'=>function($query){
+            }, 'orderType' => function ($query) {
                 $query->selectRaw('BAS_Codes.CodeID,BAS_Codes.CodeName_C,BAS_Codes.Code');
-            }])->where('DOC_Order_Header.AddTime','>',$start_data)
+            }])->where('DOC_Order_Header.AddTime', '>', $start_data)
             ->get();
         $service = new OrderService();
         $service->syncOrder($orderHeaders);
     }
+    public function cleanOrderIssueRepeat()
+    {
+        ini_set('max_execution_time', 6500);
+        ini_set('memory_limit', '1526M');
+        for ($i = 0; true; $i++) {
+            $orderIssue_unique = \App\OrderIssue::withTrashed()
+                ->selectRaw('count(1) as count,id,order_id')
+                ->whereNotNull('order_id')
+                ->orderByDesc('created_at')
+                ->groupBy('order_id')
+                ->having('count', '>', 1)
+                ->limit(100)
+                ->get();
+            if ($orderIssue_unique->count() == 0) return;
+            foreach ($orderIssue_unique as $item) {
+                $orderIssue_delete = OrderIssue::withTrashed()->where('order_id', $item->order_id)->get();
+                /** @var OrderIssue $order_issue_unique */
+                $order_issue_unique = $orderIssue_delete->whereNull('deleted_at')->first();
+                if(!$order_issue_unique) $order_issue_unique = $orderIssue_delete->first();
+                $ids = [];
+                foreach ($orderIssue_delete as $key => $order_issue) {
+                    if ($order_issue->id == $order_issue_unique->id) continue;
+                    $ids[] = $order_issue->id;
+                    if ($order_issue['rejecting_status'] != '未退回') $order_issue_unique['rejecting_status'] = $order_issue['rejecting_status'];
+                    if ($order_issue['situation_explain']) $order_issue_unique['situation_explain'] = $order_issue['situation_explain'];
+                    if ($order_issue['order_issue_type_id']) $order_issue_unique['order_issue_type_id'] = $order_issue['order_issue_type_id'];
+                    if ($order_issue['second_order_id']) $order_issue_unique['second_order_id'] = $order_issue['second_order_id'];
+                    if ($order_issue['is_new_rejecting'] != '无') $order_issue_unique['is_new_rejecting'] = $order_issue['is_new_rejecting'];
+                    if ($order_issue['second_client_no']) $order_issue_unique['second_client_no'] = $order_issue['second_client_no'];
+                    if ($order_issue['final_status']) $order_issue_unique['final_status'] = $order_issue['final_status'];
+                    if ($order_issue['logistic_indemnity_money']) $order_issue_unique['logistic_indemnity_money'] = $order_issue['logistic_indemnity_money'];
+                    if ($order_issue['logistic_express_remission']) $order_issue_unique['logistic_express_remission'] = $order_issue['logistic_express_remission'];
+                    if ($order_issue['baoshi_indemnity_money']) $order_issue_unique['baoshi_indemnity_money'] = $order_issue['baoshi_indemnity_money'];
+                    if ($order_issue['baoshi_express_remission']) $order_issue_unique['baoshi_express_remission'] = $order_issue['baoshi_express_remission'];
+                    if ($order_issue['user_workgroup_id']) $order_issue_unique['user_workgroup_id'] = $order_issue['user_workgroup_id'];
+                    if ($order_issue['custom_code']) $order_issue_unique['custom_code'] = $order_issue['custom_code'];
+                    if ($order_issue['imported_status']) $order_issue_unique['imported_status'] = $order_issue['imported_status'];
+                }
+                if ($order_issue_unique['deleted_at']) $order_issue_unique['deleted_at'] = null;
+                $order_issue_unique->save();
+                $order_issue_unique->同步退单状态();
+                OrderIssue:: withTrashed()->whereIn('id', $ids)->forceDelete();
+                app('LogService')->log(__METHOD__, __FUNCTION__, 'orders_toCombine:' . json_encode($order_issue_unique) . '|toBe OrderId: ' . json_encode($order_issue_unique->id));
+                $orderIssueProcessLogs = \App\OrderIssueProcessLog::query()->whereIn('order_issue_id', $ids)->get();
+                app('LogService')->log(__METHOD__, __FUNCTION__, 'delete order_issue processLogs:' . json_encode($orderIssueProcessLogs));
+                \App\OrderIssueProcessLog::query()->whereIn('order_issue_id', $ids)->forceDelete();
+            }
+        }
+    }
 
     public function testGetLogisticNumbers(): array
     {

+ 2 - 1
app/Http/Controllers/api/thirdPart/haiq/StorageController.php

@@ -243,6 +243,7 @@ class StorageController
         return $this->light($request,$this->lightOff);
     }
     public function taskUpdate(ForeignHaiRobotic_taskUpdateRequest $request){
+        return $request->method();
         try{
             $this->service->taskUpdate(
                 $request['groupCode'],
@@ -259,7 +260,7 @@ class StorageController
         }
     }
     public function exception(Request $request){
-        $this->service->throwException();
+        $this->service->excepted();
         app('LogService')->log(__METHOD__,__FUNCTION__,json_encode($request->all()));
         return ['code'=>200,'errMsg'=>'','data'=>$request->all()];
     }

+ 5 - 5
app/Http/Requests/ForeignHaiRobotic_taskUpdateRequest.php

@@ -15,7 +15,7 @@ class ForeignHaiRobotic_taskUpdateRequest extends FormRequest
      */
     public function authorize()
     {
-        return false;
+        return true;
     }
 
     /**
@@ -29,7 +29,7 @@ class ForeignHaiRobotic_taskUpdateRequest extends FormRequest
            'groupCode'=>'required',
            'taskCode'=>'required',
            'updateEventType'=>'required',
-           'status'=>'required',
+           'status'=>'required|in:0,1',
            'binCode'=>'required',
            'kubotId'=>'required',
            'description'=>'nullable',
@@ -40,13 +40,13 @@ class ForeignHaiRobotic_taskUpdateRequest extends FormRequest
         $validator->after(function (Validator $validator) {
             if($validator->errors()->isNotEmpty()){
                 $validator->errors()->add('code','422');
-                $validator->errors()->add('errMsg', json_encode($validator->errors()->messages()));
-                $validator->errors()->add('data',$validator->errors()->toJson());
+                $validator->errors()->add('errMsg', json_encode($validator->errors()->messages(),JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES));
+                $validator->errors()->add('data',$validator->errors()->toJson(JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES));
             }
 
             $errMsg=(function()use($validator){
                 if($validator->errors()->isEmpty())return '';
-                return $errMsg = '错误: '.$validator->errors()->toJson();
+                return $errMsg = '错误: '.$validator->errors()->toJson(JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
             })();
 
             LogService::log(__METHOD__,__FUNCTION__,

+ 6 - 3
app/Imports/OrderIssueImport.php

@@ -75,17 +75,20 @@ class OrderIssueImport implements ToCollection, WithHeadingRow, WithMultipleShee
                         }
                     }
                 }
-
-                $client_no = null;
+                $client_no = null;$order_no = null;
                 if ($count) {
                     $orderHeader = OracleDOCOrderHeader::query()->where('soreference5', $logistic_number)->first();
                     $client_no = $orderHeader['soreference1'];
+                    $order_no = $orderHeader['orderno'];
                 } else if ($detailCount) {
                     $detail = OracleActAllocationDetails::query()->where('picktotraceid', $logistic_number)->first();
                     $orderHeader = OracleDOCOrderHeader::query()->where('orderno', $detail['orderno'])->first();
                     $client_no = $orderHeader['soreference1'];
+                    $order_no = $orderHeader['orderno'];
                 }
-                $order = $orderService->findOrCreateByClientCode($client_no);
+                $order = null;
+                if($order_no)$order = Order::query()->where('code',$order_no)->first();
+                if(!$order)$order = $orderService->findOrCreateByClientCode($client_no);
                 $orderIssue = OrderIssue::query()->where('order_id', $order['id'])->first();
                 $rejectedBill = $rejectedService->getRejectedByClientNo($client_no);
                 if ($orderIssue) {

+ 1 - 1
app/InventoryAccount.php

@@ -7,7 +7,7 @@ use Illuminate\Database\Eloquent\Model;
 use Illuminate\Database\Eloquent\SoftDeletes;
 use Illuminate\Support\Facades\Auth;
 
-class InventoryAccount extends Model
+class InventoryAccount extends ModelExtended
 {
     use ModelTimeFormat;
     use SoftDeletes;

+ 1 - 1
app/InventoryAccountMission.php

@@ -6,7 +6,7 @@ use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Support\Facades\Auth;
 
-class InventoryAccountMission extends Model
+class InventoryAccountMission extends ModelExtended
 {
     use ModelTimeFormat;
     protected $fillable=[

+ 1 - 1
app/InventoryBlindReceiveExcel.php

@@ -5,7 +5,7 @@ namespace App;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Support\Facades\Storage;
 
-class InventoryBlindReceiveExcel extends Model
+class InventoryBlindReceiveExcel extends ModelExtended
 {
     //
     protected $fillable = [

+ 1 - 1
app/InventoryCompare.php

@@ -5,7 +5,7 @@ namespace App;
 use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Model;
 
-class InventoryCompare extends Model
+class InventoryCompare extends ModelExtended
 {
     use ModelTimeFormat;
     protected $fillable=[

+ 1 - 1
app/InventoryDailyLog.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class InventoryDailyLog extends Model
+class InventoryDailyLog extends ModelExtended
 {
     public $timestamps=false;
     protected $fillable=[

+ 1 - 1
app/InventoryDailyLoggingOwner.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class InventoryDailyLoggingOwner extends Model
+class InventoryDailyLoggingOwner extends ModelExtended
 {
     protected $fillable=[
         "owner_id","status"

+ 1 - 1
app/JobType.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class JobType extends Model
+class JobType extends ModelExtended
 {
     //
 }

+ 1 - 1
app/LaborCompany.php

@@ -5,7 +5,7 @@ namespace App;
 use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Model;
 
-class LaborCompany extends Model
+class LaborCompany extends ModelExtended
 {
     use ModelTimeFormat;
     protected $fillable=[

+ 1 - 1
app/LaborReport.php

@@ -10,7 +10,7 @@ use Illuminate\Support\Arr;
 use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\Gate;
 
-class LaborReport extends Model
+class LaborReport extends ModelExtended
 {
     use ModelTimeFormat;
     use SoftDeletes;

+ 1 - 1
app/LaborReportStatus.php

@@ -5,7 +5,7 @@ namespace App;
 use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Model;
 
-class LaborReportStatus extends Model
+class LaborReportStatus extends ModelExtended
 {
     use ModelTimeFormat;
     protected $fillable=[

+ 1 - 1
app/Log.php

@@ -7,7 +7,7 @@ use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Relations\HasOne;
 use Illuminate\Support\Str;
 
-class Log extends Model
+class Log extends ModelExtended
 {
     use ModelTimeFormat;
     protected $fillable = [

+ 1 - 1
app/Logistic.php

@@ -9,7 +9,7 @@ use Illuminate\Database\Eloquent\Model;
  * @method static Builder orderBy(string $string, string $string1)
  */use App\Traits\ModelTimeFormat;
 
-class Logistic extends Model
+class Logistic extends ModelExtended
 {
     use ModelTimeFormat;
     protected $fillable = ['name','code',"type","mobile","remark","delivery_fee"];

+ 1 - 1
app/LogisticNumberFeature.php

@@ -5,7 +5,7 @@ namespace App;
 use Illuminate\Database\Eloquent\Model;
 use App\Traits\ModelTimeFormat;
 
-class LogisticNumberFeature extends Model
+class LogisticNumberFeature extends ModelExtended
 {
     use ModelTimeFormat;
     protected $fillable=['logistic_id','name','value','weight'];

+ 1 - 1
app/LogisticTiming.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class LogisticTiming extends Model
+class LogisticTiming extends ModelExtended
 {
     //
     protected $fillable = [

+ 1 - 1
app/MaterialBox.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class MaterialBox extends Model
+class MaterialBox extends ModelExtended
 {
     protected $fillable=['code'];
 }

+ 1 - 1
app/MeasuringMachine.php

@@ -7,7 +7,7 @@ use Illuminate\Database\Eloquent\Model;
 use App\Traits\ModelTimeFormat;
 use Illuminate\Support\Carbon;
 
-class MeasuringMachine extends Model
+class MeasuringMachine extends ModelExtended
 {
     use ModelTimeFormat;
     protected $fillable=[

+ 1 - 1
app/Menu.php

@@ -5,7 +5,7 @@ namespace App;
 use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Model;
 
-class Menu extends Model
+class Menu extends ModelExtended
 {
     use ModelTimeFormat;
     protected $fillable=[

+ 47 - 0
app/ModelExtended.php

@@ -0,0 +1,47 @@
+<?php
+
+
+namespace App;
+
+use App\Services\LogService;
+use Illuminate\Database\Eloquent\Model;
+
+class ModelExtended extends Model
+{
+    protected $isNotLogging=[
+        Log::class
+    ];
+    private $isShouldLog=null;
+    protected function log($input=''):bool{
+        if($this->isShouldLog===null)
+            $this->isShouldLog
+                =array_search(get_class($this),$this->isNotLogging)===false;
+        if(!$this->isShouldLog)return false;
+        $traces=json_encode(array_slice(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS),0,5));
+        preg_match('/\"function\"\:\".*?"function\"\:\"(.*?)\"\,\"class\"\:\".*?\"/', $traces, $result);
+        $methodName = $result[1]??'';
+        LogService::log(get_class($this),$methodName,
+            '对象:'.$this->toJson()
+            .'参数:'.json_encode([$input])
+            .'调用堆栈:'.$traces
+        );
+
+        return $this->isShouldLog;
+    }
+
+    function save(array $options = [])
+    {
+        $this->log($options);
+        return parent::save($options); // TODO: Change the autogenerated stub
+    }
+    function update(array $attributes = [], array $options = [])
+    {
+        $this->log([$attributes, $options]);
+        return parent::update($attributes, $options); // TODO: Change the autogenerated stub
+    }
+    public function delete()
+    {
+        $this->log();
+        return parent::delete(); // TODO: Change the autogenerated stub
+    }
+}

+ 2 - 1
app/OperatorLog.php

@@ -5,7 +5,7 @@ namespace App;
 use DateTimeInterface;
 use Illuminate\Database\Eloquent\Model;
 
-class OperatorLog extends Model
+class OperatorLog extends ModelExtended
 {
     const UPDATED_AT = null;
     protected $fillable=[
@@ -26,4 +26,5 @@ class OperatorLog extends Model
     {
         return $this['user']['name'] ??'';
     }
+
 }

+ 1 - 1
app/OracleActAllocationDetails.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class OracleActAllocationDetails extends Model
+class OracleActAllocationDetails extends ModelExtended
 {
     protected $connection="oracle";
     protected $primaryKey="ALLOCATIONDETAILSID";

+ 1 - 1
app/OracleActTransactionLog.php

@@ -10,7 +10,7 @@ use Illuminate\Database\Eloquent\Model;
  * TABLE:   ACT_TRANSACTION_LOG
  * EXPLAIN: 库存事务
  */
-class OracleActTransactionLog extends Model
+class OracleActTransactionLog extends ModelExtended
 {
     protected $connection="oracle";
     protected $table="ACT_TRANSACTION_LOG";

+ 2 - 2
app/OracleBasCode.php

@@ -9,11 +9,11 @@ use Illuminate\Database\Eloquent\Model;
  * TABLE:   BAS_Codes
  * EXPLAIN: 系统代码内容
  */
-class OracleBasCode extends Model
+class OracleBasCode extends ModelExtended
 {
     protected $connection="oracle";
     protected $table="BAS_CODES";
     /*
      * column: CodeID=>代码表ID,Code=>代码,CodeName_C=>中文描述
      * */
-}
+}

+ 1 - 1
app/OracleBasCustomer.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class OracleBasCustomer extends Model
+class OracleBasCustomer extends ModelExtended
 {
     protected $connection="oracle";
     protected $table="BAS_CUSTOMER";

+ 1 - 1
app/OracleBasSKU.php

@@ -10,7 +10,7 @@ use Illuminate\Database\Eloquent\Model;
  */
 use App\Traits\ModelTimeFormat;
 
-class OracleBasSKU extends Model
+class OracleBasSKU extends ModelExtended
 {
     use ModelTimeFormat;
     protected $connection="oracle";

+ 1 - 1
app/OracleDOCASNDetail.php

@@ -5,7 +5,7 @@ namespace App;
 use Illuminate\Database\Eloquent\Model;
 use App\Traits\ModelTimeFormat;
 
-class OracleDOCASNDetail extends Model
+class OracleDOCASNDetail extends ModelExtended
 {
     use ModelTimeFormat;
     protected $connection="oracle";

+ 1 - 1
app/OracleDOCASNHeader.php

@@ -5,7 +5,7 @@ namespace App;
 use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Model;
 
-class OracleDOCASNHeader extends Model
+class OracleDOCASNHeader extends ModelExtended
 {
     use ModelTimeFormat;
     protected $connection="oracle";

+ 1 - 1
app/OracleDOCMovementDetail.php

@@ -5,7 +5,7 @@ namespace App;
 use Illuminate\Database\Eloquent\Model;
 use App\Traits\ModelTimeFormat;
 
-class OracleDOCMovementDetail extends Model
+class OracleDOCMovementDetail extends ModelExtended
 {
     use ModelTimeFormat;
     protected $connection="oracle";

+ 1 - 1
app/OracleDOCMovementHeader.php

@@ -5,7 +5,7 @@ namespace App;
 use Illuminate\Database\Eloquent\Model;
 use App\Traits\ModelTimeFormat;
 
-class OracleDOCMovementHeader extends Model
+class OracleDOCMovementHeader extends ModelExtended
 {
     use ModelTimeFormat;
     protected $connection="oracle";

+ 1 - 1
app/OracleDOCOrderDetail.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class OracleDOCOrderDetail extends Model
+class OracleDOCOrderDetail extends ModelExtended
 {
     protected $connection="oracle";
     protected $table="DOC_Order_Details";

+ 1 - 1
app/OracleDOCOrderHeader.php

@@ -5,7 +5,7 @@ namespace App;
 use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Model;
 
-class OracleDOCOrderHeader extends Model
+class OracleDOCOrderHeader extends ModelExtended
 {
 
     use ModelTimeFormat;

+ 1 - 1
app/OracleDOCWaveDetails.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class OracleDOCWaveDetails extends Model
+class OracleDOCWaveDetails extends ModelExtended
 {
     protected $connection='oracle';
     protected $table='DOC_WAVE_DETAILS';

+ 1 - 1
app/OracleDOCWaveHeader.php

@@ -5,7 +5,7 @@ namespace App;
 use Illuminate\Database\Eloquent\Model;
 use App\Traits\ModelTimeFormat;
 
-class OracleDOCWaveHeader extends Model
+class OracleDOCWaveHeader extends ModelExtended
 {
     use ModelTimeFormat;
     protected $fillable=[

+ 1 - 1
app/OracleDocOrderPackingSummary.php

@@ -6,7 +6,7 @@ use Carbon\Carbon;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Support\Facades\DB;
 
-class OracleDocOrderPackingSummary extends Model
+class OracleDocOrderPackingSummary extends ModelExtended
 {
     protected $connection="oracle";
     protected $primaryKey="traceid";

+ 1 - 1
app/OracleIdxAsrsReceive.php

@@ -6,7 +6,7 @@ use Carbon\Carbon;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Support\Facades\DB;
 
-class OracleIdxAsrsReceive extends Model
+class OracleIdxAsrsReceive extends ModelExtended
 {
     protected $connection="oracle";
     protected $primaryKey="GROUPTASKID";

+ 1 - 1
app/OracleInvLotAtt.php

@@ -9,7 +9,7 @@ use Illuminate\Database\Eloquent\Model;
  * TABLE:   INV_LOT_ATT
  * EXPLAIN: 批次属性
  */
-class OracleInvLotAtt extends Model
+class OracleInvLotAtt extends ModelExtended
 {
 
     protected $connection="oracle";

+ 1 - 1
app/OracleInvLotLocId.php

@@ -10,7 +10,7 @@ use Illuminate\Database\Eloquent\Model;
  * TABLE:   INV_LOT_LOC_ID
  * EXPLAIN: 库存状态
  */
-class OracleInvLotLocId extends Model
+class OracleInvLotLocId extends ModelExtended
 {
     protected $connection="oracle";
     protected $table="INV_LOT_LOC_ID";

+ 1 - 1
app/Order.php

@@ -5,7 +5,7 @@ namespace App;
 use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Model;
 
-class Order extends Model
+class Order extends ModelExtended
 {
     //
     use ModelTimeFormat;

+ 1 - 1
app/OrderBin.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class OrderBin extends Model
+class OrderBin extends ModelExtended
 {
     protected $fillable = [
         'order_id', 'number',

+ 1 - 1
app/OrderCommodity.php

@@ -5,7 +5,7 @@ namespace App;
 use App\Http\Controllers\Controller;
 use Illuminate\Database\Eloquent\Model;
 
-class OrderCommodity extends Model
+class OrderCommodity extends ModelExtended
 {
     protected $fillable = [
         'id', 'order_id','commodity_id', 'amount','wms_ptltaskid','location'

+ 1 - 1
app/OrderCommodityAssign.php

@@ -5,7 +5,7 @@ namespace App;
 use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Model;
 
-class OrderCommodityAssign extends Model
+class OrderCommodityAssign extends ModelExtended
 {
     use ModelTimeFormat;
     protected $fillable = [

+ 1 - 1
app/OrderCountingRecord.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class OrderCountingRecord extends Model
+class OrderCountingRecord extends ModelExtended
 {
     //
     protected $fillable = ['owner_id','shop_id' ,'warehouse_id' ,'logistic_id' ,'date_target' ,'counting_unit' ,'amount','year','month','week'];

+ 1 - 1
app/OrderIssue.php

@@ -6,7 +6,7 @@ use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Database\Eloquent\SoftDeletes;
 
-class OrderIssue extends Model
+class OrderIssue extends ModelExtended
 {
     //
     use ModelTimeFormat;

+ 2 - 2
app/OrderIssueOnTop.php

@@ -5,11 +5,11 @@ namespace App;
 use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Model;
 
-class OrderIssueOnTop extends Model
+class OrderIssueOnTop extends ModelExtended
 {
     //
     use ModelTimeFormat;
-    
+
     protected $fillable = [ 'order_issue_id','remark'];
 
     public function OrderIssue(){

+ 1 - 1
app/OrderIssueProcessLog.php

@@ -5,7 +5,7 @@ namespace App;
 use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Model;
 
-class OrderIssueProcessLog extends Model
+class OrderIssueProcessLog extends ModelExtended
 {
     //
     use ModelTimeFormat;

+ 1 - 1
app/OrderIssueType.php

@@ -5,7 +5,7 @@ namespace App;
 use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Model;
 
-class OrderIssueType extends Model
+class OrderIssueType extends ModelExtended
 {
     //
     use ModelTimeFormat;

+ 1 - 1
app/OrderPackage.php

@@ -13,7 +13,7 @@ use Illuminate\Support\Arr;
 use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\DB;
 
-class OrderPackage extends Model
+class OrderPackage extends ModelExtended
 {
     use ModelTimeFormat;
 

+ 1 - 1
app/OrderPackageCommodities.php

@@ -5,7 +5,7 @@ namespace App;
 use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Model;
 
-class OrderPackageCommodities extends Model
+class OrderPackageCommodities extends ModelExtended
 {
     //
     use ModelTimeFormat;

+ 1 - 1
app/OrderTracking.php

@@ -5,7 +5,7 @@ namespace App;
 use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Model;
 
-class OrderTracking extends Model
+class OrderTracking extends ModelExtended
 {
 
     use ModelTimeFormat;

+ 1 - 1
app/OrderTrackingOwner.php

@@ -5,7 +5,7 @@ namespace App;
 use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Model;
 
-class OrderTrackingOwner extends Model
+class OrderTrackingOwner extends ModelExtended
 {
     //
     use ModelTimeFormat;

+ 1 - 1
app/Owner.php

@@ -11,7 +11,7 @@ use Illuminate\Support\Facades\Auth;
  */
 use App\Traits\ModelTimeFormat;
 
-class Owner extends Model
+class Owner extends ModelExtended
 {
     use ModelTimeFormat;
     public $fillable = [

+ 1 - 1
app/OwnerAreaReport.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class OwnerAreaReport extends Model
+class OwnerAreaReport extends ModelExtended
 {
     protected $fillable = [
         "owner_id",             //货主ID

+ 1 - 1
app/OwnerBillReport.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class OwnerBillReport extends Model
+class OwnerBillReport extends ModelExtended
 {
    protected $fillable = [
        "owner_id",       //项目ID

+ 1 - 1
app/OwnerContract.php

@@ -5,7 +5,7 @@ namespace App;
 use App\Traits\ModelTimeFormat;
 use Illuminate\Database\Eloquent\Model;
 
-class OwnerContract extends Model
+class OwnerContract extends ModelExtended
 {
     use ModelTimeFormat;
 

+ 1 - 1
app/OwnerFeeDetail.php

@@ -5,7 +5,7 @@ namespace App;
 use App\Services\ProcessMethodService;
 use Illuminate\Database\Eloquent\Model;
 
-class OwnerFeeDetail extends Model
+class OwnerFeeDetail extends ModelExtended
 {
     protected $fillable = [
         "owner_id",         //货主ID

+ 1 - 1
app/OwnerInStorageRule.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class OwnerInStorageRule extends Model
+class OwnerInStorageRule extends ModelExtended
 {
     protected $fillable = [
         "owner_price_operation_id", //作业计费ID

+ 1 - 1
app/OwnerOutStorageRule.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class OwnerOutStorageRule extends Model
+class OwnerOutStorageRule extends ModelExtended
 {
     protected $fillable = [
         "owner_price_operation_id",         //作业计费ID

+ 1 - 1
app/OwnerPriceDirectLogistic.php

@@ -5,7 +5,7 @@ namespace App;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Support\Facades\DB;
 
-class OwnerPriceDirectLogistic extends Model
+class OwnerPriceDirectLogistic extends ModelExtended
 {
     protected $fillable = [
         "name",     //名称

+ 1 - 1
app/OwnerPriceDirectLogisticCar.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class OwnerPriceDirectLogisticCar extends Model
+class OwnerPriceDirectLogisticCar extends ModelExtended
 {
     protected $fillable = [
         "owner_price_direct_logistic_id",   //直发车计费ID

+ 1 - 1
app/OwnerPriceExpress.php

@@ -5,7 +5,7 @@ namespace App;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Support\Facades\DB;
 
-class OwnerPriceExpress extends Model
+class OwnerPriceExpress extends ModelExtended
 {
     protected $fillable = [
         "name",             //名称

+ 1 - 1
app/OwnerPriceExpressProvince.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class OwnerPriceExpressProvince extends Model
+class OwnerPriceExpressProvince extends ModelExtended
 {
     protected $fillable = [
         "owner_price_express_id",   //快递价格ID

+ 1 - 1
app/OwnerPriceLogistic.php

@@ -5,7 +5,7 @@ namespace App;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Support\Facades\DB;
 
-class OwnerPriceLogistic extends Model
+class OwnerPriceLogistic extends ModelExtended
 {
     protected $fillable = [
         "name",             //名称

+ 1 - 1
app/OwnerPriceLogisticDetail.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class OwnerPriceLogisticDetail extends Model
+class OwnerPriceLogisticDetail extends ModelExtended
 {
     protected $fillable = [
         "owner_price_logistic_id",  //物流计费

+ 1 - 1
app/OwnerPriceOperation.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class OwnerPriceOperation extends Model
+class OwnerPriceOperation extends ModelExtended
 {
     protected $fillable = [
         "operation_type",   //操作类型

+ 1 - 1
app/OwnerReport.php

@@ -6,7 +6,7 @@ use App\Traits\ModelTimeFormat;
 use Carbon\Carbon;
 use Illuminate\Database\Eloquent\Model;
 
-class OwnerReport extends Model
+class OwnerReport extends ModelExtended
 {
     use ModelTimeFormat;
     protected $fillable = [

+ 1 - 1
app/OwnerStoragePriceModel.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class OwnerStoragePriceModel extends Model
+class OwnerStoragePriceModel extends ModelExtended
 {
     protected $fillable = [
         "counting_type",    //计费类型

+ 1 - 1
app/OwnerStoragePriceModelOwner.php

@@ -4,7 +4,7 @@ namespace App;
 
 use Illuminate\Database\Eloquent\Model;
 
-class OwnerStoragePriceModelOwner extends Model
+class OwnerStoragePriceModelOwner extends ModelExtended
 {
     protected $table = "owner_storage_price_model_owner";
 }

Некоторые файлы не были показаны из-за большого количества измененных файлов