Przeglądaj źródła

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

LD 5 lat temu
rodzic
commit
d529fb9436

+ 12 - 2
app/Http/Controllers/RejectedBillController.php

@@ -96,7 +96,12 @@ class RejectedBillController extends Controller
         $rejectedBill=new RejectedBill($request->all());
         $rejectedBill['id_operator'] = Auth::user()['id'];
         $rejectedBill->save();
-        app(RejectedBillService::class)->syncOrderIssue($rejectedBill);
+        /**
+         * @var RejectedBillService $rejectedBillService
+         */
+        $rejectedBillService=app(RejectedBillService::class);
+        $rejectedBillService->syncOrderIssue($rejectedBill);
+        $rejectedBillService->updateCheckedStatusByWms($request->input('logistic_number_return'));
 //        $rejectedBill->同步问题件退件状态();
 
         app('LogService')->log(__METHOD__,__FUNCTION__.'_'.$rejectedBill['id'],json_encode($request->toArray()),Auth::user()['id']);
@@ -118,7 +123,12 @@ class RejectedBillController extends Controller
         $rejectedBill=RejectedBill::find($request->input('id'));
         $rejectedBill->fill($request->all());
         $rejectedBill->save();
-        app(RejectedBillService::class)->syncOrderIssue($rejectedBill);
+        /**
+         * @var RejectedBillService $rejectedBillService
+         */
+        $rejectedBillService=app(RejectedBillService::class);
+        $rejectedBillService->syncOrderIssue($rejectedBill);
+        $rejectedBillService->updateCheckedStatusByWms($rejectedBill->logistic_number_return);
 //        $rejectedBill->同步问题件退件状态();
 
         app('LogService')->log(__METHOD__,__FUNCTION__.'_'.$rejectedBill['id'],json_encode($request->toArray()),Auth::user()['id']);

+ 2 - 1
app/Http/Controllers/StoreController.php

