Explorar el Código

Merge branch 'master' of ssh://was.baoshi56.com:10022/var/git/bswas

zengjun hace 4 años
padre
commit
16c96968dc

+ 7 - 0
app/Http/Controllers/ReceivingDashboardController.php

@@ -19,6 +19,13 @@ class ReceivingDashboardController extends Controller
         $user=Auth::user()['name'];
         $user=Auth::user()['name'];
         return view('store.receivingDashboard.receivingTableList.index', compact('owners','user'));
         return view('store.receivingDashboard.receivingTableList.index', compact('owners','user'));
     }
     }
+    //待上架列表
+    public function stayPutawayList(Request $request)
+    {
+        $owners = $this->getOwners();
+        $workGroups = UserWorkgroup::query()->get();
+        return view('store.receivingDashboard.stayPutawayList', compact('owners','workGroups'));
+    }
 
 
     //时效进度
     //时效进度
     public function punctualityProgress(Request $request)
     public function punctualityProgress(Request $request)

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

@@ -17,6 +17,7 @@ use App\RejectedBill;
 use App\Role;
 use App\Role;
 use App\Services\common\BatchUpdateService;
 use App\Services\common\BatchUpdateService;
 use App\Services\DeliveryAppointmentService;
 use App\Services\DeliveryAppointmentService;
+use App\Services\ObligationService;
 use App\Services\OracleDocAsnHerderService;
 use App\Services\OracleDocAsnHerderService;
 use App\Services\OrderRejectedBillRelationService;
 use App\Services\OrderRejectedBillRelationService;
 use App\Services\OrderRejectingStatusService;
 use App\Services\OrderRejectingStatusService;
@@ -58,10 +59,6 @@ class TestController extends Controller
             dd("方法不存在");
             dd("方法不存在");
         }
         }
     }
     }
