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

包裹队列BUG
包裹手动输入

LD 6 лет назад
Родитель
Сommit
388bb0a4d1

+ 6 - 5
app/Http/Controllers/PackageController.php

@@ -86,13 +86,14 @@ class PackageController extends Controller
         $weight=$request->input('weight');
         $batch_number=$request->input('batch_number');
         $paper_box_id=$request->input('paper_box_id');
-        $package=Package::where('logistic_number',$logistic_number)->first();
-        if (!$package && !$logistic_number)return redirect('package/create')->with('successError','录入失败!没有填写快递单号!');
+        $package=null;
+        if($batch_number)$package=Package::where('batch_number',$batch_number)->first();
+        if($logistic_number)$package=Package::where('logistic_number',$logistic_number)->first();
+        if (!$package && !$logistic_number)return redirect('package/create')->with('successError','录入失败!系统内没有对应波次的包裹!');
         if ($package){
             $accomplishToWMS=new \App\Http\Controllers\Api\thirdPart\flux\PackageController();
-            $packageController=new \App\Http\Controllers\PackageController();
             if ($package->batch_rule&&strstr($package->batch_rule,'组合')){
-                $packageController->syncBatch($package->batch_number,$weight,null,null,null,Carbon::now(),$paper_box_id);
+                $this->syncBatch($package->batch_number,$weight,null,null,null,Carbon::now(),$paper_box_id);
             }else{
                 $package->weight=$weight;
                 $package->paper_box_id=$paper_box_id;
@@ -115,7 +116,7 @@ class PackageController extends Controller
         }
         $package->save();
         event(new WeighedEvent($package));
-        return redirect('package/create')->with('successTip','新记录“'.$logistic_number.'”录入成功');
+        return redirect('package/create')->with('successTip','操作成功');
     }
 
     /**

+ 4 - 149
app/Http/Controllers/api/thirdPart/flux/ReceiveController.php

@@ -51,7 +51,8 @@ class ReceiveController extends Controller
                 $receive->skus()->save($sku);
 //                $skus[]=$sku;
             }
-            event(new WmsReceiveNewEvent($receive['ASNREFERENCE3'],$receive));
+            if(isset($receive['ASNREFERENCE3']))
+                event(new WmsReceiveNewEvent($receive['ASNREFERENCE3'],$receive));
         }
         (new Controller())->log(__METHOD__,'success_'.__FUNCTION__,json_encode($request->getContent()));
         return response()->json(['response'=>['flag'=>'Y','code'=>'0000','message'=>'正确接收']])
@@ -67,7 +68,7 @@ class ReceiveController extends Controller
             'request.*.ASNTYPE' => ['nullable', 'string', 'max:191'],
             'request.*.ASNREFERENCE1' => ['nullable', 'string', 'max:191'],
             'request.*.ASNREFERENCE2' => ['nullable', 'string', 'max:191'],
-            'request.*.ASNREFERENCE3' => ['required', 'string', 'max:191'],
+            'request.*.ASNREFERENCE3' => ['nullable', 'string', 'max:191'],
             'request.*.ASNSTATUS' => ['nullable', 'string', 'max:191'],
             'request.*.NOTES' => ['nullable', 'string', 'max:191'],
             'request.*.USERDEFINE1' => ['nullable', 'string', 'max:191'],
@@ -261,151 +262,5 @@ class ReceiveController extends Controller
 
         return $success;
     }
-    /**
-     * 入库回传给WMS
-     * @param Store $store
-     * @return bool
-     */
-    static public function accomplishStoreToWMS(Store $store)
-    {
-//        $bill=$rejectedBill;
-//        $wmsReceiveds=WMSReflectReceive::where('ASNREFERENCE3',$rejectedBill['logistic_number_return'])
-//            ->where('is_uploaded',0)->get();
-//        if($wmsReceiveds->isEmpty()){
-//            (new Controller())->log(__METHOD__,'error_'.__FUNCTION__,'没有WMS入库单');
-//            return false;
-//        }
-//        $items=$bill->items()->get();
-//        $amountsItem=(function()use($items){
-//            $result=[];
-//            $items->each(function($item)use(&$result){
-//                $result[$item['id']]= $item['amount'];
-//            });
-//            return $result;
-//        })();
-//        $success=true;
-//        $wmsReceiveds->each(function ($wmsReceived)use(&$bill,&$amountsItem,$items,&$success){
-//            if(!$bill && $bill['is_loaded']!=0)return;
-//
-//            $wmsSkus=$wmsReceived->skus()->get();
-//            $orderNumberCode=$wmsReceived['ASNREFERENCE1']??$bill['order_number'];
-//            $amountsSku=(function()use($wmsSkus){
-//                $result=[];
-//                $wmsSkus->each(function($sku)use(&$result){
-//                    $result[$sku['id']]= $sku['EXPECTEDQTY_EACH'];
-//                });
-//                return $result;
-//            })();
-//            $skuStrList=[];
-//            $customerCode=$bill->owner()->first()['code'];
-//            $wmsSkus->each(function(WMSReflectReceiveSku $sku)use(&$items,&$skuList,&$amountsItem,&$amountsSku,&$skuStrList,$wmsReceived,$customerCode){
-//                $items->each(function(RejectedBillItem $item)use(&$sku,&$amountsItem,&$amountsSku,&$skuStrList,$wmsReceived,$customerCode){
-//                    if($item['barcode_goods']!=$sku['ALTERNATE_SKU1'])return;
-//                    if($amountsItem[$item['id']]==0||$amountsSku[$sku['id']]==0)return;
-//                    $uploadingAmount=(function()use(&$item,&$sku,&$amountsItem,&$amountsSku){
-//                        if($amountsItem[$item['id']]>$amountsSku[$sku['id']]){
-//                            $amountsItem[$item['id']]-=$amountsSku[$sku['id']];
-//                            $amount= $amountsSku[$sku['id']];
-//                            $amountsSku[$sku['id']]=0;
-//                            return $amount;
-//                        }
-//                        if($amountsItem[$item['id']]<$amountsSku[$sku['id']]){
-//                            $amount=$amountsItem[$item['id']];
-//                            $amountsSku[$sku['id']]-=$amount;
-//                            $amountsItem[$item['id']]=0;
-//                            return $amount;
-//                        }
-//                        $amount=$amountsItem[$item['id']];
-//                        $amountsItem[$item['id']]=0;
-//                        $amountsSku[$sku['id']]=0;
-//                        return $amount;
-//                    })();
-//                    if($item['is_loaded']=='已入库'){return;}
-//                    $STATUS=$item['id_quality_label']==1?'ZP':'CC';
-//                    $STATUS_code=$item['id_quality_label']==1?'01':'02';
-//                    $skuStr="
-//                        {
-//                            \"ORDERNUMBERCODE\": \"{$wmsReceived['ASNNO']}\",
-//                            \"ASNLINENO\": \"{$sku['ASNLINENO']}\",
-//                            \"SKUCODE\": \"{$sku['SKU']}\",
-//                            \"QUANTITY\": \"{$uploadingAmount}\",
-//                            \"LOTATT04\": \"{$sku['LOTATT04']}\",
-//                            \"LOTATT05\": \"{$sku['LOTATT05']}\",
-//                            \"STATUS\": \"{$STATUS}\",
-//                            \"PRODUCTION DATE\": \"{$item['made_at']}\",
-//                            \"EXPIRATION DATE\": \"{$item['validity_at']}\",
-//                            \"USERDEFINE1\": \"{$customerCode}{$STATUS_code}\",
-//                            \"USERDEFINE2\": \"\",
-//                            \"USERDEFINE3\": \"\",
-//                            \"UNIQUE_CODE_LIST\": [".
-////                                {
-////                                    \"ORDERNUMBERCODE\": \"{$wmsReceived['ASNNO']}\",
-////                                    \"SKUCODE\": \"{$sku['SKU']}\",
-////                                    \"STATUS\": \"{$STATUS}\",
-////                                    \"PRODUCTION DATE\": \"{$item['made_at']}\",
-////                                    \"EXPIRATION DATE\": \"{$item['validity_at']}\",
-////                                    \"LOTATT05\": \"{$sku['LOTATT05']}\",
-////                                    \"UNIQUE_CODE\": \"\"
-////                                }
-//                            "]
-//                        }
-//                    ";
-//                    $skuStrList[]=$skuStr;
-//                });
-//            });
-//            if(count($skuStrList)==0)return;
-//            $skuStrList = implode(',',$skuStrList);
-//            $json="
-//                {
-//                    \"request\": [
-//                        {
-//                            \"ORDERNUMBERCODE\": \"{$wmsReceived['ASNNO']}\",
-//                            \"CUSTOMERID\": \"{$customerCode}\",
-//                            \"ASNTYPE\": \"{$wmsReceived['ASNTYPE']}\",
-//                            \"ASNREFERENCE1\": \"{$orderNumberCode}\",
-//                            \"ADDWHO\": \"WCS\",
-//                            \"USERDEFINE1\": \"\",
-//                            \"USERDEFINE2\": \"\",
-//                            \"USERDEFINE3\": \"\",
-//                            \"SKU_LIST\": [{$skuStrList}]
-//                        }
-//                    ]
-//                }
-//        ";
-//
-//            $sendingJson = json_decode($json,true);
-//            $url=url(config('api.flux.receive.new'));
-//            $response = Zttp::post($url, $sendingJson);
-//            $noIssues=true;
-//            $json = $response->json();
-//            (new Controller())->log(__METHOD__,__FUNCTION__,$response->body().'|'.json_encode($sendingJson));
-//            if(!$json||!isset($json['Response'])||!$json['Response']['return']['returnFlag']=='1'){
-//                $noIssues=false;
-//            }
-//            if($json&&isset($json['Response'])){
-//                if($json['Response']['return']['returnFlag']=='2'){
-//                    return true;
-//                }
-//                if(isset($json['Response']['return']['returnDesc'])&&strpos($json['Response']['return']['returnDesc'],'唯一约束')!==false){
-//                    (new Controller())->log(__METHOD__,'error_'.__FUNCTION__,$response->body().'|'.json_encode($sendingJson));
-//                    return true;
-//                }
-//                if(isset($json['Response']['return']['errordescr'])&&strpos($json['Response']['return']['errordescr'],'已完成')!==false){
-//                    (new Controller())->log(__METHOD__,'error_'.__FUNCTION__,$response->body().'|'.json_encode($sendingJson));
-//                    return true;
-//                }
-//            }
-//            if($noIssues&&$json['Response']['return']['returnFlag']=='1'){
-//                $wmsReceived['is_uploaded']=1;
-//                $wmsReceived->save();
-//                return true;
-//            }else{
-//                $success=false;
-//                (new Controller())->log(__METHOD__,'error_'.__FUNCTION__,$response->body().'|'.json_encode($sendingJson));
-//            }
-//        });
-//
-//
-//        return $success;
-    }
+
 }