@@ -30,11 +30,12 @@ class StoreController extends Controller
     {
         if(!Gate::allows('入库管理-入库-查询')){ return redirect(url('/'));  }
         /** @var StoreService $storeService */
+        $paginateParams=$request->input();
         $storeService=app(StoreService::class);
         $stores=$storeService->paginate($request->input());
         $warehouses=Warehouse::query()->get();
         $owners=app("OwnerService")->getIntersectPermitting();
-        return view('store.inStorage.index',compact('stores','warehouses','owners'));
+        return view('store.inStorage.index',compact('stores','warehouses','owners','paginateParams'));
     }
     /**
      * Display a listing of the resource.

+ 1 - 0
app/Services/InventoryAccountService.php

@@ -47,6 +47,7 @@ class InventoryAccountService
         $inventories=InventoryAccount::query()->with(['owner','creator'])->orderBy('id','desc')->whereIn('owner_id',$ownerIds);
         $columnQueryRules=[
             'owner_id' => ['multi' => ','],
+            'type' => ['multi' => ','],
             'date_start' => ['alias' => 'created_at' , 'startDate' => ' 00:00:00'],
             'date_end' => ['alias' => 'created_at' , 'endDate' => ' 23:59:59'],
         ];

+ 69 - 10
app/Services/RejectedBillService.php

@@ -2,6 +2,7 @@
 
 namespace App\Services;
 
+use App\OracleDOCASNHeader;
 use App\OracleDOCOrderHeader;
 use App\OrderIssue;
 use App\RejectedBill;
@@ -75,9 +76,10 @@ Class RejectedBillService
     {
         $updateParams=$this->getNeedUpdateLoadedStatusByWms($asnHerders);
         if (!$updateParams)return;
-        if (count($updateParams) > 1) {
-            $this->batchUpdate($updateParams);
-        }
+        if (count($updateParams) > 1) $this->batchUpdate($updateParams);
+        $updates=$this->getNeedUpdateCheckedStatusByWms($asnHerders);
+        if (!$updates)return;
+        if (count($updates) > 1) $this->batchUpdate($updates);
     }
 
     public function getNeedUpdateLoadedStatusByWms($asnHerders)
@@ -99,7 +101,6 @@ Class RejectedBillService
             if (!$data->asnreference3 && !$data->notes) {
                 continue;
             }
-            $result = [];
             if ($data->asnreference3) {
                 $rejectedBill = $dataHandlerService->getKeyValue(['logistic_number_return' => $data->asnreference3], $rejectedBills_map);
                 if ($rejectedBill && $rejectedBill->is_loaded != 1) $updateParams[] = [
@@ -108,6 +109,7 @@ Class RejectedBillService
                     'updated_at' => $updated_at,
                 ];
             } else {
+                $result = [];
                 preg_match("/[a-zA-Z]{0,5}\d{6,20}/", $data->notes, $result);
                 if (count($result)<1) continue;
                 $rejectedBill = $dataHandlerService->getKeyValue(['logistic_number_return' => $result[0]], $rejectedBills_map);
@@ -116,7 +118,7 @@ Class RejectedBillService
                     'is_loaded' => 1,
                     'updated_at' => $updated_at,
                 ];
-                $result = [];
+               unset($result);
             }
         }
         return $updateParams;
@@ -141,13 +143,13 @@ Class RejectedBillService
             if (!$data->asnreference3 && !$data->notes) {
                 continue;
             }
-            $result = [];
             if ($data->asnreference3) {
                 array_push($logisticNumberReturn, $data->asnreference3);
             } else {
+                $result = [];
                 preg_match("/[a-zA-Z]{0,5}\d{6,20}/", $data->notes, $result);
                 if (count($result) > 0) array_push($logisticNumberReturn, $result[0]);
-                $result = [];
+                unset($result);
             }
         }
         return $logisticNumberReturn;
@@ -160,9 +162,66 @@ Class RejectedBillService
 
     public function getRejectedBills(array $logisticNumberReturn)
     {
-        if (count($logisticNumberReturn) < 1) {
-            return null;
-        }
+        if (count($logisticNumberReturn) < 1) return null;
         return RejectedBill::query()->whereIn('logistic_number_return', $logisticNumberReturn)->get();
     }
+
+    public function getNeedUpdateCheckedStatusByWms($asnHerders)
+    {
+        if ($asnHerders->isEmpty()) return null;
+        $logisticNumberReturn = $this->getLogisticNumberReturn($asnHerders);
+        $rejectedBills = $this->getRejectedBills($logisticNumberReturn);
+        if (!$rejectedBills) return null;
+        $updateParams = [[
+            'logistic_number_return', 'is_checked','checked_numbers','updated_at'
+        ]];
+        $updated_at = Carbon::now()->toDateTimeString();
+        /** @var DataHandlerService $dataHandlerService */
+        $dataHandlerService = app(DataHandlerService::class);
+        $rejectedBills_map = $dataHandlerService->dataHeader(['logistic_number_return'], $rejectedBills);
+        foreach ($asnHerders as $data) {
+            if (!$data->asnreference3 && !$data->notes) continue;
+            if ($data->asnreference3) {
+                $rejectedBill = $dataHandlerService->getKeyValue(['logistic_number_return' => $data->asnreference3], $rejectedBills_map);
+                if ($rejectedBill && $rejectedBill->is_checked != 1) $updateParams[] = [
+                    'logistic_number_return' => $data->asnreference3,
+                    'is_checked' => 1,
+                    'checked_numbers' => $rejectedBill->makeCheckedNumbers(),
+                    'updated_at' => $updated_at,
+                ];
+            } else {
+                $result = [];
+                preg_match("/[a-zA-Z]{0,5}\d{6,20}/", $data->notes, $result);
+                if (count($result)<1) continue;
+                $rejectedBill = $dataHandlerService->getKeyValue(['logistic_number_return' => $result[0]], $rejectedBills_map);
+                if ($rejectedBill && $rejectedBill->is_checked != 1) $updateParams[] = [
+                    'logistic_number_return' => $result[0],
+                    'is_checked' => 1,
+                    'checked_numbers' => $rejectedBill->makeCheckedNumbers(),
+                    'updated_at' => $updated_at,
+                ];
+                unset($result);
+            }
+        }
+        return $updateParams;
+    }
+
+    public function updateCheckedStatusByWms($logistic_number_return)
+    {
+        $asnHeader=OracleDOCASNHeader::query()
+            ->select('asnno','customerid','notes','warehouseid','asnreference3')
+            ->where('asnreference3',$logistic_number_return)
+            ->orWhere('notes','like','%'.$logistic_number_return.'%')
+            ->first();
+        if ($asnHeader){
+            $rejectBill=RejectedBill::query()->where('logistic_number_return',$logistic_number_return)->first();
+            if ($rejectBill->is_checked==1)return null;
+            $rejectBill->update([
+                'is_checked'=>1,
+                'checked_numbers' => $rejectBill->makeCheckedNumbers(),
+            ]);
+            return $rejectBill;
+        }
+        return null;
+    }
 }