-    public function test(Request $request){
-        dd(RejectedBill::query()->orderByDesc('id')->whereIn('id_owner',
-            app("OwnerService")->getIdArr())->limit(20)->sql());
-    }
 
 
     public function test123()
     public function test123()
     {
     {

+ 2 - 2
app/Owner.php

@@ -65,9 +65,9 @@ class Owner extends Model
 
 
     /**
     /**
      * 退货管理里,客户审核的代码,是拼音+日期+计数,计数的后缀就是checking_count
      * 退货管理里,客户审核的代码,是拼音+日期+计数,计数的后缀就是checking_count
-     * @return mixed
+     *
      */
      */
-    public function getIncreasedCheckingCount(): mixed
+    public function getIncreasedCheckingCount()
     {
     {
         $this['checking_count']=$this['checking_count']+1;
         $this['checking_count']=$this['checking_count']+1;
         $this->update();
         $this->update();

+ 1 - 1
app/Services/AllInventoryService.php

@@ -15,7 +15,7 @@ class AllInventoryService
 
 
     protected $modelClass=AllInventory::class;
     protected $modelClass=AllInventory::class;
     public function getSql(array $params, $page=null, $paginate=null){
     public function getSql(array $params, $page=null, $paginate=null){
-        $ownerCodes=app("OwnerService")->getCodeArr();
+        $ownerCodes = app("OwnerService")->getCodeArr();
         $date_start=$params['date_start'] ?? null;
         $date_start=$params['date_start'] ?? null;
         $range = $params['range'] ?? null;
         $range = $params['range'] ?? null;
         if ($range)$date_start=date('Y-m-d',strtotime('-'.$range." day"));
         if ($range)$date_start=date('Y-m-d',strtotime('-'.$range." day"));

+ 7 - 4
app/Services/HandInStorageService.php

@@ -150,15 +150,18 @@ class HandInStorageService
 
 
             $skuInvs = [];    // 库位没有该商品
             $skuInvs = [];    // 库位没有该商品
             foreach ($invs as $inv) {
             foreach ($invs as $inv) {
+                if ($inv['customerid'] == $param['customerid'] && $inv['sku'] != $param['sku']) { //货主相同,sku不同的商品
+                    return true; //商品不同
+                }
                 if ($inv['customerid'] != $param['customerid'] && $inv['sku'] != $param['sku']) {  // 库位没有该商品
                 if ($inv['customerid'] != $param['customerid'] && $inv['sku'] != $param['sku']) {  // 库位没有该商品
                     $skuInvs[] = $inv;
                     $skuInvs[] = $inv;
                     continue;
                     continue;
                 }
                 }
                 if ($inv['oracleInvLotAtt']['lotatt01'] == $param['lotatt01']
                 if ($inv['oracleInvLotAtt']['lotatt01'] == $param['lotatt01']
-                && $inv['oracleInvLotAtt']['lotatt02'] == $param['lotatt02']
-                && $inv['oracleInvLotAtt']['lotatt04'] == $param['lotatt04']
-                && $inv['oracleInvLotAtt']['lotatt05'] == $param['lotatt05']
-                && $inv['oracleInvLotAtt']['lotatt08'] == $param['lotatt08']) return true; // 批次相同
+                    && $inv['oracleInvLotAtt']['lotatt02'] == $param['lotatt02']
+                    && $inv['oracleInvLotAtt']['lotatt04'] == $param['lotatt04']
+                    && $inv['oracleInvLotAtt']['lotatt05'] == $param['lotatt05']
+                    && $inv['oracleInvLotAtt']['lotatt08'] == $param['lotatt08']) return true; // 批次相同
                 return 3;   //库位:产品相同,不能混放批次
                 return 3;   //库位:产品相同,不能混放批次
             }
             }
             if (count($skuInvs) == count($invs)) return true;
             if (count($skuInvs) == count($invs)) return true;

+ 3 - 1
app/Services/ObligationService.php

@@ -159,7 +159,9 @@ class ObligationService
         if (!$ids || count($ids) == 0){
         if (!$ids || count($ids) == 0){
             return [];
             return [];
         }
         }
-        return DB::table("department_obligation_owner")->select("owner_id")->whereIn("department_id",$ids)
+        return DB::table("department_obligation_owner")->select("owner_id")
+            ->whereNull("failure_time")
+            ->whereIn("department_id",$ids)
             ->groupBy("owner_id")->pluck("owner_id")->toArray();
             ->groupBy("owner_id")->pluck("owner_id")->toArray();
     }
     }
 }
 }

+ 15 - 0
app/Services/OracleDocAsnHerderService.php

@@ -2,8 +2,10 @@
 
 
 namespace App\Services;
 namespace App\Services;
 
 
+use App\Jobs\RejectedPushJob;
 use App\OracleDOCASNHeader;
 use App\OracleDOCASNHeader;
 use App\Traits\ServiceAppAop;
 use App\Traits\ServiceAppAop;
+use Couchbase\DocIdSearchQuery;
 
 
 
 
 class OracleDocAsnHerderService
 class OracleDocAsnHerderService
@@ -59,4 +61,17 @@ class OracleDocAsnHerderService
             ->where('CustomerId', $customId)->count();
             ->where('CustomerId', $customId)->count();
     }
     }
 
 
+    public function rejectPush($asnHerders)
+    {
+        if (count($asnHerders)>0){
+            $collect=collect();
+            foreach ($asnHerders as $asnHerder){
+                if ($asnHerders->asntype=='THRK'&&$asnHerder->asnreference3){
+                    $collect->push(array($asnHerder->asnno,$asnHerder->asnreference3));
+                }
+            }
+            RejectedPushJob::dispatch($collect);
+        }
+    }
+
 }
 }

+ 8 - 6
app/Services/OwnerService.php

