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

Merge branch 'master' of ssh://47.103.131.176:10022/var/git/bswas

 Conflicts:
	app/Http/Controllers/TestController.php
zhouzhendong 4 лет назад
Родитель
Сommit
6afffe4d15

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

@@ -32,7 +32,7 @@ class RejectedBillController extends Controller
         if(!Gate::allows('退货管理-查询')){
             return ['success'=>'false','fail_info'=>'没有权限'];}
         $rejectedBills = RejectedBill::query()->orderByDesc('id')->whereIn('id_owner',
-            app("OwnerService")->getQuery())->limit(20)->get();
+            app("OwnerService")->getIdArr())->limit(20)->get();
         return ['success'=>'true','rejectedBills'=>$rejectedBills->toArray()];
     }
 

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

@@ -239,7 +239,7 @@ class RejectedController extends Controller
         $logistics=Logistic::all()->sortBy('name');
         $qualityLabels=QualityLabel::all()->sortBy('name');
         $rejectedBills = RejectedBill::query()->orderByDesc('id')->whereIn('id_owner',
-            app("OwnerService")->getQuery())->limit(20)->get();
+            app("OwnerService")->getIdArr())->limit(20)->get();
         foreach($rejectedBills as $bill){
             $bill['is_loaded'] = $bill['is_loaded_null'];
             $bill['isEditing'] = false;

+ 23 - 0
app/Http/Controllers/RejectedPushTaskController.php

@@ -0,0 +1,23 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use App\Owner;
+use App\Services\UserService;
+
+class RejectedPushTaskController extends Controller
+{
+
+
+    public function index()
+    {
+        /**
+         * @var UserService $userService
+         */
+        $userService = app('UserService');
+        $ownerIds = $userService->getUserHasOwners(auth()->id());
+        $owners = Owner::query()->whereIn('id', $ownerIds)->get();
+        $ownerIds = $owners->pluck('id');
+        return view('rejected.rejectedPushTask.index', compact('owners', 'ownerIds'));
+    }
+}

+ 50 - 0
app/Jobs/RejectedPushJob.php

@@ -0,0 +1,50 @@
+<?php
+
+namespace App\Jobs;
+
+use Illuminate\Bus\Queueable;
+use Illuminate\Contracts\Queue\ShouldQueue;
+use Illuminate\Foundation\Bus\Dispatchable;
+use Illuminate\Queue\InteractsWithQueue;
+use Illuminate\Queue\SerializesModels;
+use Illuminate\Support\Facades\Http;
+
+class RejectedPushJob implements ShouldQueue
+{
+    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
+
+    public $tries = 5;
+
+    public $timeout = 120;
+
+    /**
+     * type: 推单,上架
+     *  [
+     * ['logisticNumberReturn' => '75603675975072', 'asnNo' => 'asn002', 'type' => '推单'],
+     * ['logisticNumberReturn' => '75603675975072', 'asnNo' => 'asn002', 'type' => '推单'],
+     * ]
+     */
+    private $pushData;
+
+    /**
+     * @param array $pushData
+     */
+    public function __construct(array $pushData)
+    {
+        $this->pushData = $pushData;
+    }
+
+
+    /**
+     * Execute the job.
+     *
+     * @return void
+     */
+    public function handle()
+    {
+        $url = config('api.java.wms.rejectedPushTask.receivePush');
+        dump($url);
+        $response = Http::post($url, $this->pushData);
+        dump($response->body());
+    }
+}

+ 1 - 1
app/Owner.php

@@ -70,7 +70,7 @@ class Owner extends Model
         if(!$user){
             return $query->where('id','0');
         }
-        return $query->whereIn('id',app("OwnerService")->getQuery());
+        return $query->whereIn('id',app("OwnerService")->getIdArr());
     }
 
     /**

+ 2 - 2
app/Services/AllInventoryService.php

@@ -15,7 +15,7 @@ class AllInventoryService
 
     protected $modelClass=AllInventory::class;
     public function getSql(array $params, $page=null, $paginate=null){
-        $ownerCodes=Owner::filterAuthorities()->select('code')->get();
+        $ownerCodes=app("OwnerService")->getCodeArr();
         $date_start=$params['date_start'] ?? null;
         $range = $params['range'] ?? null;
         if ($range)$date_start=date('Y-m-d',strtotime('-'.$range." day"));
@@ -49,7 +49,7 @@ class AllInventoryService
             $sql .= ' where storeStatus.CUSTOMERID in (';
             foreach ($ownerCodes as $index => $data){
                 if ($index != 0)$sql .= ',';
-                $sql .= "'".$data['code']."'";
+                $sql .= "'".$data."'";
             }
             $sql .= ') ';
         }

+ 1 - 1
app/Services/OwnerFeeDetailService.php

@@ -19,7 +19,7 @@ class OwnerFeeDetailService
      */
     private function query(Builder $builder, array $params)
     {
-        $builder->whereIn("owner_id",app("OwnerService")->getQuery());
+        $builder->whereIn("owner_id",app("OwnerService")->getIdArr());
         $columnQueryRules = [
             'worked_at_start' => ['alias' => 'worked_at', 'startDate' => ''],
             'worked_at_end' => ['alias' => 'worked_at', 'endDate' => ''],

+ 230 - 205
app/Services/OwnerService.php

@@ -28,30 +28,34 @@ use App\Traits\ServiceAppAop;
 class OwnerService implements UserFilter
 {
     use ServiceAppAop;
-    protected $modelClass=Owner::class;
+
+    protected $modelClass = Owner::class;
     /** @var CacheService $cacheService */
     private $cacheService;
-    function __construct(){
-        $this->instant($this->cacheService,'CacheService');
+
+    function __construct()
+    {
+        $this->instant($this->cacheService, 'CacheService');
     }
+
     /*
      * array | string $column
      * 默认一些select字段,可传递string 或 array来指定select字段
      */
     public function getIntersectPermitting(array $column = ['id', 'name'])
     {
-        $ownerIds=app('OwnerService')->getIdArr();
-        return $this->cacheService->getOrExecute('OwnersAll_IdName'.md5(json_encode($column).json_encode($ownerIds)),function()use($column,$ownerIds){
-            if(empty($ownerIds))return new Collection();
+        $ownerIds = app('OwnerService')->getIdArr();
+        return $this->cacheService->getOrExecute('OwnersAll_IdName' . md5(json_encode($column) . json_encode($ownerIds)), function () use ($column, $ownerIds) {
+            if (empty($ownerIds)) return new Collection();
             return Owner::query()->select($column)->whereIn('id', $ownerIds)->whereNull('deleted_at')->get();
-        },config('cache.expirations.owners'));
+        }, config('cache.expirations.owners'));
     }
 
     public function getSelection($column = ['id'])
     {
-        return $this->cacheService->getOrExecute('OwnersAll_'.md5(json_encode($column)),function()use($column){
+        return $this->cacheService->getOrExecute('OwnersAll_' . md5(json_encode($column)), function () use ($column) {
             return Owner::filterAuthorities()->select($column)->get();
-        },config('cache.expirations.owners'));
+        }, config('cache.expirations.owners'));
     }
 
     /**
@@ -69,7 +73,7 @@ class OwnerService implements UserFilter
         if (count($basCustomers) == $ownerCount) return null;
         foreach ($basCustomers as $basCustomer) {
             $owner = Owner::query()->where('code', $basCustomer['customerid'])->first();
-            if (!isset($owner)){
+            if (!isset($owner)) {
                 Owner::query()->create([
                     'code' => $basCustomer['customerid'],
                     'name' => $basCustomer['descr_c'],
@@ -77,7 +81,7 @@ class OwnerService implements UserFilter
                 ]);
                 continue;
             }
-            if ($owner['name']!=$basCustomer['descr_c']){
+            if ($owner['name'] != $basCustomer['descr_c']) {
                 $owner->update([
                     'code' => $basCustomer['customerid'],
                     'name' => $basCustomer['descr_c'],
@@ -88,13 +92,14 @@ class OwnerService implements UserFilter
         return $owners;
     }
 
-    public function first(array $params, array $rules =[]){
-        return $this->cacheService->getOrExecute('OwnersFirst'.md5(json_encode($params),json_encode($rules)),function()use($params,$rules){
+    public function first(array $params, array $rules = [])
+    {
+        return $this->cacheService->getOrExecute('OwnersFirst' . md5(json_encode($params), json_encode($rules)), function () use ($params, $rules) {
             $owner = Owner::query();
-            foreach ($params as $column => $value){
-                if (!isset($rules[$column]))$owner->where($column, $value);
-                else{
-                    switch ($rules[$column]){
+            foreach ($params as $column => $value) {
+                if (!isset($rules[$column])) $owner->where($column, $value);
+                else {
+                    switch ($rules[$column]) {
                         case "or":
                             $owner->orWhere($column, $value);
                             break;
@@ -102,7 +107,7 @@ class OwnerService implements UserFilter
                 }
             }
             return $owner->first();
-        },config('cache.expirations.rarelyChange'));
+        }, config('cache.expirations.rarelyChange'));
     }
 
     public function find($id, $with = [])
@@ -112,46 +117,53 @@ class OwnerService implements UserFilter
 
     public function update(Owner $owner, array $values, array $related = [])
     {
-        if ($related["ownerStoragePriceModels"] ?? false)$owner->ownerStoragePriceModels()->sync($related["ownerStoragePriceModels"]);
+        if ($related["ownerStoragePriceModels"] ?? false) $owner->ownerStoragePriceModels()->sync($related["ownerStoragePriceModels"]);
         return $owner->update($values);
     }
 
-    public function create(array $params, array $related = []){
+    public function create(array $params, array $related = [])
+    {
         /** @var Owner $owner */
         $owner = Owner::query()->create($params);
-        if ($related["ownerStoragePriceModels"] ?? false)$owner->ownerStoragePriceModels()->syncWithoutDetaching($related["ownerStoragePriceModels"]);
+        if ($related["ownerStoragePriceModels"] ?? false) $owner->ownerStoragePriceModels()->syncWithoutDetaching($related["ownerStoragePriceModels"]);
         return $owner;
     }
 
-    public function firstOrCreate(array $params, array $values = null){
+    public function firstOrCreate(array $params, array $values = null)
+    {
         if (!$values) return Owner::query()->whereNull("deleted_at")->firstOrCreate($params);
-        return Owner::query()->whereNull("deleted_at")->firstOrCreate($params,$values);
+        return Owner::query()->whereNull("deleted_at")->firstOrCreate($params, $values);
     }
 
 
-    public function 获取订单跟踪的货主(){
-        return Owner::query()->with('orderTrackingOwner')->whereHas('orderTrackingOwner',function($query){
-            $query->where('status','启用');
+    public function 获取订单跟踪的货主()
+    {
+        return Owner::query()->with('orderTrackingOwner')->whereHas('orderTrackingOwner', function ($query) {
+            $query->where('status', '启用');
         })->get();
     }
 
-    public function getByWmsOrders($orderHeaders){
-        $customerIds = array_unique(data_get($orderHeaders,'*.customerid'));
-        $customerIds = array_diff($customerIds,[null,'','*']);
-        $owners = Owner::query()->whereIn('code',$customerIds)->get();
+    public function getByWmsOrders($orderHeaders)
+    {
+        $customerIds = array_unique(data_get($orderHeaders, '*.customerid'));
+        $customerIds = array_diff($customerIds, [null, '', '*']);
+        $owners = Owner::query()->whereIn('code', $customerIds)->get();
 
-        if($owners->count() < count($customerIds)){
-            $customerIds = array_diff($customerIds,data_get($owners,'*.code'));
+        if ($owners->count() < count($customerIds)) {
+            $customerIds = array_diff($customerIds, data_get($owners, '*.code'));
             $owner_list = $this->createByWmsCustomerIds($customerIds);
-            $owners=$owners->concat($owner_list);
+            $owners = $owners->concat($owner_list);
         }
         return $owners;
     }
 
-    public function createByWmsCustomerIds($codes){
-        if(!$codes) {return [];}
+    public function createByWmsCustomerIds($codes)
+    {
+        if (!$codes) {
+            return [];
+        }
         $basCustomer = OracleBasCustomer::query()
-            ->where('Customer_Type','OW')
+            ->where('Customer_Type', 'OW')
             ->whereIn('CustomerID', $codes)
             ->get();
 
@@ -168,7 +180,7 @@ class OwnerService implements UserFilter
         try {
             if (count($insert_params) > 0) {
                 $this->insert($insert_params);
-                app('LogService')->log(__METHOD__, __FUNCTION__, '批量创建 owner ' . count($insert_params) . json_encode($insert_params) );
+                app('LogService')->log(__METHOD__, __FUNCTION__, '批量创建 owner ' . count($insert_params) . json_encode($insert_params));
             }
         } catch (\Exception $e) {
             app('LogService')->log(__METHOD__, __FUNCTION__, '批量创建 owner error' . json_encode($insert_params) . '||' . $e->getMessage() . '||' . $e->getTraceAsString());
@@ -177,32 +189,34 @@ class OwnerService implements UserFilter
         }
     }
 
-    public function insert($fillables){
+    public function insert($fillables)
+    {
         return Owner::query()->insert($fillables);
     }
 
-    public function getAuthorizedOwners(){
-        return Owner::query()->whereIn('id',app("OwnerService")->getQuery())->get();
+    public function getAuthorizedOwners()
+    {
+        return Owner::query()->whereIn('id', app("OwnerService")->getQuery())->get();
     }
 
     public function get(array $params, array $withs = null, bool $authority = true, bool $notShowSoftDelete = false, $user = null)
     {
         return Cache::remember(
-            'owner_'.md5(json_encode($params).json_encode($withs).$authority.$notShowSoftDelete.json_encode($user))
-            ,config('cache.expirations.rarelyChange')
-            ,function()use($params,$withs,$authority,$notShowSoftDelete){
-            $query = $this->query($this->getQueryConstructor($withs, $authority, $notShowSoftDelete),$params);
+            'owner_' . md5(json_encode($params) . json_encode($withs) . $authority . $notShowSoftDelete . json_encode($user))
+            , config('cache.expirations.rarelyChange')
+            , function () use ($params, $withs, $authority, $notShowSoftDelete) {
+            $query = $this->query($this->getQueryConstructor($withs, $authority, $notShowSoftDelete), $params);
             return $query->get();
         });
     }
 
-    private function getQueryConstructor(array $withs, bool $authority, bool $notShowSoftDelete) :Builder
+    private function getQueryConstructor(array $withs, bool $authority, bool $notShowSoftDelete): Builder
     {
         $query = Owner::query();
-        if ($withs)$query->with($withs);
-        if ($authority){
+        if ($withs) $query->with($withs);
+        if ($authority) {
             $ids = $this->getIdArr();
-            if (count($ids) > 0){
+            if (count($ids) > 0) {
                 $query->whereIn("id", $ids);
             } else {
                 $query->where("id", 0);
@@ -211,98 +225,99 @@ class OwnerService implements UserFilter
         if ($notShowSoftDelete) $query->whereNull('deleted_at');
         return $query;
     }
+
     public function paginate(array $params, array $withs = null, bool $authority = true, bool $notShowSoftDelete = false)
     {
-        $query = $this->query($this->getQueryConstructor($withs, $authority, $notShowSoftDelete),$params)->
-                orderByDesc("id");
+        $query = $this->query($this->getQueryConstructor($withs, $authority, $notShowSoftDelete), $params)->
+        orderByDesc("id");
         return $query->paginate($params["paginate"] ?? 50);
     }
 
     private function query(Builder $builder, array $params)
     {
-        foreach ($params as $column => $param){
-            if ($column == 'paginate' || $column == 'page' || !$param)continue;
-            if ($param === true){
+        foreach ($params as $column => $param) {
+            if ($column == 'paginate' || $column == 'page' || !$param) continue;
+            if ($param === true) {
                 $builder->whereNotNull($column);
                 continue;
             }
-            if ($param === false){
+            if ($param === false) {
                 $builder->whereNull($column);
                 continue;
             }
-            if ($column == 'created_at_start'){
-                $builder->where("created_at",">=",$param.":00");
+            if ($column == 'created_at_start') {
+                $builder->where("created_at", ">=", $param . ":00");
                 continue;
             }
-            if ($column == 'created_at_end'){
-                $builder->where("created_at","<=",$param.":59");
+            if ($column == 'created_at_end') {
+                $builder->where("created_at", "<=", $param . ":59");
                 continue;
             }
-            if ($column == 'contract_number'){
-                $builder->whereHas("contracts",function ($query)use($param){
+            if ($column == 'contract_number') {
+                $builder->whereHas("contracts", function ($query) use ($param) {
                     /** @var Builder $query */
-                    $query->where("contract_number","like",$param."%");
+                    $query->where("contract_number", "like", $param . "%");
                 });
                 continue;
             }
-            if ($column == 'using_type'){
-                $builder->whereHas("ownerStoragePriceModels",function ($query)use($param){
+            if ($column == 'using_type') {
+                $builder->whereHas("ownerStoragePriceModels", function ($query) use ($param) {
                     /** @var Builder $query */
-                    $query->where("using_type",$param);
+                    $query->where("using_type", $param);
                 });
                 continue;
             }
-            if ($column == 'customers'){
-                if (is_array($param))$builder->whereIn('customer_id',$param);
-                else $builder->where('customer_id',$param);
+            if ($column == 'customers') {
+                if (is_array($param)) $builder->whereIn('customer_id', $param);
+                else $builder->where('customer_id', $param);
                 continue;
             }
-            if ($column == 'ids'){
-                if (is_array($param))$builder->whereIn('id',$param);
-                else $builder->where('id',$param);
+            if ($column == 'ids') {
+                if (is_array($param)) $builder->whereIn('id', $param);
+                else $builder->where('id', $param);
                 continue;
             }
-            if ($column == 'owners'){
-                if (is_array($param))$builder->whereIn('owner_id',$param);
-                else $builder->where('owner_id',$param);
+            if ($column == 'owners') {
+                if (is_array($param)) $builder->whereIn('owner_id', $param);
+                else $builder->where('owner_id', $param);
                 continue;
             }
 //            if ($column == 'user_work_group'){
 //                $builder->where("user_workgroup_id",$param);
 //                continue;
 //            }
-            if ($column == 'kcGroup'){
-                $builder->whereHas("departmentObligationOwner",function($query)use($param){
-                    $query->where('obligation_code','kc')->where('department_id',$param);
+            if ($column == 'kcGroup') {
+                $builder->whereHas("departmentObligationOwner", function ($query) use ($param) {
+                    $query->where('obligation_code', 'kc')->where('department_id', $param);
                 });
                 continue;
             }
-            if ($column == 'jgGroup'){
-                $builder->whereHas("departmentObligationOwner",function($query)use($param){
-                    $query->where('obligation_code','jg')->where('department_id',$param);
+            if ($column == 'jgGroup') {
+                $builder->whereHas("departmentObligationOwner", function ($query) use ($param) {
+                    $query->where('obligation_code', 'jg')->where('department_id', $param);
                 });
                 continue;
             }
-            if ($column == 'fhGroup'){
-                $builder->whereHas("departmentObligationOwner",function($query)use($param){
-                    $query->where('obligation_code','fh')->where('department_id',$param);
+            if ($column == 'fhGroup') {
+                $builder->whereHas("departmentObligationOwner", function ($query) use ($param) {
+                    $query->where('obligation_code', 'fh')->where('department_id', $param);
                 });
                 continue;
             }
-            if ($column == 'thGroup'){
-                $builder->whereHas("departmentObligationOwner",function($query)use($param){
-                    $query->where('obligation_code','th')->where('department_id',$param);
+            if ($column == 'thGroup') {
+                $builder->whereHas("departmentObligationOwner", function ($query) use ($param) {
+                    $query->where('obligation_code', 'th')->where('department_id', $param);
                 });
                 continue;
             }
-            if ($column == 'shGroup'){
-                $builder->whereHas("departmentObligationOwner",function($query)use($param){
-                    $query->where('obligation_code','sh')->where('department_id',$param);
+            if ($column == 'shGroup') {
+                $builder->whereHas("departmentObligationOwner", function ($query) use ($param) {
+                    $query->where('obligation_code', 'sh')->where('department_id', $param);
                 });
                 continue;
             }
-            if (is_array($param))$builder->whereIn($column,$param);
-            else $builder->where($column,$param);
+            if (is_array($param)) $builder->whereIn($column, $param);
+            else $builder->where($column, $param);
         }
         return $builder;
     }
@@ -310,30 +325,32 @@ class OwnerService implements UserFilter
     public function getOwnerByCodes($codes)
     {
         $collect = collect();
-        if(count($codes) == 0)return $collect;
+        if (count($codes) == 0) return $collect;
         foreach ($codes as $code) {
             $collect = $collect->push($this->getOwnerByCode($code));
         }
         return $collect;
     }
 
-    public function getOwnerByCode($code){
-        return Cache::remember("getOwnerByCode_{$code}", config('cache.expirations.owners'), function ()use($code){
-            $owner = Owner::query()->where('code',$code)->first();
-            if($owner) return $owner;
-             $basCustomer = app('OracleBasCustomerService')->first(['Customer_Type'=>'OW','CustomerID'=>$code]);
-            if(!$basCustomer)return null;
-            if($basCustomer && $basCustomer['active_flag']=='Y') return Owner::query()
-                ->create(['name'=>$basCustomer['descr_c'],'code'=>$basCustomer['customerid']]);
-            $deleted_at=Carbon::now()->toDateTimeString();
-            if($basCustomer && $basCustomer['active_flag']=='N') return Owner::query()
-                ->create(['name'=>$basCustomer['descr_c'],'code'=>$basCustomer['customerid'],'deleted_at'=>$deleted_at]);
+    public function getOwnerByCode($code)
+    {
+        return Cache::remember("getOwnerByCode_{$code}", config('cache.expirations.owners'), function () use ($code) {
+            $owner = Owner::query()->where('code', $code)->first();
+            if ($owner) return $owner;
+            $basCustomer = app('OracleBasCustomerService')->first(['Customer_Type' => 'OW', 'CustomerID' => $code]);
+            if (!$basCustomer) return null;
+            if ($basCustomer && $basCustomer['active_flag'] == 'Y') return Owner::query()
+                ->create(['name' => $basCustomer['descr_c'], 'code' => $basCustomer['customerid']]);
+            $deleted_at = Carbon::now()->toDateTimeString();
+            if ($basCustomer && $basCustomer['active_flag'] == 'N') return Owner::query()
+                ->create(['name' => $basCustomer['descr_c'], 'code' => $basCustomer['customerid'], 'deleted_at' => $deleted_at]);
         });
     }
+
     public function codeGetOwner($code)
     {
-        return app(CacheService::class)->getOrExecute("owner_".$code,function ()use($code){
-            return Owner::query()->firstOrCreate(["code"=>$code],["code"=>$code,"name"=>$code]);
+        return app(CacheService::class)->getOrExecute("owner_" . $code, function () use ($code) {
+            return Owner::query()->firstOrCreate(["code" => $code], ["code" => $code, "name" => $code]);
         });
     }
 
@@ -345,25 +362,25 @@ class OwnerService implements UserFilter
      */
     public function syncPush($owner)
     {
-        if (is_array($owner)){
+        if (is_array($owner)) {
             $owner = new Owner();
-            foreach ($owner as $column=>$value){
+            foreach ($owner as $column => $value) {
                 $owner[$column] = $value;
             }
         }
-        if (is_numeric($owner)){
+        if (is_numeric($owner)) {
             $owner = Owner::query()->find($owner);
-            if (!$owner)return false;
+            if (!$owner) return false;
         }
-        $wms = DB::connection("oracle")->selectOne(DB::raw("SELECT CUSTOMERID FROM BAS_CUSTOMER WHERE CUSTOMER_TYPE = ? AND CUSTOMERID = ?"),["OW",$owner->code]);
-        if (!$wms && $owner->code){
+        $wms = DB::connection("oracle")->selectOne(DB::raw("SELECT CUSTOMERID FROM BAS_CUSTOMER WHERE CUSTOMER_TYPE = ? AND CUSTOMERID = ?"), ["OW", $owner->code]);
+        if (!$wms && $owner->code) {
             $query = DB::raw(<<<sql
     INSERT INTO BAS_CUSTOMER(CUSTOMERID,CUSTOMER_TYPE,DESCR_C,ADDTIME,EDITTIME,ADDWHO)
         VALUES(?,?,?,TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'),TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'),?)
 sql
             );
             $date = date('Y-m-d H:i:s');
-            DB::connection("oracle")->insert($query,[$owner->code,'OW',$owner->name,$date,$date,'WAS-'.(Auth::user() ? Auth::user()['name'] : 'SYSTEM')]);
+            DB::connection("oracle")->insert($query, [$owner->code, 'OW', $owner->name, $date, $date, 'WAS-' . (Auth::user() ? Auth::user()['name'] : 'SYSTEM')]);
         }
         return true;
     }
@@ -371,26 +388,26 @@ sql
 
     public function syncUpdate($owner)
     {
-        if (is_array($owner)){
+        if (is_array($owner)) {
             $owner = new Owner();
-            foreach ($owner as $column=>$value){
+            foreach ($owner as $column => $value) {
                 $owner[$column] = $value;
             }
         }
-        if (is_numeric($owner)){
+        if (is_numeric($owner)) {
             $owner = Owner::query()->find($owner);
-            if (!$owner)return false;
+            if (!$owner) return false;
         }
         $sql = DB::raw(<<<sql
     update BAS_CUSTOMER set ACTIVE_FLAG = ?,EDITTIME = TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'),EDITWHO = ? where CUSTOMERID = ? and CUSTOMER_TYPE = ?
 sql
         );
         $date = date('Y-m-d H:i:s');
-        if ($owner && $owner->deleted_at){
-            DB::connection("oracle")->update($sql,['N',$date,'WAS-'.(Auth::user() ? Auth::user()['name'] : 'SYSTEM'),$owner->code,'OW']);
+        if ($owner && $owner->deleted_at) {
+            DB::connection("oracle")->update($sql, ['N', $date, 'WAS-' . (Auth::user() ? Auth::user()['name'] : 'SYSTEM'), $owner->code, 'OW']);
         }
-       if ($owner && $owner->deleted_at==null) {
-            DB::connection("oracle")->update($sql,['Y',$date,'WAS-'.(Auth::user() ? Auth::user()['name'] : 'SYSTEM'),$owner->code,'OW']);
+        if ($owner && $owner->deleted_at == null) {
+            DB::connection("oracle")->update($sql, ['Y', $date, 'WAS-' . (Auth::user() ? Auth::user()['name'] : 'SYSTEM'), $owner->code, 'OW']);
         }
         return true;
     }
@@ -416,11 +433,11 @@ sql
      */
     public function deleteAuthority($owner)
     {
-        $authorities = Authority::query()->where('name',"_{$owner['id']}")
-            ->where("alias_name","like","(货主%")
+        $authorities = Authority::query()->where('name', "_{$owner['id']}")
+            ->where("alias_name", "like", "(货主%")
             ->get(["id"]);
-        $ids = array_column($authorities->toArray(),"id");
-        DB::table("authority_role")->whereIn("id_authority",$ids)->delete();
+        $ids = array_column($authorities->toArray(), "id");
+        DB::table("authority_role")->whereIn("id_authority", $ids)->delete();
         Authority::destroy($ids);
     }
 
@@ -439,41 +456,41 @@ LEFT JOIN owner_storage_price_model_owner b ON a.id =  b.owner_storage_price_mod
 LEFT JOIN owners c ON b.owner_id = c.id
 WHERE (a.operation IS NULL OR a.operation = '') AND c.id = ? LIMIT 1
 sql;
-        if (DB::selectOne(DB::raw($sql),[$ownerId]))$relevance[] = 0;
+        if (DB::selectOne(DB::raw($sql), [$ownerId])) $relevance[] = 0;
         $sql = <<<sql
 SELECT 1 FROM owner_price_operations a
 LEFT JOIN owner_price_operation_owner b ON a.id =  b.owner_price_operation_id
 LEFT JOIN owners c ON b.owner_id = c.id
 WHERE (a.operation IS NULL OR a.operation = '') AND c.id = ? LIMIT 1
 sql;
-        if (DB::selectOne(DB::raw($sql),[$ownerId]))$relevance[] = 1;
+        if (DB::selectOne(DB::raw($sql), [$ownerId])) $relevance[] = 1;
         $sql = <<<sql
 SELECT 1 FROM owner_price_expresses a
 LEFT JOIN owner_price_express_owner b ON a.id =  b.owner_price_express_id
 LEFT JOIN owners c ON b.owner_id = c.id
 WHERE (a.operation IS NULL OR a.operation = '') AND c.id = ? LIMIT 1
 sql;
-        if (DB::selectOne(DB::raw($sql),[$ownerId]))$relevance[] = 2;
+        if (DB::selectOne(DB::raw($sql), [$ownerId])) $relevance[] = 2;
         $sql = <<<sql
 SELECT 1 FROM owner_price_logistics a
 LEFT JOIN owner_price_logistic_owner b ON a.id =  b.owner_price_logistic_id
 LEFT JOIN owners c ON b.owner_id = c.id
 WHERE (a.operation IS NULL OR a.operation = '') AND c.id = ? LIMIT 1
 sql;
-        if (DB::selectOne(DB::raw($sql),[$ownerId]))$relevance[] = 3;
+        if (DB::selectOne(DB::raw($sql), [$ownerId])) $relevance[] = 3;
         $sql = <<<sql
 SELECT 1 FROM owner_price_direct_logistics a
 LEFT JOIN owner_price_direct_logistic_owner b ON a.id =  b.owner_price_direct_logistic_id
 LEFT JOIN owners c ON b.owner_id = c.id
 WHERE (a.operation IS NULL OR a.operation = '') AND c.id = ? LIMIT 1
 sql;
-        if (DB::selectOne(DB::raw($sql),[$ownerId]))$relevance[] = 4;
+        if (DB::selectOne(DB::raw($sql), [$ownerId])) $relevance[] = 4;
         $sql = <<<sql
 SELECT 1 FROM owner_price_systems a LEFT JOIN owners b ON a.owner_id = b.id
 WHERE b.id = ? LIMIT 1
 sql;
-        if (DB::selectOne(DB::raw($sql),[$ownerId]))$relevance[] = 5;
-        Owner::query()->where("id",$ownerId)->update(["relevance"=>$relevance]);
+        if (DB::selectOne(DB::raw($sql), [$ownerId])) $relevance[] = 5;
+        Owner::query()->where("id", $ownerId)->update(["relevance" => $relevance]);
     }
 
     /**
@@ -483,23 +500,23 @@ sql;
      */
     public function attachTaxRate(Owner $owner)
     {
-        OwnerStoragePriceModel::query()->whereHas("owners",function (Builder $query)use($owner){
-            $query->where("id",$owner->id);
-        })->whereNull("tax_rate_id")->update(["tax_rate_id"=>$owner->tax_rate_id]);
-        OwnerPriceOperation::query()->whereHas("owners",function (Builder $query)use($owner){
-            $query->where("id",$owner->id);
-        })->whereNull("tax_rate_id")->update(["tax_rate_id"=>$owner->tax_rate_id]);
-        OwnerPriceExpress::query()->whereHas("owners",function (Builder $query)use($owner){
-            $query->where("id",$owner->id);
-        })->whereNull("tax_rate_id")->update(["tax_rate_id"=>$owner->tax_rate_id]);
-        OwnerPriceLogistic::query()->whereHas("owners",function (Builder $query)use($owner){
-            $query->where("id",$owner->id);
-        })->whereNull("tax_rate_id")->update(["tax_rate_id"=>$owner->tax_rate_id]);
-        OwnerPriceDirectLogistic::query()->whereHas("owners",function (Builder $query)use($owner){
-            $query->where("id",$owner->id);
-        })->whereNull("tax_rate_id")->update(["tax_rate_id"=>$owner->tax_rate_id]);
-        OwnerPriceSystem::query()->where("owner_id",$owner->id)->whereNull("tax_rate_id")
-            ->update(["tax_rate_id"=>$owner->tax_rate_id]);
+        OwnerStoragePriceModel::query()->whereHas("owners", function (Builder $query) use ($owner) {
+            $query->where("id", $owner->id);
+        })->whereNull("tax_rate_id")->update(["tax_rate_id" => $owner->tax_rate_id]);
+        OwnerPriceOperation::query()->whereHas("owners", function (Builder $query) use ($owner) {
+            $query->where("id", $owner->id);
+        })->whereNull("tax_rate_id")->update(["tax_rate_id" => $owner->tax_rate_id]);
+        OwnerPriceExpress::query()->whereHas("owners", function (Builder $query) use ($owner) {
+            $query->where("id", $owner->id);
+        })->whereNull("tax_rate_id")->update(["tax_rate_id" => $owner->tax_rate_id]);
+        OwnerPriceLogistic::query()->whereHas("owners", function (Builder $query) use ($owner) {
+            $query->where("id", $owner->id);
+        })->whereNull("tax_rate_id")->update(["tax_rate_id" => $owner->tax_rate_id]);
+        OwnerPriceDirectLogistic::query()->whereHas("owners", function (Builder $query) use ($owner) {
+            $query->where("id", $owner->id);
+        })->whereNull("tax_rate_id")->update(["tax_rate_id" => $owner->tax_rate_id]);
+        OwnerPriceSystem::query()->where("owner_id", $owner->id)->whereNull("tax_rate_id")
+            ->update(["tax_rate_id" => $owner->tax_rate_id]);
     }
 
     /**
@@ -509,23 +526,23 @@ sql;
      */
     public function removeTaxRate(Owner $owner)
     {
-        OwnerStoragePriceModel::query()->whereHas("owners",function (Builder $query)use($owner){
-            $query->where("id",$owner->id);
-        })->update(["tax_rate_id"=>null]);
-        OwnerPriceOperation::query()->whereHas("owners",function (Builder $query)use($owner){
-            $query->where("id",$owner->id);
-        })->update(["tax_rate_id"=>null]);
-        OwnerPriceExpress::query()->whereHas("owners",function (Builder $query)use($owner){
-            $query->where("id",$owner->id);
-        })->update(["tax_rate_id"=>null]);
-        OwnerPriceLogistic::query()->whereHas("owners",function (Builder $query)use($owner){
-            $query->where("id",$owner->id);
-        })->update(["tax_rate_id"=>null]);
-        OwnerPriceDirectLogistic::query()->whereHas("owners",function (Builder $query)use($owner){
-            $query->where("id",$owner->id);
-        })->update(["tax_rate_id"=>null]);
-        OwnerPriceSystem::query()->where("owner_id",$owner->id)
-            ->update(["tax_rate_id"=>null]);
+        OwnerStoragePriceModel::query()->whereHas("owners", function (Builder $query) use ($owner) {
+            $query->where("id", $owner->id);
+        })->update(["tax_rate_id" => null]);
+        OwnerPriceOperation::query()->whereHas("owners", function (Builder $query) use ($owner) {
+            $query->where("id", $owner->id);
+        })->update(["tax_rate_id" => null]);
+        OwnerPriceExpress::query()->whereHas("owners", function (Builder $query) use ($owner) {
+            $query->where("id", $owner->id);
+        })->update(["tax_rate_id" => null]);
+        OwnerPriceLogistic::query()->whereHas("owners", function (Builder $query) use ($owner) {
+            $query->where("id", $owner->id);
+        })->update(["tax_rate_id" => null]);
+        OwnerPriceDirectLogistic::query()->whereHas("owners", function (Builder $query) use ($owner) {
+            $query->where("id", $owner->id);
+        })->update(["tax_rate_id" => null]);
+        OwnerPriceSystem::query()->where("owner_id", $owner->id)
+            ->update(["tax_rate_id" => null]);
     }
 
     /**
@@ -537,63 +554,66 @@ sql;
      *
      * @return float|null
      */
-    public function getTaxRateFee(Model $model, int $ownerId, ?float $money = null):?float
+    public function getTaxRateFee(Model $model, int $ownerId, ?float $money = null): ?float
     {
         $taxRate = null;
-        if ($model->tax_rate_id){
+        if ($model->tax_rate_id) {
             $model->loadMissing("taxRate");
             $taxRate = $model->taxRate;
         }
-        if (!$taxRate){
+        if (!$taxRate) {
             /** @var Model|\stdClass $owner */
             $owner = new Owner();
             $owner->id = $ownerId;
             $owner->load("taxRate");
             $taxRate = $owner->taxRate;
         }
-        if (!$taxRate)return null;
-        if ($money===null)return $taxRate->value;
-        return $money*($taxRate->value/100);
+        if (!$taxRate) return null;
+        if ($money === null) return $taxRate->value;
+        return $money * ($taxRate->value / 100);
     }
 
-    public function changeManualBackStatus($id,$isManual)
+    public function changeManualBackStatus($id, $isManual)
     {
-        $owner=Owner::query()->find($id);
-        if ($isManual==0)$owner->update(['is_manual_back'=>1]);
-        else $owner->update(['is_manual_back'=>0]);
+        $owner = Owner::query()->find($id);
+        if ($isManual == 0) $owner->update(['is_manual_back' => 1]);
+        else $owner->update(['is_manual_back' => 0]);
         return $owner;
     }
-    public function changeIntervalTime($id,$intervalTime)
+
+    public function changeIntervalTime($id, $intervalTime)
     {
-        $owner=Owner::query()->find($id);
-        $owner->update(['interval_time'=>$intervalTime]);
+        $owner = Owner::query()->find($id);
+        $owner->update(['interval_time' => $intervalTime]);
         return $owner;
     }
 
     function getIdArr(?int $userId = null): array
     {
-        if (!$userId)$userId = Auth::id();
-        return $this->cacheService->getOrExecute("USER.{$userId}.OWNER.ID",function()use($userId){
-            return array_column($this->getQuery($userId)->get()->toArray(),"id");
+        if (!$userId) $userId = Auth::id();
+        return $this->cacheService->getOrExecute("USER.{$userId}.OWNER.ID", function () use ($userId) {
+            return array_column($this->getQuery($userId)->get()->toArray(), "id");
         });
     }
+
     function getCodeArr(?int $userId): array
     {
         $column = "code";
-        if (!$userId)$userId = Auth::id();
-        return $this->cacheService->getOrExecute("USER.{$userId}.OWNER.CODE",function()use($userId, $column){
-            return array_column($this->getQuery($userId, $column)->get()->toArray(),$column);
+        if (!$userId) $userId = Auth::id();
+        return $this->cacheService->getOrExecute("USER.{$userId}.OWNER.CODE", function () use ($userId, $column) {
+            return array_column($this->getQuery($userId, $column)->get()->toArray(), $column);
         });
     }
+
     function getQuery(?int $userId = null, $column = "id"): Builder
     {
-        if (!$userId)$userId = Auth::id();
-        $query = Owner::query()->select("owners.".$column);
-        if (!app("UserService")->checkAdminIdentity($userId) && !app("AuthorityService")->checkAllOwner($userId)){
+        if (!$userId) $userId = Auth::id();
+        $query = Owner::query()->select("owners." . $column);
+        if (!app("UserService")->checkAdminIdentity($userId) && !app("AuthorityService")->checkAllOwner($userId)) {
             //$query->whereHas("roles",function ($query)use($userId){
-                $query->whereHas("users",function ($query)use($userId){
-                    $query->where("users.id",$userId);
-                });
+            $query->whereHas("users", function ($query) use ($userId) {
+                $query->where("users.id", $userId);
+            });
             //});
         }
         return $query->whereNull("deleted_at");
@@ -601,33 +621,38 @@ sql;
 
     public function combineOwners($owners)
     {
-        foreach ($owners as $owner){
-            $departmentObligationOwner=$owner->departmentObligationOwner??false;
-            if (!$departmentObligationOwner)continue;
-            foreach ($departmentObligationOwner as $item){
-                if ($item->obligation_code=='kc'){
-                    $owner->kc=$item->department_id;$owner->kcGroup=$item->department?$item->department->name:'';
+        foreach ($owners as $owner) {
+            $departmentObligationOwner = $owner->departmentObligationOwner ?? false;
+            if (!$departmentObligationOwner) continue;
+            foreach ($departmentObligationOwner as $item) {
+                if ($item->obligation_code == 'kc') {
+                    $owner->kc = $item->department_id;
+                    $owner->kcGroup = $item->department ? $item->department->name : '';
                 }
-                if ($item->obligation_code=='jg'){
-                    $owner->jg=$item->department_id;$owner->jgGroup=$item->department?$item->department->name:'';
+                if ($item->obligation_code == 'jg') {
+                    $owner->jg = $item->department_id;
+                    $owner->jgGroup = $item->department ? $item->department->name : '';
                 }
-                if ($item->obligation_code=='th'){
-                    $owner->th=$item->department_id;$owner->thGroup=$item->department?$item->department->name:'';
+                if ($item->obligation_code == 'th') {
+                    $owner->th = $item->department_id;
+                    $owner->thGroup = $item->department ? $item->department->name : '';
                 }
-                if ($item->obligation_code=='sh'){
-                    $owner->sh=$item->department_id;$owner->shGroup=$item->department?$item->department->name:'';
+                if ($item->obligation_code == 'sh') {
+                    $owner->sh = $item->department_id;
+                    $owner->shGroup = $item->department ? $item->department->name : '';
                 }
-                if ($item->obligation_code=='fh'){
-                    $owner->fh=$item->department_id;$owner->fhGroup=$item->department?$item->department->name:'';
+                if ($item->obligation_code == 'fh') {
+                    $owner->fh = $item->department_id;
+                    $owner->fhGroup = $item->department ? $item->department->name : '';
                 }
             }
         }
         return $owners;
     }
 
-    public function getOwnerGroupUnderOwner($ids):array
+    public function getOwnerGroupUnderOwner($ids): array
     {
-        return Owner::query()->select("id")->whereIn("user_owner_group_id",$ids)
+        return Owner::query()->select("id")->whereIn("user_owner_group_id", $ids)
             ->pluck("id")->toArray();
     }
 }

+ 7 - 0
config/api.php

@@ -94,4 +94,11 @@ return [
     "timeliness_limits" => [
         'token' => 604800,
     ],
+    'java'=>[
+        'wms'=>[
+            'rejectedPushTask'=>[
+                'receivePush'=>env('WMS_REJECTED_PUSH_TASK', '10,1'),
+            ]
+        ]
+    ]
 ];

+ 17 - 15
resources/views/order/workOrder/index.blade.php

@@ -827,24 +827,24 @@
                     },
                         @endcan
                     {
-                        name: 'logistic_number', type: 'input', placeholder: '快递单号'
+                        name: 'order_issue_type',
+                        type: 'select_multiple_select',
+                        tip: ['输入关键词快速定位下拉列表,回车确定', '选择要显示的问题件类型'],
+                        placeholder: ['问题件类型', '定位或多选问题件类型'],
+                        data: this.orderIssueTypes
                     },
                     {
-                        name: 'is_issue_order',
-                        type: 'select',
-                        placeholder: '问题件',
-                        data: [{name: 'true', value: '有'}, {name: 'false', value: '无'}]
+                        name: 'user_work_group_id', type: 'select_multiple_select',
+                        tip: ['输入关键词快速定位下拉列表,回车确定', '选择要显示的仓库责任方'],
+                        placeholder: ['仓库责任方', '定位或多选仓库责任方'], data: this.userWorkgroup
                     },
+
                     {name: 'creator', type: 'input', placeholder: '创建人'},
                 ], [
                     {name: 'review_at_start', type: 'time', tip: ['终审开始日期', '时间']},
                     {name: 'review_at_end', type: 'time', tip: ['终审结束日期', '时间']},
                     {
-                        name: 'order_issue_type',
-                        type: 'select_multiple_select',
-                        tip: ['输入关键词快速定位下拉列表,回车确定', '选择要显示的问题件类型'],
-                        placeholder: ['问题件类型', '定位或多选问题件类型'],
-                        data: this.orderIssueTypes
+                        name: 'logistic_number', type: 'input', placeholder: '快递单号'
                     },
                     {name: 'client_code', type: 'input', placeholder: '客户订单号'},
                     {
@@ -905,13 +905,15 @@
                         placeholder: '宝时快递减免',
                         data: this.workOrderRemissionType
                     },
-                    {
-                        name: 'user_work_group_id', type: 'select_multiple_select',
-                        tip: ['输入关键词快速定位下拉列表,回车确定', '选择要显示的仓库责任方'],
-                        placeholder: ['仓库责任方', '定位或多选仓库责任方'], data: this.userWorkgroup
-                    },
+
                     {name: 'user_owner_group_id', type: 'select', placeholder: '项目责任方', data: this.userOwnerGroup},
                     {name: 'rejecting_status', type: 'select', placeholder: '退回状态', data: this.rejectingStatus},
+                    {
+                        name: 'is_issue_order',
+                        type: 'select',
+                        placeholder: '问题件',
+                        data: [{name: 'true', value: '有'}, {name: 'false', value: '无'}]
+                    },
                 ], [
                     {name: 'order_issue_log', type: 'input', placeholder: '问题件处理日志'},
                     {

+ 508 - 0
resources/views/rejected/rejectedPushTask/index.blade.php

@@ -0,0 +1,508 @@
+@extends('layouts.app')
+@section('title')推单任务助手-新建任务@endsection
+@section('content')
+    <div class="d-none" id="list">
+        <!--查询            -->
+        <div class="row m-3" style="background-color: #fff;">
+            <div class="form-group ml-4 mt-3" data-toggle="tooltip" data-placement="top" title="选择全部">
+                <input @change="checkAllBtn()" v-model="checkAll" type="checkbox" class="form-check-input"
+                       id="checkAll">
+                <label class="form-check-label" for="checkAll">选择全部</label>
+            </div>
+            <div class="form-group m-2">
+                <select class="form-control selectpicker" title="分页大小" v-model="size">
+                    <option value="50">50</option>
+                    <option value="100">100</option>
+                    <option value="200">200</option>
+                    <option value="500">500</option>
+                    <option value="1000">1000</option>
+                </select>
+            </div>
+
+            <div class="form-group m-2">
+                <select class="form-control selectpicker" title="货主" v-model="search.ownerId">
+                    <option v-for="item of selectData.owners" :value="item.id">@{{ item.name }}</option>
+                </select>
+            </div>
+
+            <div class="form-group m-2">
+                <select class="form-control selectpicker" title="类型" v-model="search.type">
+                    <option value="正品">正品</option>
+                    <option value="次品">次品</option>
+                </select>
+            </div>
+
+            <div class="form-group m-2">
+                <select class="form-control selectpicker" title="类型" v-model="search.status">
+                    <option selected value="创建">创建</option>
+                    <option value="等待下载">等待下载</option>
+                    <option value="已下载">已下载</option>
+                    <option value="部分推单">部分推单</option>
+                    <option value="已推单">已推单</option>
+                    <option value="部分入库">部分入库</option>
+                    <option value="已入库">已入库</option>
+                </select>
+            </div>
+
+            <div class="form-group m-2">
+                <button class="form-control btn btn-sm btn-info" @click="searchData()">查询</button>
+            </div>
+            <div class="form-group m-2">
+                <button class="form-control btn btn-sm btn-info" @click="stopStoreUp()">批量停止攒单</button>
+            </div>
+        </div>
+        <!--            表格-->
+        <table class="table table-striped table-bordered table-hover card-body td-min-width-80" id="table">
+            <tr v-for="(item,i) in details.data" @click="selectTr===i+1?selectTr=0:selectTr=i+1"
+                :class="selectTr===i+1?'focusing' : ''">
+                <td>
+                    <input class="checkItem" type="checkbox" v-model="item.checked">
+                    <span>@{{ i+1 }}</span>
+                </td>
+                <td class="td-warm text-muted"><span>@{{ item.id }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.type }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.status }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.asnNos }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.ownerName }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.storeUpHour }}</span></td>
+                <td class="td-warm text-muted">
+                    <span>
+                        @{{ item.orderAmount }}
+                          <button @click="showPackageDetail(item.id)" type="button"
+                                  class="btn btn-sm btn-primary" data-toggle="modal"
+                                  data-target="#staticBackdropShowPackageDetail">查看明细</button>
+                    </span>
+                </td>
+                <td class="td-warm text-muted">
+                    <span>
+                        @{{ item.commodityAmount }}
+                        <button @click="showCommodityDetail(item.id)" type="button"
+                                class="btn btn-sm btn-primary" data-toggle="modal"
+                                data-target="#staticBackdropShowCommodityDetail">查看明细</button>
+                    </span>
+                </td>
+                <td class="td-warm text-muted"><span>
+                         <button v-if="item.status == '创建'&&item.orderAmount>0&&item.commodityAmount>0"
+                                 @click="stopStoreUp(item.id)" type="button"
+                                 class="btn btn-success">停止攒单
+                         </button>
+                           <button v-if="item.status != '创建'"
+                                   @click="downExcel(item.id)" type="button"
+                                   class="btn btn-success">导出EXCEL
+                         </button>
+                    </span></td>
+            </tr>
+        </table>
+
+        <nav aria-label="...">
+            <ul class="pagination">
+                <li class="page-item" :class="current===1?'disabled':''">
+                    <button class="page-link" @click="pagination('pre')">上一页</button>
+                </li>
+                <li class="page-item" :class="current===details.pages?'disabled':''">
+                    <button class="page-link" @click="pagination('next')">下一页</button>
+                </li>
+            </ul>
+        </nav>
+
+        <!-- Modal -->
+        <div class="modal fade" id="staticBackdropShowPackageDetail" tabindex="-1" aria-labelledby="staticBackdropLabel"
+             aria-hidden="true">
+            <div class="modal-dialog " style="max-width: 100% !important;">
+                <div class="modal-content ">
+                    <div class="modal-header ">
+                        <h5 class="modal-title" id="staticBackdropLabel">明细</h5>
+                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                            <span aria-hidden="true">&times;</span>
+                        </button>
+                    </div>
+                    <div class="modal-body ">
+                        <!-- Scrollable modal -->
+                        <div class="modal-dialog  modal-dialog-scrollable" style="max-width: 100% !important;">
+                            <table class="table table-sm"
+                                   style="background: #fff;" id="tablePackage">
+                                <tr v-for="(item,i) in resData.packageDetail.data" :key="i">
+                                    <td class="td-warm text-muted"><span>@{{ i+1 }}</span></td>
+                                    <td class="td-warm text-muted"><span>@{{ item.rejectedPushTaskHeaderId }}</span>
+                                    </td>
+                                    <td class="td-warm text-muted"><span>@{{ item.createdAt }}</span></td>
+                                    <td class="td-warm text-muted"><span>@{{ item.checkedNumbers }}</span></td>
+                                    <td class="td-warm text-muted"><span>@{{ item.ownerName }}</span></td>
+                                    <td class="td-warm text-muted"><span>@{{ item.orderNumber }}</span></td>
+                                    <td class="td-warm text-muted  text-truncate"
+                                        style="max-width: 60px;">
+                                        <span>@{{ item.sender }}</span>
+                                    </td>
+                                    <td class="td-warm text-muted  text-truncate"
+                                        style="max-width: 150px;"><span>@{{ item.mobileSender }}</span></td>
+                                    <td class="td-warm text-muted"><span>@{{ item.logisticNumber }}</span></td>
+                                    <td class="td-warm text-muted"><span>@{{ item.logisticNumberReturn }}</span></td>
+                                    <td class="td-warm text-muted"><span>@{{ item.logisticName }}</span></td>
+                                    <td class="td-warm text-muted"><span>@{{ item.feeCollected }}</span></td>
+                                    <td class="td-warm text-muted"><span>@{{ item.loadedStatus }}</span></td>
+                                    <td class="td-warm text-muted"><span>@{{ item.barcodeGoods }}</span></td>
+                                    <td class="td-warm text-muted"><span>@{{ item.nameGoods }}</span></td>
+                                    <td class="td-warm text-muted"><span>@{{ item.amount }}</span></td>
+                                    <td class="td-warm text-muted"><span>@{{ item.idQualityLabel }}</span></td>
+                                    <td class="td-warm text-muted"><span>@{{ item.remark }}</span></td>
+                                    <td class="td-warm text-muted"><span>@{{ item.orderRemark }}</span></td>
+                                </tr>
+                            </table>
+                        </div>
+
+                        <nav aria-label="...">
+                            <ul class="pagination">
+                                <li class="page-item" :class="resData.packageDetail.current===1?'disabled':''">
+                                    <button class="page-link" @click="packagePagination('pre')">上一页</button>
+                                </li>
+                                <li class="page-item"
+                                    :class="resData.packageDetail.current===resData.packageDetail.pages?'disabled':''">
+                                    <button class="page-link" @click="packagePagination('next')">下一页</button>
+                                </li>
+                            </ul>
+                        </nav>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="modal fade" id="staticBackdropShowCommodityDetail" tabindex="-1"
+             aria-labelledby="staticBackdropLabel"
+             aria-hidden="true">
+            <div class="modal-dialog " style="max-width: 70% !important;">
+                <div class="modal-content ">
+                    <div class="modal-header ">
+                        <h5 class="modal-title" id="staticBackdropLabel">明细</h5>
+                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                            <span aria-hidden="true">&times;</span>
+                        </button>
+                    </div>
+                    <div class="modal-body ">
+                        <!-- Scrollable modal -->
+                        <div class="modal-dialog  modal-dialog-scrollable">
+                            <table class="table table-sm"
+                                   style="background: #fff;" id="tableCommodity">
+                                <tr v-for="(item,i) in resData.commodityDetail.data" :key="i">
+                                    <td class="td-warm text-muted"><span>@{{ i+1 }}</span></td>
+                                    <td class="td-warm text-muted"><span>@{{ item.rejectedPushTaskHeaderId }}</span>
+                                    </td>
+                                    <td class="td-warm text-muted"><span>@{{ item.sku }}</span></td>
+                                    <td class="td-warm text-muted"><span>@{{ item.nameGoods }}</span></td>
+                                    <td class="td-warm text-muted"><span>@{{ item.amount }}</span></td>
+                                    <td class="td-warm text-muted"><span>@{{ item.idQualityLabel }}</span></td>
+                                </tr>
+                            </table>
+                        </div>
+                        <nav aria-label="...">
+                            <ul class="pagination">
+                                <li class="page-item" :class="resData.commodityDetail.current===1?'disabled':''">
+                                    <button class="page-link" @click="commodityPagination('pre')">上一页</button>
+                                </li>
+                                <li class="page-item"
+                                    :class="resData.commodityDetail.current===resData.commodityDetail.pages?'disabled':''">
+                                    <button class="page-link" @click="commodityPagination('next')">下一页</button>
+                                </li>
+                            </ul>
+                        </nav>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+
+
+@endsection
+
+@section('lastScript')
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>{{--新版2--}}
+    <script>
+        let vue = new Vue({
+            el: "#list",
+            data: {
+                resData: {
+                    packageDetail: {
+                        data: [],
+                        total: null,
+                        current: 1,
+                        pages: null,
+                        size: 50,
+                    },
+                    commodityDetail: {
+                        data: [],
+                        total: null,
+                        current: 1,
+                        pages: null,
+                        size: 50,
+                    }
+
+                },
+                submitData: {
+                    type: null,
+                    warehouseId: null,
+                    allowMixed: null,
+                    volume: null,
+                    loadWeight: null,
+                    createAmount: null,
+                },
+                selectData: {
+                    owners: {!! $owners !!}
+                },
+                checkAll: false,
+                selectTr: 0,
+                details: {
+                    data: [],
+                    total: null,
+                    current: 1,
+                    pages: null,
+                    size: 50,
+                },
+                search: {
+                    ownerId: null,
+                    type: null,
+                    status: '创建',
+                    ownerIdList: {!! $ownerIds !!}
+                },
+                size: 50,
+                current: 1,
+            },
+            created() {
+                let url = this.getBaseUrl() + `/api/wms/rejectedPushTask/list?size=${this.size}&current=${this.current}`;
+                this.getPageResult(url);
+            },
+            mounted: function () {
+                $('#list').removeClass('d-none');
+                $(".up").slideUp();
+                let column = [
+                    {name: 'row_num', value: '序号'},
+                    {name: 'id', value: '推单任务编号'},
+                    {name: 'type', value: '任务类型'},
+                    {name: 'status', value: '状态'},
+                    {name: 'asnNos', value: 'ASN单号'},
+                    {name: 'ownerName', value: '货主'},
+                    {name: 'storeUpHour', value: '积攒时间'},
+                    {name: 'orderAmount', value: '订单数'},
+                    {name: 'commodityAmount', value: '商品数'},
+                    {name: 'action', value: '操作'},
+                ];
+                new Header({
+                    el: "table",
+                    name: "details",
+                    column: column,
+                    data: this.details.data,
+                    restorationColumn: 'addtime',
+                    isCheckAllBox: false,
+                    fixedTop: ($('#form_div').height()) + ($('#btn').height()) + 1,
+                }).init();
+
+                let columnPackage = [
+                    {name: 'id', value: '序号'},
+                    {name: 'rejectedPushTaskHeaderId', value: '推单任务号'},
+                    {name: 'createdAt', value: '日期'},
+                    {name: 'checkedNumbers', value: '审核号'},
+                    {name: 'ownerName', value: '客户名称'},
+                    {name: 'orderNumber', value: '订单号'},
+                    {name: 'sender', value: '姓名'},
+                    {name: 'mobileSender', value: '手机'},
+                    {name: 'logisticNumber', value: '原单单号'},
+                    {name: 'logisticNumberReturn', value: '退回单号'},
+                    {name: 'logisticName', value: '退回公司'},
+                    {name: 'feeCollected', value: '到付费用'},
+                    {name: 'loadedStatus', value: '是否入库'},
+                    {name: 'barcodeGoods', value: '商品条码'},
+                    {name: 'nameGoods', value: '商品名称'},
+                    {name: 'amount', value: '商品数量'},
+                    {name: 'idQualityLabel', value: '质量状态'},
+                    {name: 'remark', value: '备注'},
+                    {name: 'orderRemark', value: '退单备注'},
+                ];
+                new Header({
+                    el: "tablePackage",
+                    name: "details",
+                    column: columnPackage,
+                    data: this.resData.packageDetail.data,
+                    restorationColumn: 'addtime',
+                    isCheckAllBox: false,
+
+                    fixedTop: ($('#form_div').height()) + ($('#btn').height()) + 1,
+                }).init();
+
+                let columnCommodity = [
+                    {name: 'id', value: '序号'},
+                    {name: 'rejectedPushTaskHeaderId', value: '推单任务号'},
+                    {name: 'sku', value: 'SKU'},
+                    {name: 'nameGoods', value: '商品名称'},
+                    {name: 'amount', value: '商品数量'},
+                    {name: 'idQualityLabel', value: '质量状态'},
+                ];
+                new Header({
+                    el: "tableCommodity",
+                    name: "details",
+                    column: columnCommodity,
+                    data: this.resData.commodityDetail.data,
+                    restorationColumn: 'addtime',
+                    isCheckAllBox: false,
+                    fixedTop: ($('#form_div').height()) + ($('#btn').height()) + 1,
+                }).init();
+            },
+            methods: {
+                packagePagination(flag) {
+                    console.log(flag);
+                    if (flag === 'pre' && this.resData.packageDetail.current > 1) {
+                        this.resData.packageDetail.current--;
+                    } else if (flag === 'next' && this.resData.packageDetail.current < this.resData.packageDetail.pages) {
+                        this.resData.packageDetail.current++;
+                    }
+                    this.showPackageDetail(this.resData.packageDetail.data[0].rejectedPushTaskHeaderId);
+                },
+                commodityPagination(flag) {
+                    console.log(flag);
+                    if (flag === 'pre' && this.resData.commodityDetail.current > 1) {
+                        this.resData.commodityDetail.current--;
+                    } else if (flag === 'next' && this.resData.commodityDetail.current < this.resData.commodityDetail.pages) {
+                        this.resData.commodityDetail.current++;
+                    }
+                    this.showCommodityDetail(this.resData.commodityDetail.data[0].rejectedPushTaskHeaderId);
+                },
+                showCommodityDetail(id) {
+                    let url = this.getBaseUrl() + `/api/wms/rejectedPushTask/commodity/list?size=${this.resData.commodityDetail.size}&current=${this.resData.commodityDetail.current}&rejectedPushTaskId=${id}`
+                    tempTip.showSuccess('开始查询,请稍后!');
+                    axios.get(url).then(res => {
+                        tempTip.showSuccess('查询成功!');
+                        if (res.data.code !== 200) {
+                            tempTip.show('接口异常!');
+                            this.resData.commodityDetail.data = [];
+                            this.resData.commodityDetail.total = 0
+                            this.resData.commodityDetail.current = 1
+                            this.resData.commodityDetail.pages = 0
+                            this.resData.commodityDetail.size = 50;
+                        } else {
+                            this.resData.commodityDetail.data = res.data.data.list;
+                            this.resData.commodityDetail.total = res.data.data.page.total;
+                            this.resData.commodityDetail.current = res.data.data.page.pageNum;
+                            this.resData.commodityDetail.pages = res.data.data.page.pages
+                            this.resData.commodityDetail.size = res.data.data.page.pageSize;
+                        }
+                    });
+                },
+                showPackageDetail(id) {
+                    let url = this.getBaseUrl() + `/api/wms/rejectedPushTask/package/list?size=${this.resData.packageDetail.size}&current=${this.resData.packageDetail.current}&rejectedPushTaskId=${id}`
+                    tempTip.showSuccess('开始查询,请稍后!');
+                    axios.get(url).then(res => {
+                        tempTip.showSuccess('查询成功!');
+                        if (res.data.code !== 200) {
+                            tempTip.show('接口异常!');
+                            this.resData.packageDetail.data = [];
+                            this.resData.packageDetail.total = 0
+                            this.resData.packageDetail.current = 1
+                            this.resData.packageDetail.pages = 0
+                            this.resData.packageDetail.size = 50;
+                        } else {
+                            this.resData.packageDetail.data = res.data.data.list;
+                            this.resData.packageDetail.total = res.data.data.page.total;
+                            this.resData.packageDetail.current = res.data.data.page.pageNum;
+                            this.resData.packageDetail.pages = res.data.data.page.pages
+                            this.resData.packageDetail.size = res.data.data.page.pageSize;
+                        }
+                    });
+                },
+                checkAllBtn() {
+                    for (let item of this.details.data) {
+                        item.checked = this.checkAll;
+                    }
+                },
+                stopStoreUp(id = null) {
+                    let idList = null
+                    let url = this.getBaseUrl() + `/api/wms/rejectedPushTask/stopStoreUp/`;
+
+                    if (id == null) {
+                        let filter = this.details.data.filter(i => i.checked === true);
+                        if (filter.length === 0) {
+                            tempTip.show("选中的元素为空");
+                            return;
+                        }
+                        idList = filter.map(i => i.id);
+                    } else {
+                        idList = [id];
+                    }
+                    axios.post(url, {idList}).then(res => {
+                        if (res.data.code !== 200) {
+                            tempTip.show(res.data.message);
+                        } else {
+                            tempTip.showSuccess('修改状态成功!');
+                            this.searchData();
+                        }
+                    });
+                },
+                getPageResult(url) {
+                    tempTip.showSuccess('开始查询,请稍后!');
+                    axios.post(url, this.getSearch()).then(res => {
+                        if (res.data.code !== 200) {
+                            tempTip.show('接口异常!');
+                            this.details.data = [];
+                            this.details.total = 0
+                            this.details.current = 1
+                            this.details.pages = 0
+                            this.details.size = 50;
+                        } else {
+                            tempTip.showSuccess('查询成功!');
+                            this.details.data = res.data.data.list;
+                            this.details.total = res.data.data.page.total;
+                            this.details.current = res.data.data.page.pageNum;
+                            this.details.pages = res.data.data.page.pages
+                            this.details.size = res.data.data.page.pageSize;
+                        }
+                    });
+                },
+                getSearch() {
+                    return Object.assign({}, this.search);
+                },
+                searchData() {
+                    this.current = 1;
+                    this.pagination();
+                },
+                //根据环境获取不同的url
+                getBaseUrl() {
+                    let url = null;
+                    let env = "{{ config('app.env') }}";
+                    if (env === 'local') {
+                        url = 'http://127.0.0.1:8118'
+                    } else if (env === 'production') {
+                        url = 'https://swms.baoshi56.com'
+                    }
+                    return url;
+                },
+                pagination(flag) {
+                    if (flag === 'pre' && this.current > 1) {
+                        this.current--;
+                    } else if (flag === 'next' && this.current < this.details.pages) {
+                        this.current++;
+                    }
+                    let url = this.getBaseUrl() + `/api/wms/rejectedPushTask/list?size=${this.size}&current=${this.current}`;
+                    this.getPageResult(url);
+                },
+
+                downExcel(id) {
+                    let url = this.getBaseUrl();
+                    url += `/api/wms/rejectedPushTask/export/create?rejectedPushTaskId=${id}`;
+                    axios.get(url).then(res => {
+                        if (res.data.code === 200) {
+                            let filename = res.data.data;
+                            let downUrl = this.getBaseUrl() + `/api/wms/rejectedPushTask/export/download?filename=${filename}`;
+                            let link = document.createElement('a');
+                            link.style.display = 'none';
+                            link.href = downUrl;
+                            link.download = `${filename}.xlsx`;
+                            document.body.appendChild(link);
+                            link.click();
+                            document.body.removeChild(link);
+                            tempTip.showSuccess('导出成功!');
+                        } else {
+                            tempTip.setDuration(3000);
+                            tempTip.show(res.data.data);
+                        }
+                    })
+                }
+            },
+
+        });
+    </script>
+@endsection