+ 1 - 0
app/Services/StoreService.php

@@ -21,6 +21,7 @@ Class StoreService
         $stores = Store::query()->with(['storeItems.store', 'warehouse', 'owner'])->where('is_fast_stored', '无')->orderBy('id', 'DESC');
         $columnQueryRules = [
             'asn_code' => ['like' => ''],
+            'remark' => ['like' => '','timeLimit' => 15],
             'created_at_start' => ['alias' => 'created_at', 'startDate' => ' 00:00:00'],
             'created_at_end' => ['alias' => 'created_at', 'endDate' => ' 23:59:59'],
             'owner_id' => ['multi' => ','],

+ 44 - 35
resources/views/inventory/stockInventory/mission.blade.php

@@ -7,13 +7,14 @@
     <div class="text-center h5 mt-2" id="loadingPage">
         载入中……
     </div>
-    <div id="list" class="container-fluid d-none" style="min-width: 1500px">
-        <form class="form-inline mt-2">
+    <div id="list" class="container-fluid d-none" {{--style="min-width: 1500px"--}}>
+            <div class="card-header alert-info">
+        <form class="form-inline">
             <span class="form-inline ml-5">
                  <span class="btn btn-sm btn-outline-secondary tooltipTarget" @click="syncOwners">同步货主</span>
                 <select class="form-control form-control-sm tooltipTarget" name="owner_id" id="owner_id" style="width: 150px;position: relative" title="选择指定货主" v-model="owner_id">
                                         <option value="">货主</option>
-                                        <option v-for="owner in owners" :value="owner.id">@{{ owner.name }}</option>
+                                        <option v-for="owner in owners" :value="owner.name">@{{ owner.value }}</option>
                                     </select>
                 <input placeholder="定位货主" id="ownerName" autocomplete="off" @input="定位货主($event)" class="form-control form-control-sm tooltipTarget" style="width: 100px" title="输入关键字定位货主" >
             </span>
@@ -31,11 +32,24 @@
                 @endcan
             </span>
         </form>
-
-        <div class="card-header pt-0">
-            <div id="form"></div>
         </div>
-        <div class="card-body pt-1">
+        <div id="form_div" class="mt-2"></div>
+
+{{--        <div class="card-header pt-0">--}}
+{{--            <div id="form"></div>--}}
+{{--            <span class="dropdown">--}}
+{{--        <button class="btn btn-outline-dark btn-sm form-control-sm dropdown-toggle tooltipTarget" :class="[checkData.length>0?'btn-dark text-light':'']"--}}
+{{--                data-toggle="dropdown" title="导出所有页将会以搜索条件得到的筛选结果,将其全部记录(每一页)导出">--}}
+{{--            导出Excel--}}
+{{--        </button>--}}
+{{--        <div class="dropdown-menu">--}}
+{{--            <a class="dropdown-item" @click="inventoryExport(false)" href="javascript:">导出勾选内容</a>--}}
+{{--            <a class="dropdown-item" @click="inventoryExport(true)" href="javascript:">导出所有页</a>--}}
+{{--        </div>--}}
+{{--        </span>--}}
+{{--        </div>--}}
+
+        <div class=" pt-1">
             <label for="all" class="d-none" id="cloneCheckAll">
                 <input id="all" type="checkbox" @click="checkAll($event)">全选
             </label>
@@ -91,16 +105,6 @@
             <div class="text-info h5 btn btn">{{$inventoryAccounts->count()}}/@{{ sum }}</div>
             <div>{{$inventoryAccounts->appends($paginateParams)->links()}}</div>
         </div>
-        <span class="dropdown">
-        <button class="btn btn-outline-dark btn-sm form-control-sm dropdown-toggle tooltipTarget" :class="[checkData.length>0?'btn-dark text-light':'']"
-                data-toggle="dropdown" title="导出所有页将会以搜索条件得到的筛选结果,将其全部记录(每一页)导出">
-            导出Excel
-        </button>
-        <div class="dropdown-menu">
-            <a class="dropdown-item" @click="inventoryExport(false)" href="javascript:">导出勾选内容</a>
-            <a class="dropdown-item" @click="inventoryExport(true)" href="javascript:">导出所有页</a>
-        </div>
-        </span>
     </div>
 
 @endsection
@@ -127,7 +131,12 @@
                     },
                     @endforeach
                 ],