@@ -541,7 +541,7 @@ sql;
     /**
     /**
      * 获取税率 或 税费
      * 获取税率 或 税费
      *
      *
-     * @param Model|\stdClass $model
+     * @param Model $model
      * @param int $ownerId
      * @param int $ownerId
      * @param float|null $money
      * @param float|null $money
      *
      *
@@ -583,16 +583,20 @@ sql;
 
 
     function getIdArr(?int $userId = null): array
     function getIdArr(?int $userId = null): array
     {
     {
-        if (!$userId) $userId = Auth::id();
+        if (!$userId) {
+            $userId = Auth::id();
+        }
         return $this->cacheService->getOrExecute("USER.{$userId}.OWNER.ID", function () use ($userId) {
         return $this->cacheService->getOrExecute("USER.{$userId}.OWNER.ID", function () use ($userId) {
             return array_column($this->getQuery($userId)->get()->toArray(), "id");
             return array_column($this->getQuery($userId)->get()->toArray(), "id");
         });
         });
     }
     }
 
 
-    function getCodeArr(?int $userId): array
+    function getCodeArr(?int $userId = null): array
     {
     {
         $column = "code";
         $column = "code";
-        if (!$userId) $userId = Auth::id();
+        if (!$userId) {
+            $userId = Auth::id();
+        }
         return $this->cacheService->getOrExecute("USER.{$userId}.OWNER.CODE", function () use ($userId, $column) {
         return $this->cacheService->getOrExecute("USER.{$userId}.OWNER.CODE", function () use ($userId, $column) {
             return array_column($this->getQuery($userId, $column)->get()->toArray(), $column);
             return array_column($this->getQuery($userId, $column)->get()->toArray(), $column);
         });
         });
@@ -603,11 +607,9 @@ sql;
         if (!$userId) $userId = Auth::id();
         if (!$userId) $userId = Auth::id();
         $query = Owner::query()->select("owners." . $column);
         $query = Owner::query()->select("owners." . $column);
         if (!app("UserService")->checkAdminIdentity($userId) && !app("AuthorityService")->checkAllOwner($userId)) {
         if (!app("UserService")->checkAdminIdentity($userId) && !app("AuthorityService")->checkAllOwner($userId)) {
-            //$query->whereHas("roles",function ($query)use($userId){
             $query->whereHas("users", function ($query) use ($userId) {
             $query->whereHas("users", function ($query) use ($userId) {
                 $query->where("users.id", $userId);
                 $query->where("users.id", $userId);
             });
             });
-            //});
         }
         }
         return $query->whereNull("deleted_at");
         return $query->whereNull("deleted_at");
     }
     }

+ 10 - 0
app/Services/StoreService.php

@@ -66,6 +66,11 @@ class StoreService
         $oracleDocAsnHerderService = app(OracleDocAsnHerderService::class);
         $oracleDocAsnHerderService = app(OracleDocAsnHerderService::class);
         $last_time = $this->getAsnLastSyncAt($created_at, 'create');
         $last_time = $this->getAsnLastSyncAt($created_at, 'create');
         $asnHerders = $oracleDocAsnHerderService->getWmsAsnOnStartDateCreate($last_time);
         $asnHerders = $oracleDocAsnHerderService->getWmsAsnOnStartDateCreate($last_time);
+        try {
+            $oracleDocAsnHerderService->rejectPush($asnHerders);
+        } catch (\Exception $e) {
+            Log::error("退货推送asn集合失败",[$e->getMessage()]);
+        }
         if (count($asnHerders)<1) return;
         if (count($asnHerders)<1) return;
         $last_time = $asnHerders->first()['addtime'];
         $last_time = $asnHerders->first()['addtime'];
         $last_records = $asnHerders->where('addtime', $last_time);
         $last_records = $asnHerders->where('addtime', $last_time);
@@ -89,6 +94,11 @@ class StoreService
         app('LogService')
         app('LogService')
             ->log(__METHOD__, __FUNCTION__, '11 获取上次更新时间:' . $last_time );
             ->log(__METHOD__, __FUNCTION__, '11 获取上次更新时间:' . $last_time );
         $asnHerders = $oracleDocAsnHerderService->getWmsAsnOnStartDateEdit($last_time);
         $asnHerders = $oracleDocAsnHerderService->getWmsAsnOnStartDateEdit($last_time);
+        try {
+            $oracleDocAsnHerderService->rejectPush($asnHerders);
+        } catch (\Exception $e) {
+            Log::error("退货推送asn集合失败",[$e->getMessage()]);
+        }
         if (count($asnHerders)<1) return;
         if (count($asnHerders)<1) return;
         $last_time = $asnHerders->first()['edittime'];
         $last_time = $asnHerders->first()['edittime'];
         $last_records = $asnHerders->where('edittime', $last_time);
         $last_records = $asnHerders->where('edittime', $last_time);

+ 25 - 22
resources/views/store/receivingDashboard/punctualityProgress/index.blade.php

@@ -208,16 +208,17 @@
                 pollingFunction(this.searchData, 1000 * 30)
                 pollingFunction(this.searchData, 1000 * 30)
 
 
                 let column = [
                 let column = [
-                    {name: 'receiveTaskNo', value: '收货任务号'},
-                    {name: 'status', value: '任务状态'},
-                    {name: 'asnNo', value: 'ASN号'},
-                    {name: 'reservationNo', value: '预约号'},
-                    {name: 'customerName', value: '货主'},
-                    {name: 'workGroupName', value: '操作组'},
-                    {name: 'expectancyAmount', value: '预期总数'},
-                    {name: 'putawayAmount', value: '已上架总数'},
-                    {name: 'receiveAverageConsumeDuration', value: ' 收货平均耗时'},
-                    {name: 'putawayAverageConsumeDuration', value: '上架平均耗时'},
+                    {name: 'serial', value: '序号', neglect: true},
+                    {name: 'receiveTaskNo', value: '收货任务号', neglect: true},
+                    {name: 'status', value: '任务状态', neglect: true},
+                    {name: 'asnNo', value: 'ASN号', neglect: true},
+                    {name: 'reservationNo', value: '预约号', neglect: true},
+                    {name: 'customerName', value: '货主', neglect: true},
+                    {name: 'workGroupName', value: '操作组', neglect: true},
+                    {name: 'expectancyAmount', value: '预期总数', neglect: true},
+                    {name: 'putawayAmount', value: '已上架总数', neglect: true},
+                    {name: 'receiveAverageConsumeDuration', value: ' 收货平均耗时', neglect: true},
+                    {name: 'putawayAverageConsumeDuration', value: '上架平均耗时', neglect: true},
 
 
                 ];
                 ];
                 new Header({
                 new Header({
@@ -226,21 +227,23 @@
                     column: column,
                     column: column,
                     data: this.resData.details.data,
                     data: this.resData.details.data,
                     restorationColumn: 'addtime',
                     restorationColumn: 'addtime',
+                    isCheckAllBox:false,
                     fixedTop: ($('#form_div').height()) + ($('#btn').height()) + 1,
                     fixedTop: ($('#form_div').height()) + ($('#btn').height()) + 1,
                 }).init();
                 }).init();
 
 
                 let column2 = [
                 let column2 = [
-                    {name: 'receiveTaskNo', value: '收货任务号'},
-                    {name: 'asnNo', value: 'ASN号'},
-                    {name: 'reservationNo', value: '预约号'},
-                    {name: 'container', value: '容器号'},
-                    {name: 'commName', value: '商品名称'},
-                    {name: 'commSku', value: 'SKU'},
-                    {name: 'commBarcode', value: '条码'},
-                    {name: 'receiveQty', value: '收货数量'},
-                    {name: 'putawayTime', value: '上架时间'},
-                    {name: 'receiveConsumeDuration', value: '收货耗时'},
-                    {name: 'putawayConsumeDuration', value: '上架耗时'},
+                    {name: 'serial', value: '序号', neglect: true},
+                    {name: 'receiveTaskNo', value: '收货任务号', neglect: true},
+                    {name: 'asnNo', value: 'ASN号', neglect: true},
+                    {name: 'reservationNo', value: '预约号', neglect: true},
+                    {name: 'container', value: '容器号', neglect: true},
+                    {name: 'commName', value: '商品名称', neglect: true},
+                    {name: 'commSku', value: 'SKU', neglect: true},
+                    {name: 'commBarcode', value: '条码', neglect: true},
+                    {name: 'receiveQty', value: '收货数量', neglect: true},
+                    {name: 'putawayTime', value: '上架时间', neglect: true},
+                    {name: 'receiveConsumeDuration', value: '收货耗时', neglect: true},
+                    {name: 'putawayConsumeDuration', value: '上架耗时', neglect: true},
 
 
                 ];
                 ];
                 new Header({
                 new Header({
@@ -249,6 +252,7 @@
                     column: column2,
                     column: column2,
                     data: this.resData.details.data,
                     data: this.resData.details.data,
                     restorationColumn: 'addtime',
                     restorationColumn: 'addtime',
+                    isCheckAllBox:false,
                     fixedTop: ($('#form_div').height()) + ($('#btn').height()) + 1,
                     fixedTop: ($('#form_div').height()) + ($('#btn').height()) + 1,
                 }).init();
                 }).init();
             },
             },
@@ -317,7 +321,6 @@
                     let url = this.getBaseUrl() + `/api/receiveBoard/agingScheduleDetail?receiveTaskNo=${receiveTaskNo}&reservationNo=${reservationNo}&asnNo=${asnNo}`
                     let url = this.getBaseUrl() + `/api/receiveBoard/agingScheduleDetail?receiveTaskNo=${receiveTaskNo}&reservationNo=${reservationNo}&asnNo=${asnNo}`
                     tempTip.showSuccess('开始查询,请稍后!');
                     tempTip.showSuccess('开始查询,请稍后!');
                     axios.get(url, this.getSearch()).then(res => {
                     axios.get(url, this.getSearch()).then(res => {
-                        tempTip.showSuccess('查询成功!');
                         if (res.data.code !== 200) {
                         if (res.data.code !== 200) {
                             this.resData.itemDetail = null;
                             this.resData.itemDetail = null;
                         } else {
                         } else {

+ 29 - 25
resources/views/store/receivingDashboard/receivingTableList/index.blade.php

@@ -234,21 +234,22 @@
                 $('#list').removeClass('d-none');
                 $('#list').removeClass('d-none');
                 pollingFunction(this.searchData, 1000 * 30)
                 pollingFunction(this.searchData, 1000 * 30)
                 let column = [
                 let column = [
-                    {name: 'customerName', value: '货主'},
-                    {name: 'receiveTaskNo', value: '收货任务号'},
-                    {name: 'reservationNo', value: '预约号'},
-                    {name: 'status', value: '状态'},
-                    {name: 'asnNo', value: 'ASN单号'},
-                    {name: 'createSingleTime', value: '开单时间'},
-                    {name: 'finishedReceiveTime', value: '完成收货时间'},
-                    {name: 'receivePerson', value: '关单员'},
-                    {name: 'expectancyAmount', value: ' 预期数'},
-                    {name: 'receivedAmount', value: '已收数'},
-                    {name: 'unfinishedReceiveAmount', value: '未收数'},
-                    {name: 'receiveConsumeDuration', value: '收货时间'},
-                    {name: 'action', value: '查看明细'},
+                    {name: 'serial', value: '序号', neglect: true},
+                    {name: 'customerName', value: '货主', neglect: true},
+                    {name: 'receiveTaskNo', value: '收货任务号', neglect: true},
+                    {name: 'reservationNo', value: '预约号', neglect: true},
+                    {name: 'status', value: '状态', neglect: true},
+                    {name: 'asnNo', value: 'ASN单号', neglect: true},
+                    {name: 'createSingleTime', value: '开单时间', neglect: true},
+                    {name: 'finishedReceiveTime', value: '完成收货时间', neglect: true},
+                    {name: 'receivePerson', value: '关单员', neglect: true},
+                    {name: 'expectancyAmount', value: ' 预期数', neglect: true},
+                    {name: 'receivedAmount', value: '已收数', neglect: true},
+                    {name: 'unfinishedReceiveAmount', value: '未收数', neglect: true},
+                    {name: 'receiveConsumeDuration', value: '收货耗时', neglect: true},
+                    {name: 'action', value: '查看明细', neglect: true},
                     @can('入库管理-实时收货看板-关单')
                     @can('入库管理-实时收货看板-关单')
-                    {name: 'closeAsn', value: '关单'},
+                    {name: 'closeAsn', value: '关单', neglect: true},
                     @endcan
                     @endcan
                 ];
                 ];
                 new Header({
                 new Header({
@@ -257,20 +258,22 @@
                     column: column,
                     column: column,
                     data: this.resData.details.data,
                     data: this.resData.details.data,
                     restorationColumn: 'addtime',
                     restorationColumn: 'addtime',
+                    isCheckAllBox:false,
                     fixedTop: ($('#form_div').height()) + ($('#btn').height()) + 1,
                     fixedTop: ($('#form_div').height()) + ($('#btn').height()) + 1,
                 }).init();
                 }).init();
                 let column2 = [
                 let column2 = [
-                    {name: 'receiveTaskNo', value: '收货任务号'},
-                    {name: 'asnNo', value: 'ASN号'},
-                    {name: 'reservationNo', value: '预约号'},
-                    {name: 'descr', value: '商品名称'},
-                    {name: 'sku', value: 'SKU'},
-                    {name: 'expectedQty', value: '预期数'},
-                    {name: 'receivedQty', value: '收货数'},
-                    {name: 'receivePerson', value: '收货人'},
-                    {name: 'putawayQty',class:"text-danger font-weight-bold", value: '上架数'},
-                    {name: 'putawayPerson', value: '上架人'},
-                    {name: 'unfinishedReceiveQty',class:"text-danger font-weight-bold", value: '未收数'},
+                    {name: 'serial', value: '序号', neglect: true},
+                    {name: 'receiveTaskNo', value: '收货任务号', neglect: true},
+                    {name: 'asnNo', value: 'ASN号', neglect: true},
+                    {name: 'reservationNo', value: '预约号', neglect: true},
+                    {name: 'descr', value: '商品名称', neglect: true},
+                    {name: 'sku', value: 'SKU', neglect: true},
+                    {name: 'expectedQty', value: '预期数', neglect: true},
+                    {name: 'receivedQty', value: '收货数', neglect: true},
+                    {name: 'receivePerson', value: '收货人', neglect: true},
+                    {name: 'putawayQty',class:"text-danger font-weight-bold", value: '上架数', neglect: true},
+                    {name: 'putawayPerson', value: '上架人', neglect: true},
+                    {name: 'unfinishedReceiveQty',class:"text-danger font-weight-bold", value: '未收数', neglect: true},
                 ];
                 ];
                 new Header({
                 new Header({
                     el: "table_inner",
                     el: "table_inner",
@@ -278,6 +281,7 @@
                     column: column2,
                     column: column2,
                     data: this.resData.details.data,
                     data: this.resData.details.data,
                     restorationColumn: 'addtime',
                     restorationColumn: 'addtime',
+                    isCheckAllBox:false,
                     fixedTop: ($('#form_div').height()) + ($('#btn').height()) + 1,
                     fixedTop: ($('#form_div').height()) + ($('#btn').height()) + 1,
                 }).init();
                 }).init();
             },
             },

+ 258 - 0
resources/views/store/receivingDashboard/stayPutawayList.blade.php

@@ -0,0 +1,258 @@
+@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 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" style="max-width: 200px !important;">
+                <select v-model="search.customerCode" class="selectpicker form-control" title="选择货主"
+                        data-actions-box="true"
+                        data-live-search="true"
+                        data-live-search-placeholder="搜索"
+                >
+                    <option v-for="(v,k) of searchSelects.owners" :value="v.code" :key="v.code">@{{ v.name }}</option>
+                </select>
+            </div>
+            <div class="form-group m-2" style="max-width: 200px !important;">
+                <select v-model="search.workGroupId" class="selectpicker form-control" title="工作组"
+                        data-actions-box="true"
+                        data-live-search="true"
+                        data-live-search-placeholder="搜索"
+                >
+                    <option v-for="(v,k) of searchSelects.workGroups" :value="v.id" :key="v.id">@{{ v.name }}</option>
+                </select>
+            </div>
+            <div class="form-group m-2" data-toggle="tooltip" data-placement="top" title="容器号">
+                <input v-model="search.container" class="form-control" type="text" step="01" placeholder="容器号">
+            </div>
+            <div class="form-group m-2" data-toggle="tooltip" data-placement="top" title="收货任务号">
+                <input v-model="search.receiveTaskNo" class="form-control" type="text" step="01" placeholder="收货任务号">
+            </div>
+            <div class="form-group m-2" data-toggle="tooltip" data-placement="top" title="ASN号">
+                <input v-model="search.asnNo" class="form-control" type="text" step="01" placeholder="ASN号">
+            </div>
+            <div class="form-group m-2" data-toggle="tooltip" data-placement="top" title="起始日期">
+                <input v-model="search.receiveStartTime" class="form-control" type="date" step="01">
+            </div>
+            <div class="form-group m-2" data-toggle="tooltip" data-placement="top" title="截止日期">
+                <input v-model="search.receiveEndTime" class="form-control" type="date" step="01">
+            </div>
+            <div class="form-group m-2">
+                <button class="form-control btn btn-sm btn-info" @click="searchData()">查询</button>
+            </div>
+        </div>
+        <div class="form-group  m-4">
+            <span class="font-weight-bold">待上架总数:<span class="text-danger">@{{ resData.details.total }}</span></span>
+        </div>
+        <!--            表格-->
+        <table class="table table-striped table-bordered table-hover text-nowrap"
+               style="background: #fff;" id="table">
+            <tr v-for="(item,i) in resData.details.data" :key="i">
+                <td class="td-warm text-muted "><span>@{{ i+1 }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.warehouseName }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.customerName }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.container }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.receiveTaskNo }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.asnNo }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.receivePerson }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.receiveTime }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.commSku }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.commBarcode }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.commName }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.quanlityCondition }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.attrWarehouse }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.produceDate }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.expiryDate }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.inboundDate }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.batchNumber }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.lotNo }}</span></td>
+                <td class="td-warm text-muted"><span>@{{ item.stayPutawayQty }}</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===resData.details.pages?'disabled':''">
+                    <button class="page-link" @click="pagination('next')">下一页</button>
+                </li>
+            </ul>
+        </nav>
+    </div>
+
+
+@endsection
+
+@section('lastScript')
+    <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>{{--新版2--}}
+    <script>
+        /**
+         * @Description: 轮询执行方法
+         * @param {func} function 需要轮询的方法
+         * @param {time} number 轮询间隔,默认1s
+         * @param {endTime} number 可轮询时间, 为空时一直轮询
+         * @param {immedaite} boolean 第一次是否立即执行
+         * @author: XuLijuan
+         */
+        const pollingFunction = (func, time = 1000, endTime, immediate = false) => {
+            immediate && func(); //是否立即执行一次,由实际决定
+            const startTime = new Date().getTime();
+            const pollTimer = setInterval(() => {
+                const nowTime = new Date().getTime();
+                if (endTime && nowTime - startTime >= endTime) {
+                    pollTimer && clearInterval(pollTimer);
+                }
+                func();
+            }, time);
+            return pollTimer;
+        };
+        let vue = new Vue({
+            el: "#list",
+            data: {
+                timer: null,
+                resData: {
+                    details: {
+                        data: [],
+                        total: null,
+                        current: 1,
+                        pages: null,
+                        size: 50,
+                    },
+                    itemDetail: null,
+                },
+                searchSelects: {
+                    owners: {!! $owners !!},
+                    workGroups: {!! $workGroups !!},
+                },
+                selectTr: null,
+                search: {
+                    customerCode: null,
+                    container: null,
+                    asnNo: null,
+                    receiveStartTime: null,
+                    receiveEndTime: null,
+                    receiveTaskNo: null,
+                    workGroupId: null,
+                },
+                size: 50,
+                current: 1,
+            },
+            created() {
+                let url = this.getBaseUrl() + `/api/receiveBoard/stayPutawayList?size=${this.size}&current=${this.current}`
+                this.initSearchDate();
+                this.getPageResult(url);
+            },
+            beforeDestroy() {
+                clearInterval(this.timer)
+            },
+            mounted: function () {
+                $('#list').removeClass('d-none');
+                pollingFunction(this.searchData, 1000 * 30)
+                let column = [
+                    {name: 'serial', value: '序号', neglect: true},
+                    {name: 'warehouseName', value: '仓库',neglect: true},
+                    {name: 'customerName', value: '货主',neglect: true},
+                    {name: 'container', value: '容器号',neglect: true},
+                    {name: 'receiveTaskNo', value: '收货任务号',neglect: true},
+                    {name: 'asnNo', value: 'ASN号',neglect: true},
+                    {name: 'receivePerson', value: '收货员',neglect: true},
+                    {name: 'receiveTime', value: '收货时间',neglect: true},
+                    {name: 'commSku', value: 'sku',neglect: true},
+                    {name: 'commBarcode', value: '条码',neglect: true},
+                    {name: 'commName', value: '商品名称',neglect: true},
+                    {name: 'quanlityCondition', value: '质量状态',neglect: true},
+                    {name: 'attrWarehouse', value: '属性仓',neglect: true},
+                    {name: 'produceDate', value: '生产日期',neglect: true},
+                    {name: 'expiryDate', value: '失效日期',neglect: true},
+                    {name: 'inboundDate', value: '入库日期',neglect: true},
+                    {name: 'batchNumber', value: '批号',neglect: true},
+                    {name: 'lotNo', value: '批次号',neglect: true},
+                    {name: 'stayPutawayQty', value: '待上架数量',neglect: true},
+
+                ];
+                new Header({
+                    el: "table",
+                    name: "details",
+                    column: column,
+                    data: this.resData.details.data,
+                    restorationColumn: 'addtime',
+                    isCheckAllBox:false,
+                    fixedTop: ($('#form_div').height()) + ($('#btn').height()) + 1,
+                }).init();
+            },
+            methods: {
+                getPageResult(url) {
+                    axios.post(url, this.getSearch()).then(res => {
+                        if (res.data.code !== 200) {
+                            this.resData.details.data = [];
+                            this.resData.details.total = 0
+                            this.resData.details.current = 1
+                            this.resData.details.pages = 0
+                            this.resData.details.size = 50;
+                        } else {
+                            this.resData.details.data = res.data.data.list;
+                            this.resData.details.total = res.data.data.page.total;
+                            this.resData.details.current = res.data.data.page.pageNum;
+                            this.resData.details.pages = res.data.data.page.pages
+                            this.resData.details.size = res.data.data.page.pageSize;
+                        }
+                    });
+                },
+                getSearch() {
+                    let search = Object.assign({}, this.search);
+                    search.startTime += ' 00:00:00';
+                    search.endTime += ' 23:59:59';
+                    return search;
+                },
+                //初始化日期为今天和昨天
+                initSearchDate() {
+                    let day1 = new Date();
+                    day1.setTime(day1.getTime() - 24 * 60 * 60 * 1000);
+                    let s1 = day1.getFullYear() + "-" + ((day1.getMonth() + 1) >= 10 ? (day1.getMonth() + 1) : ('0' + (day1.getMonth() + 1))) + "-" + (day1.getDate() >= 10 ? day1.getDate() : ('0' + day1.getDate()));
+                    //今天的时间
+                    let day2 = new Date();
+                    day2.setTime(day2.getTime());
+                    let s2 = day2.getFullYear() + "-" + ((day2.getMonth() + 1) >= 10 ? (day2.getMonth() + 1) : ('0' + (day2.getMonth() + 1))) + "-" + (day2.getDate() >= 10 ? day2.getDate() : ('0' + day2.getDate()));
+                    this.search.startTime = s1;
+                    this.search.endTime = s2;
+                },
+                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:8116'
+                    } else if (env === 'production') {
+                        url = 'https://device.baoshi56.com'
+                    }
+                    return url;
+                },
+                pagination(flag) {
+                    if (flag === 'pre' && this.current > 1) {
+                        this.current--;
+                    } else if (flag === 'next' && this.current < this.resData.details.pages) {
+                        this.current++;
+                    }
+                    let url = this.getBaseUrl() + `/api/receiveBoard/stayPutawayList?size=${this.size}&current=${this.current}`
+                    this.getPageResult(url);
+                },
+            },
+
+        });
+    </script>
+@endsection

+ 1 - 0
routes/web.php

@@ -565,6 +565,7 @@ Route::group(['middleware' => 'auth'], function ($route) {
         Route::prefix("/receivingDashboard")->group(function (){
         Route::prefix("/receivingDashboard")->group(function (){
             Route::get("/receivingTableList", "ReceivingDashboardController@receivingTableList");
             Route::get("/receivingTableList", "ReceivingDashboardController@receivingTableList");
             Route::get("/punctualityProgress", "ReceivingDashboardController@punctualityProgress");
             Route::get("/punctualityProgress", "ReceivingDashboardController@punctualityProgress");
+            Route::get("/stayPutawayList", "ReceivingDashboardController@stayPutawayList");
         });
         });
 
 
         Route::group(['prefix' => 'inStorage'], function () {
         Route::group(['prefix' => 'inStorage'], function () {