+ 10 - 1
app/Jobs/MarkPackageExcepted.php

@@ -2,6 +2,7 @@
 
 namespace App\Jobs;
 
+use App\Http\Controllers\Controller;
 use App\Package;
 use Illuminate\Bus\Queueable;
 use Illuminate\Queue\SerializesModels;
@@ -32,8 +33,16 @@ class MarkPackageExcepted implements ShouldQueue
      */
     public function handle()
     {
+        $controller= new Controller();
+        if (!$this->package){
+            $controller->log(__METHOD__,'error_'.__FUNCTION__,"队列传递的package为空",null);
+            return;
+        }
         $pickedPackage=Package::where('id',$this->package->id)->select('id','delivery_number','status')->first();
-        if(!$pickedPackage)return;
+        if(!$pickedPackage){
+            $controller->log(__METHOD__,'error_'.__FUNCTION__,"队列查询的package为空",null);
+            return;
+        }
         if (!$pickedPackage->delivery_number){
             $pickedPackage->status="下发异常";
             $pickedPackage->save();

+ 6 - 9
resources/js/singles/rejectedIndex.js

@@ -185,20 +185,19 @@ let vueList=new Vue({
                     rejectedBill.is_checked='0';
             })
         },
-        setIsLoaded_batch:function(e){
+        setIsLoaded_batch:function(val){
             let _this=this;
             if(_this.rejectedBills_checkBoxes.length===0){
                 tempTip.show('没有勾选记录');
                 $(e.target).val("");
                 return;
             }
-            let val=$(e.target).val();
             let is_loaded=0;
             let is_loadedLabel='否';
-            if(val==="1"){
+            if(parseInt(val)===1){
                 is_loaded=1;
                 is_loadedLabel='是';
-            }else if(val==="2"){
+            }else if(parseInt(val)===2){
                 is_loaded=2;
                 is_loadedLabel='待推单';
             }else if(val==="null"){
@@ -302,12 +301,10 @@ let vueList=new Vue({
                 console.log(e);
             })
         },
-        exportExcel:function(e){
+        exportExcel:function(val){
             let _this=this;
-            let val=$(e.target).val();
-            $(e.target).val("");
             let form;
-            if(val==="1"){
+            if(parseInt(val)===1){
                 if(_this.rejectedBills_checkBoxes.length===0){
                     tempTip.show('没有勾选记录');
                     return;
@@ -315,7 +312,7 @@ let vueList=new Vue({
                 form=$('<form action=\"'+exportExcelURL+'\" method="post" target="_blank"></form>');
                 form.append('<input type="hidden" name="ids" value=\''+JSON.stringify(_this.rejectedBills_checkBoxes)+'\'/>');
             }
-            if(val==="2"){
+            if(parseInt(val)===2){
                 if(!confirm("确定要导出当前条件下全部页的结果吗?")){return;}
                 if(total>100000){
                     tempTip.okWindow('当前导出记录超过100000条,将不会导出已完结的记录','知道了')

+ 39 - 27
resources/views/rejected/index.blade.php

@@ -147,33 +147,45 @@
                                         <span class="btn btn-sm" @click="finishAll" style="cursor: pointer"
                                               :class="[rejectedBills_checkBoxes.length>0?'btn-dark':'btn-outline-dark']">完结</span>
                                     @endcan
-                                    <select name="" class="tooltipTarget form-control-sm" style="vertical-align: middle"
-                                            @change="exportExcel" title="导出所有页将会以搜索条件得到的过滤结果,将其全部记录(每一页)导出"
-                                            :class="[rejectedBills_checkBoxes.length>0?'btn-dark':'btn-outline-dark']">
-                                        <option value="">导出Excel</option>
-                                        <option value="1">导出勾选内容</option>
-                                        <option value="2">导出所有页</option>
-                                    </select>
-{{--                                    <span class="dropdown">--}}
-{{--                                        <button class="btn btn-secondary btn-sm form-control-sm dropdown-toggle tooltipTarget":class="[rejectedBills_checkBoxes.length>0?'btn-dark':'']"--}}
-{{--                                                data-toggle="dropdown" title="导出所有页将会以搜索条件得到的过滤结果,将其全部记录(每一页)导出">--}}
-{{--                                            导出Excel--}}
-{{--                                        </button>--}}
-{{--                                        <div class="dropdown-menu">--}}
-{{--                                            <a class="dropdown-item" onclick="">导出勾选内容</a>--}}
-{{--                                            <a class="dropdown-item" @click="exportExcel(2)">导出所有页</a>--}}
-{{--                                        </div>--}}
-{{--                                    </span>--}}
+                                    {{--                                    <select name="" class="tooltipTarget form-control-sm" style="vertical-align: middle"--}}
+                                    {{--                                            @change="exportExcel" title="导出所有页将会以搜索条件得到的过滤结果,将其全部记录(每一页)导出"--}}
+                                    {{--                                            :class="[rejectedBills_checkBoxes.length>0?'btn-dark':'btn-outline-dark']">--}}
+                                    {{--                                        <option value="">导出Excel</option>--}}
+                                    {{--                                        <option value="1">导出勾选内容</option>--}}
+                                    {{--                                        <option value="2">导出所有页</option>--}}
+                                    {{--                                    </select>--}}
+                                    <span class="dropdown">
+                                        <button class="btn btn-outline-dark btn-sm form-control-sm dropdown-toggle tooltipTarget":class="[rejectedBills_checkBoxes.length>0?'btn-dark text-light':'']"
+                                                data-toggle="dropdown" title="导出所有页将会以搜索条件得到的过滤结果,将其全部记录(每一页)导出">
+                                            导出Excel
+                                        </button>
+                                        <div class="dropdown-menu">
+                                            <a class="dropdown-item" @click="exportExcel(1)" href="javascript:">导出勾选内容</a>
+                                            <a class="dropdown-item" @click="exportExcel(2)" href="javascript:">导出所有页</a>
+                                        </div>
+                                    </span>
                                     @can('退货管理-编辑')
-                                        <select name="" class="tooltipTarget form-control-sm" style="vertical-align: middle"
-                                                title="将勾选记录的入库状态设定为是或否,仅对未完结状态的记录有效" @change="setIsLoaded_batch"
-                                                :class="[rejectedBills_checkBoxes.length>0?'btn-dark':'btn-outline-dark']">
-                                            <option value="">修改入库</option>
-                                            <option value="1">设定为是</option>
-                                            <option value="0">设定为否</option>
-                                            <option value="null">无需入库</option>
-                                            <option value="2">待推单</option>
-                                        </select>
+{{--                                        <select name="" class="tooltipTarget form-control-sm" style="vertical-align: middle"--}}
+{{--                                                title="将勾选记录的入库状态设定为是或否,仅对未完结状态的记录有效" @change="setIsLoaded_batch"--}}
+{{--                                                :class="[rejectedBills_checkBoxes.length>0?'btn-dark':'btn-outline-dark']">--}}
+{{--                                            <option value="">修改入库</option>--}}
+{{--                                            <option value="1">设定为是</option>--}}
+{{--                                            <option value="0">设定为否</option>--}}
+{{--                                            <option value="null">无需入库</option>--}}
+{{--                                            <option value="2">待推单</option>--}}
+{{--                                        </select>--}}
+                                        <span class="dropdown">
+                                        <button class="btn btn-outline-dark btn-sm form-control-sm dropdown-toggle tooltipTarget":class="[rejectedBills_checkBoxes.length>0?'btn-dark text-light':'']"
+                                                data-toggle="dropdown" title="将勾选记录的入库状态设定为是或否,仅对未完结状态的记录有效">
+                                            修改入库
+                                        </button>
+                                        <div class="dropdown-menu">
+                                            <a class="dropdown-item" @click="setIsLoaded_batch(1)" href="javascript:">设定为是</a>
+                                            <a class="dropdown-item" @click="setIsLoaded_batch(0)" href="javascript:">设定为否</a>
+                                            <a class="dropdown-item" @click="setIsLoaded_batch('null')" href="javascript:">无需入库</a>
+                                            <a class="dropdown-item" @click="setIsLoaded_batch(2)" href="javascript:">待推单</a>
+                                        </div>
+                                    </span>
                                     @endcan
                                 </td>
                             </tr>
@@ -329,5 +341,5 @@
         let exportExcelOnFilterParamsURL='{{url("rejected/exportExcelOnFilterParams")}}';
         let csrfInput='@csrf';
     </script>
-    <script src="{{asset('js/singles/rejectedIndex200305.js')}}"></script>
+    <script src="{{asset('js/singles/rejectedIndex200310.js')}}"></script>
 @endsection

+ 6 - 8
resources/views/weight/package/create.blade.php

@@ -16,10 +16,11 @@
                     @if(Session::has('successError'))
                         <div class="alert alert-danger h1">{{Session::get('successError')}}</div>
                     @endif
-                    <div class="">
-                        <ul class="nav nav-tabs" >
-                            <li :class="windowStatus.logistic_input ? selectClass : notSelectClass" style="margin-left: 20%" @click="windowSwitchLogistic">快递单号</li>
-                            <li :class="windowStatus.batch_input ? selectClass : notSelectClass" style="margin-left: 20%"  @click="windowSwitchBatch">波次号</li>
+                        <ul class="nav nav-tabs col-8 offset-2" style="transform: scale(0.97)">
+                            <li class="nav-item" @click="windowSwitchLogistic">
+                                <a class="nav-link" :class="[windowStatus.logistic_input ?'active' : '']" href="#">快递单号</a></li>
+                            <li class="nav-item"  @click="windowSwitchBatch">
+                                <a class="nav-link" :class="[windowStatus.batch_input ?'active' : '']" href="#">波次号</a></li>
                         </ul>
                         <div class="" v-if="windowStatus.logistic_input">
                             <div class="form-group row">
@@ -35,7 +36,7 @@
                                 </div>
                             </div>
                         </div>
-                        <div class="text-primary" v-if="windowStatus.batch_input">
+                        <div class="text-danger" v-if="windowStatus.batch_input">
                             <div class="form-group row">
                                 <label for="batch_number" class="col-2 col-form-label text-right">波次号</label>
                                 <div class="col-8">
@@ -49,7 +50,6 @@
                                 </div>
                             </div>
                         </div>
-                    </div>
                     <div class="form-group row">
                         <label for="weight" class="col-2 col-form-label text-right">重量</label>
                         <div class="col-8">
@@ -93,8 +93,6 @@
                 ],
                 paperBox_id:'',
                 windowStatus:{logistic_input:true, batch_input:false},
-                selectClass:'nav-item btn btn-secondary',
-                notSelectClass:'nav-item btn btn-outline-secondary'
             },
             methods:{
                 paperBox_seek:function (e) {

+ 1 - 1
webpack.mix.js

@@ -13,7 +13,7 @@ const mix = require('laravel-mix');
 
 mix.js('resources/js/app.js', 'public/js')
     .sass('resources/sass/app.scss', 'public/css');
-mix.js('resources/js/singles/rejectedIndex.js', 'public/js/singles/rejectedIndex200305.js');
+mix.js('resources/js/singles/rejectedIndex.js', 'public/js/singles/rejectedIndex200310.js');
 mix.copy('resources/sass/fonts/','public/fonts');
 mix.copy('resources/icon','public/icon');
 mix.copy('resources/images','public/images');