-                owners:{!! $owners !!},
+                owners:[
+                        @foreach($owners as $owner)
+                    {name:'{{$owner->id}}',value:'{{$owner->name}}'},
+                    @endforeach
+                ],
+                {{--owners:{!! $owners !!},--}}
                 checkData: [],
                 selectedStyle:'',
                 sum:{!! $inventoryAccounts->total() !!},
@@ -143,6 +152,21 @@
                     $('#list').removeClass('d-none');
                 })()
                 this.fakeOwners=this.owners;
+                $('#list').removeClass('d-none');
+                let data=[
+                    [
+                        {name:'date_start',type:'dateTime',tip:'选择显示指定日期的起始时间'},
+                        {name:'date_end',type:'dateTime',tip:'选择显示指定日期的结束时间'},
+                         {name:'owner_id',type:'select_multiple_select',tip:['输入关键词快速定位下拉列表,回车确定','选择要显示的货主'],
+                             placeholder:['货主','定位或多选货主'],data:this.owners},
+                        {name:'type',type:'select',placeholder: '任务类型',data:[{name:'全盘',value:'全盘'},{name:'动盘',value:'动盘'}, {name:'局部盘点',value:'局部盘点'}]},
+                    ],
+                ];
+                this.form = new query({
+                    el:"#form_div",
+                    condition:data,
+                });
+                this.form.init();
                 let _this = this;
                 let column = [
                     {name:'cloneCheckAll',customization:true,type:'checkAll',column:'id',
@@ -179,21 +203,6 @@
                     });
                     header.init();
                 },0);
-                // let data=[
-                //     [
-                //         {name:'owner_id',type:'select_multiple_select',tip:['输入关键词快速定位下拉列表,回车确定','选择要显示的客户'],
-                //             placeholder:['货主','定位或多选货主'],data:this.owners},
-                //         {name:'date_start',type:'dateTime',tip:'选择创建日期的开始时间',},
-                //         {name:'date_end',type:'dateTime',tip:'选择创建日期的结束时间',},
-                //     ],
-                // ];
-                // this.form = new query({
-                //     el:'#form_div',
-                //     condition:data,
-                // });
-                // this.form.init();
-                // let obj=this.form.getSearchData();
-                // this.formData=obj;
             },
             methods:{
                 selectedColor(id){
@@ -350,8 +359,8 @@
                 },
                 定位货主(e){
                     this.owners.some(owner => {
-                        if (owner.name.indexOf(e.target.value) !== -1){
-                            this.owner_id = owner.id;
+                        if (owner.value.indexOf(e.target.value) !== -1){
+                            this.owner_id = owner.name;
                             return true;
                         }
                     });

+ 2 - 1
resources/views/store/inStorage/index.blade.php

@@ -60,7 +60,7 @@
                         </tr>
         </table>
         <div class="text-info h5 btn btn">{{$stores->count()}}/{{$stores->total()}}</div>
-        {{$stores->links()}}
+        <div>{{$stores->appends($paginateParams)->links()}}</div>
     </div>
 @endsection
 
@@ -100,6 +100,7 @@
                             placeholder:['货主','定位或多选货主'],data:this.owners},
                         {name:'warehouse_id',type:'select_multiple_select',tip:['输入关键词快速定位下拉列表,回车确定','选择要显示的仓库'],
                             placeholder:['仓库','定位或多选仓库'],data:this.warehouses},
+                        {name:'remark',type:'input',tip:'备注:可在两侧增加百分号(%)进行模糊搜索',placeholder: '备注'},
                     ],
                     [
                         {name:'created_at_end',type:'dateTime',tip:'选择显示指定日期的结束时间'},