Ver código fonte

Merge branch 'master' into waybill_ZD

# Conflicts:
#	app/Jobs/MarkPackageExcepted.php
Zhouzhendong 6 anos atrás
pai
commit
b3c3f027eb

+ 2 - 3
app/Http/Controllers/PackageController.php

@@ -91,12 +91,11 @@ class PackageController extends Controller
         $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 && !$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;

+ 36 - 11
app/Http/Controllers/StoreController.php

@@ -3,6 +3,7 @@
 namespace App\Http\Controllers;
 
 use App\Depository;
+use App\Http\Controllers\Api\thirdPart\flux\StoreController as FStoreController;
 use App\Owner;
 use App\Store;
 use App\StoreItems;
@@ -38,7 +39,7 @@ class StoreController extends Controller
      * Store a newly created resource in storage.
      *
      * @param  \Illuminate\Http\Request  $request
-     * @return \Illuminate\Http\Response
+     * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\Response|\Illuminate\Routing\Redirector
      */
     public function store(Request $request)
     {
@@ -70,16 +71,35 @@ class StoreController extends Controller
             'remark'=>$WMSReflectReceive->NOTES,
         ]);
         $store->save();
-        if ($WMSReflectReceive->skus){
-            foreach ($WMSReflectReceive->skus as $sku){
-                $depository=Depository::where('code',$sku->LOTATT05)->first();
-                if (!$depository){
+
+        $customDepository=(function()use($request){
+            $customDepository=Depository::where('code',$request->input('depository_code'))->first();
+            if($request->input('depository_code')){
+                if (!$customDepository){
                     $depository=new Depository([
-                        'name'=>$sku->LOTATT05,
-                        'code'=>$sku->LOTATT05
+                        'name'=>$request->input('depository_code'),
+                        'code'=>$request->input('depository_code')
                     ]);
                     $depository->save();
                 }
+            }
+            return $customDepository;
+        })();
+
+        if ($WMSReflectReceive->skus){
+            foreach ($WMSReflectReceive->skus as $sku){
+                $depository=(function()use($sku,$customDepository){
+                    if($customDepository)return $customDepository;
+                    $depository=Depository::where('code',$sku->LOTATT05)->first();
+                    if (!$depository){
+                        $depository=new Depository([
+                            'name'=>$sku->LOTATT05,
+                            'code'=>$sku->LOTATT05
+                        ]);
+                        $depository->save();
+                    }
+                    return $depository;
+                })();
                 $storeItem=new StoreItems([
                     'store_id'=>$store->id,
                     'asn_line_code'=>$sku->ASNLINENO,
@@ -94,8 +114,12 @@ class StoreController extends Controller
             }
         }
         $store=Store::with('storeItems')->where('asn_code',$request->input('asn_code'))->first();
-        $storeApi=new \App\Http\Controllers\Api\thirdPart\flux\StoreController();
-        $result=$storeApi->accomplishToWMS($store);
+        $storeApi=new FStoreController();
+        $result=$storeApi->accomplishToWMS($store,[
+            'quality'=>$request->input('quality'),
+            'depository_code'=>$request->input('depository_code'),
+            'follow_code'=>$store['id'],
+            ]);
         if ($result){
             $store->status='已入库';
             $store->save();
@@ -108,7 +132,7 @@ class StoreController extends Controller
                 });
             }
         }
-        //TODO 回传WMS未作测试
+        return redirect('store/fast/create')->with('successTip','成功!');
     }
 
     /**
@@ -159,7 +183,8 @@ class StoreController extends Controller
     public function validator(Request $request){
         $validator=Validator::make($request->input(),[
             'asn_code'=>['required','unique:stores,asn_code'],
-            'quality'=>['required']
+            'quality'=>['required'],
+            'depository_code'=>['nullable','string'],
         ],[
             'required'=>':attribute 为必填项',
             'unique'=>':attribute 已存在',

+ 24 - 158
app/Http/Controllers/api/thirdPart/flux/ReceiveController.php

@@ -26,19 +26,29 @@ class ReceiveController extends Controller
      */
     public function new_(Request $request)
     {
-        $errors=$this->validatorForNew($request->all())->errors();
-        if(count($errors)>0){
-            $this->log(__METHOD__, 'error_body' . __FUNCTION__, json_encode($request->getContent()));
-            (new Controller())->log(__METHOD__,'error_'.__FUNCTION__,'fields wrong, see Errors report please.'.'|'.json_encode($request).'|'.json_encode($errors));
-            return response()->json(['response'=>['flag'=>'W','message'=>'fields wrong, see Errors report please.',
-                'errors'=>$errors]])
-                ->setEncodingOptions(JSON_UNESCAPED_UNICODE);
+
+        ini_set('max_execution_time',2500);
+        ini_set('memory_limit','1526M');
+        $isNotAHugeList=(function()use(&$request){
+            $requestArr=$request->input('request');
+            return $requestArr&&isset($requestArr[0])&&isset($requestArr[0]['SKU_LIST'])
+                &&count($request->input('request')[0]['SKU_LIST'])<=100;
+        })();
+        if($isNotAHugeList){
+            $errors=$this->validatorForNew($request->all())->errors();
+            if(count($errors)>0){
+                $this->log(__METHOD__, 'error_body' . __FUNCTION__, json_encode($request->getContent()));
+                (new Controller())->log(__METHOD__,'error_'.__FUNCTION__,'fields wrong, see Errors report please.'.'|'.json_encode($request).'|'.json_encode($errors));
+                return response()->json(['response'=>['flag'=>'W','message'=>'fields wrong, see Errors report please.',
+                    'errors'=>$errors]])
+                    ->setEncodingOptions(JSON_UNESCAPED_UNICODE);
+            }
         }
         $receiveInputs=$request->input('request');
         foreach ($receiveInputs as $receiveInput){
             $isRepeated=WMSReflectReceive::where('ASNNO',$receiveInput['ASNNO'])->first();
             if($isRepeated){
-                (new Controller())->log(__METHOD__,'error_'.__FUNCTION__,'ASNNO重复'.'|'.json_encode($request).'|'.json_encode($errors));
+                (new Controller())->log(__METHOD__,'error_'.__FUNCTION__,'ASNNO重复'.'|'.json_encode($request));
                 return response()->json(['response'=>['flag'=>'N','code'=>'6666','message'=>'ASNNO重复']])
                     ->setEncodingOptions(JSON_UNESCAPED_UNICODE);
             }
@@ -50,7 +60,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));
         }
         return response()->json(['response'=>['flag'=>'Y','code'=>'0000','message'=>'正确接收']])
             ->setEncodingOptions(JSON_UNESCAPED_UNICODE);
@@ -65,7 +76,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'],
@@ -118,6 +129,7 @@ class ReceiveController extends Controller
      */
     static public function accomplishToWMS(RejectedBill $rejectedBill)
     {
+        ini_set('max_execution_time',2500);
         $bill=$rejectedBill;
         $wmsReceiveds=WMSReflectReceive::where('ASNREFERENCE3',$rejectedBill['logistic_number_return'])
             ->where('is_uploaded',0)->get();
@@ -197,7 +209,7 @@ class ReceiveController extends Controller
 //                                    \"LOTATT05\": \"{$sku['LOTATT05']}\",
 //                                    \"UNIQUE_CODE\": \"\"
 //                                }
-                            "]
+                        "]
                         }
                     ";
                     $skuStrList[]=$skuStr;
@@ -258,151 +270,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;
-    }
+
 }

+ 34 - 60
app/Http/Controllers/api/thirdPart/flux/StoreController.php

@@ -7,37 +7,28 @@ use App\RejectedBillItem;
 use App\Store;
 use App\WMSReflectReceive;
 use App\WMSReflectReceiveSku;
-use Illuminate\Http\Request;
-use Illuminate\Support\Facades\Validator;
 use Zttp\Zttp;
 
 class StoreController extends Controller
 {
 
+
     /**
      * 入库回传给WMS
      * @param Store $store
      * @return bool
      */
-    public function accomplishToWMS(Store $store)
+    public function accomplishToWMS(Store $store,array $inputs)
     {
-        $wmsReceiveds=WMSReflectReceive::where('ASNREFERENCE3',$store['asn_code'])
-            ->where('is_uploaded',0)->get();
+        $METHOD=__METHOD__;
+        $FUNCTION=__FUNCTION__;
+        $wmsReceiveds=WMSReflectReceive::where('ASNNO',$store['asn_code'])->get();
         if($wmsReceiveds->isEmpty()){
-            (new Controller())->log(__METHOD__,'error_'.__FUNCTION__,'没有WMS入库单');
+            (new Controller())->log(__METHOD__,'error_'.__FUNCTION__,'没有本地WMS入库单');
             return false;
         }
-        $items=$store->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(&$store,&$amountsItem,$items,&$success){
-            if(!$store && $store['is_loaded']!=0)return;
+        $wmsReceiveds->each(function ($wmsReceived)use(&$store,&$amountsItem,&$success,&$inputs,$METHOD,$FUNCTION){
 
             $wmsSkus=$wmsReceived->skus()->get();
             $orderNumberCode=$wmsReceived['ASNREFERENCE1']??$store['order_number'];
@@ -50,46 +41,29 @@ class StoreController extends Controller
             })();
             $skuStrList=[];
             $customerCode=$store->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="
+            $wmsSkus->each(function(WMSReflectReceiveSku $sku)use(&$skuList,&$amountsItem,&$amountsSku,&$skuStrList,$wmsReceived,$customerCode,&$inputs) {
+                $STATUS = 'ZP';
+                if(isset($inputs['quality'])&&$inputs['quality']
+                    &&$inputs['quality']!='正品') {
+                    $STATUS = 'CC';
+                }
+                $repositoryCode=$sku['LOTATT05'];
+                if(isset($inputs['depository_code'])&&$inputs['depository_code']){
+                    $repositoryCode=$inputs['depository_code'];
+                }
+                $skuStr = "
                         {
                             \"ORDERNUMBERCODE\": \"{$wmsReceived['ASNNO']}\",
                             \"ASNLINENO\": \"{$sku['ASNLINENO']}\",
                             \"SKUCODE\": \"{$sku['SKU']}\",
-                            \"QUANTITY\": \"{$uploadingAmount}\",
+                            \"QUANTITY\": \"{$sku['EXPECTEDQTY_EACH']}\",
                             \"LOTATT04\": \"{$sku['LOTATT04']}\",
-                            \"LOTATT05\": \"{$sku['LOTATT05']}\",
+                            \"LOTATT05\": \"{$repositoryCode}\",
                             \"STATUS\": \"{$STATUS}\",
-                            \"PRODUCTION DATE\": \"{$item['made_at']}\",
-                            \"EXPIRATION DATE\": \"{$item['validity_at']}\",
-                            \"USERDEFINE1\": \"{$customerCode}{$STATUS_code}\",
+                            \"USERDEFINE1\": \"{$inputs['follow_code']}\",
                             \"USERDEFINE2\": \"\",
                             \"USERDEFINE3\": \"\",
-                            \"UNIQUE_CODE_LIST\": [".
+                            \"UNIQUE_CODE_LIST\": [" .
 //                                {
 //                                    \"ORDERNUMBERCODE\": \"{$wmsReceived['ASNNO']}\",
 //                                    \"SKUCODE\": \"{$sku['SKU']}\",
@@ -99,22 +73,20 @@ class StoreController extends Controller
 //                                    \"LOTATT05\": \"{$sku['LOTATT05']}\",
 //                                    \"UNIQUE_CODE\": \"\"
 //                                }
-                            "]
+                    "]
                         }
                     ";
-                    $skuStrList[]=$skuStr;
-                });
+                $skuStrList[] = $skuStr;
             });
-            if(count($skuStrList)==0)return;
             $skuStrList = implode(',',$skuStrList);
             $json="
                 {
                     \"request\": [
                         {
                             \"ORDERNUMBERCODE\": \"{$wmsReceived['ASNNO']}\",
-                            \"CUSTOMERID\": \"{$customerCode}\",
+                            \"CUSTOMERID\": \"{$wmsReceived['CUSTOMERID']}\",
                             \"ASNTYPE\": \"{$wmsReceived['ASNTYPE']}\",
-                            \"ASNREFERENCE1\": \"{$orderNumberCode}\",
+                            \"ASNREFERENCE1\": \"{$wmsReceived['ASNREFERENCE1']}\",
                             \"ADDWHO\": \"WCS\",
                             \"USERDEFINE1\": \"\",
                             \"USERDEFINE2\": \"\",
@@ -130,30 +102,32 @@ class StoreController extends Controller
             $response = Zttp::post($url, $sendingJson);
             $noIssues=true;
             $json = $response->json();
-            (new Controller())->log(__METHOD__,__FUNCTION__,$response->body().'|'.json_encode($sendingJson));
+            (new Controller())->log($METHOD,$FUNCTION,$response->body());
             if(!$json||!isset($json['Response'])||!$json['Response']['return']['returnFlag']=='1'){
                 $noIssues=false;
             }
             if($json&&isset($json['Response'])){
                 if($json['Response']['return']['returnFlag']=='2'){
+                    (new Controller())->log($METHOD,'error_'.$FUNCTION,$response->body());
                     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));
+                    (new Controller())->log($METHOD,'error_'.$FUNCTION,$response->body());
                     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));
+                    (new Controller())->log($METHOD,'error_'.$FUNCTION,$response->body());
                     return true;
                 }
             }
             if($noIssues&&$json['Response']['return']['returnFlag']=='1'){
                 $wmsReceived['is_uploaded']=1;
                 $wmsReceived->save();
+                (new Controller())->log($METHOD, 'success_' . $FUNCTION, $response->body() );
                 return true;
-            }else{
-                $success=false;
-                (new Controller())->log(__METHOD__,'error_'.__FUNCTION__,$response->body().'|'.json_encode($sendingJson));
+            }else {
+                $success = false;
+                (new Controller())->log($METHOD, 'error_' . $FUNCTION, $response->body());
             }
         });
 

+ 2 - 2
app/Jobs/MarkPackageExcepted.php

@@ -38,7 +38,7 @@ class MarkPackageExcepted implements ShouldQueue
             $controller->log(__METHOD__,'error_'.__FUNCTION__,"队列传递的package为空",null);
             return;
         }
-        $pickedPackage=Package::where('id',$this->package->id)->select('id','delivery_number','measuring_machine_id','status')->first();
+        $pickedPackage=Package::where('id',$this->package->id)->first();
         if(!$pickedPackage){
             $controller->log(__METHOD__,'error_'.__FUNCTION__,"队列查询的package为空",null);
             return;
@@ -47,7 +47,7 @@ class MarkPackageExcepted implements ShouldQueue
             $pickedPackage->status="下发异常";
             $pickedPackage->save();
         }
-        if (!$pickedPackage->measuring_machine_id){
+        if (!$pickedPackage->weight){
             $pickedPackage->status="测量异常";
             $pickedPackage->save();
         }

+ 7 - 0
app/Providers/AppServiceProvider.php

@@ -2,6 +2,9 @@
 
 namespace App\Providers;
 
+use App\Http\Controllers\Controller;
+use Illuminate\Queue\Events\JobFailed;
+use Illuminate\Support\Facades\Queue;
 use Illuminate\Support\Facades\Schema;
 use Illuminate\Support\ServiceProvider;
 
@@ -26,5 +29,9 @@ class AppServiceProvider extends ServiceProvider
     {
         //
         Schema::defaultStringLength(191);
+        Queue::failing(function (JobFailed $event) {
+            (new Controller())->log(__METHOD__,'EventError_',"$event -> connectionName:{$event->connectionName},$event-> job:{$event->job},
+                $event-> exception:{$event->exception}");
+        });
     }
 }

+ 1 - 1
app/Warehouse.php

@@ -6,5 +6,5 @@ use Illuminate\Database\Eloquent\Model;
 
 class Warehouse extends Model
 {
-    //
+    protected $fillable=['name','code'];
 }

+ 1 - 1
database/migrations/2020_03_09_172120_create_store_items_table.php

@@ -16,7 +16,7 @@ class CreateStoreItemsTable extends Migration
         Schema::create('store_items', function (Blueprint $table) {
             $table->bigIncrements('id');
             $table->bigInteger('store_id')->index()->comment('外键入库表');
-            $table->string('asn_line_code')->nullable()->unique()->comment('来自WMS的ASN行号,唯一');
+            $table->string('asn_line_code')->nullable()->comment('来自WMS的ASN行号,唯一');
             $table->string('name')->nullable();
             $table->string('sku')->nullable()->index();
             $table->string('barcode')->nullable()->index();

+ 34 - 0
database/migrations/2020_03_13_113512_change_store_items_line_code.php

@@ -0,0 +1,34 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class ChangeStoreItemsLineCode extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::getConnection()->getDoctrineSchemaManager()->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string');
+        Schema::table('store_items', function (Blueprint $table) {
+            $table->string('asn_line_code')->nullable()->comment('来自WMS的ASN行号')->change();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::getConnection()->getDoctrineSchemaManager()->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string');
+        Schema::table('store_items', function (Blueprint $table) {
+            $table->string('asn_line_code')->nullable()->unique()->comment('来自WMS的ASN行号,唯一')->change();
+        });
+    }
+}

+ 3 - 6
public/js/singles/rejectedIndex.js

@@ -434,13 +434,10 @@ var vueList = new Vue({
         console.log(e);
       });
     },
-    exportExcel: function exportExcel(e) {
+    exportExcel: function exportExcel(val) {
       var _this = this;
-
-      var val = $(e.target).val();
-      $(e.target).val("");
       var form;
-
+        alert(val);
       if (val === "1") {
         if (_this.rejectedBills_checkBoxes.length === 0) {
           tempTip.show('没有勾选记录');
@@ -537,4 +534,4 @@ module.exports = __webpack_require__(/*! D:\Reald\desktop\BsWAS\src\resources\js
 
 /***/ })
 
-/******/ });
+/******/ });

+ 1 - 1
public/mix-manifest.json

@@ -1,6 +1,6 @@
 {
     "/js/app.js": "/js/app.js",
     "/css/app.css": "/css/app.css",
-    "/js/singles/rejectedIndex200305.js": "/js/singles/rejectedIndex200305.js",
+    "/js/singles/rejectedIndex200310.js": "/js/singles/rejectedIndex200310.js",
     "/favicon.ico": "/favicon.ico"
 }

+ 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条,将不会导出已完结的记录','知道了')

+ 179 - 157
resources/views/rejected/index.blade.php

@@ -13,166 +13,188 @@
                 @endif
 
 
-                    <div class="col-12" style="background: #fff;">
-                        <div class="row">
-                            <div class="col" v-if="isBeingFilterConditions">
-                                <label for="">
-                                    <a :href="'{{url('rejected').'?paginate='}}'+filterParams.paginate"><span class="btn btn-warning text-dark">清除过滤条件</span></a>
-                                </label>
-                            </div>
-                            <table class="table table-sm table-bordered m-0">
-                                <tr>
-                                    <td>
-                                        <span class="text-muted">每页显示记录:</span>
-                                    </td>
-                                    <td colspan="9">
-                                        <select name="" id="setPaginate" class="tooltipTarget form-control-sm" style="vertical-align: middle"
-                                                @change="setPaginate" v-model="filterParams.paginate">
-                                            <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>
-                                    </td>
-                                </tr>
-                                <tr>
-                                    <td class="text-muted">按条件过滤:</td>
-                                    <td colspan="2">
-                                        <label for="">时间:</label>
-                                        <input type="date" name="created_at_start" class="form-control-sm tooltipTarget" style="width:140px"
-                                               :class="filterParams.created_at_start?'bg-warning':''" v-model="filterParams.created_at_start"
-                                               @keypress="created_at_startEntering" @change="created_at_startChange" title="选择显示指定日期的起始时间">
-                                    </td>
-                                    <td>
-                                        <label for="">客户:</label>
-                                        <input type="text" class="form-control-sm tooltipTarget" placeholder="查找"
-                                               style="width:70px" @input="locateOwner" @keypress="owner_idEntering"
-                                               title="输入关键词快速定位下拉列表,回车确定">
-                                        <select name="owner_id" id="owner_id" class="form-control-sm tooltipTarget"
-                                                :class="filterParams.owner_id?'bg-warning':''" v-model="filterParams.owner_id"
-                                                title="选择要显示的客户" @change="owner_idChange">
-                                            <option value="" selected>全部客户</option>
-                                            <option v-for="owner in owners" :value="owner.id">@{{ owner.name }}</option>
-                                        </select>
-                                    </td>
-                                    <td>
-                                        <label for="">订单号:</label>
-                                        <input type="text" class="form-control-sm tooltipTarget" placeholder="搜索订单号" name="order_number"
-                                               :class="filterParams.order_number?'bg-warning':''" v-model="filterParams.order_number"
-                                               @input="order_numberEntering" @keypress="submitFilterOnEnter" title="15天以内的支持模糊搜索,回车提交">
-                                    </td>
-                                    <td>
-                                        <label for="">退回单号:</label>
-                                        <input type="text" class="form-control-sm tooltipTarget" placeholder="搜索退回单号" name="logistic_number_return"
-                                               :class="filterParams.logistic_number_return?'bg-warning':''"
-                                               @input="logistic_number_returnEntering" @keypress="submitFilterOnEnter" title="15天以内的支持模糊搜索,回车提交">
-                                    </td>
-                                    <td>
-                                        <label for="">原单单号:</label>
-                                        <input type="text" class="form-control-sm tooltipTarget" placeholder="搜索原单单号" name="logistic_number"
-                                               :class="filterParams.logistic_number?'bg-warning':''"
-                                               @input="logistic_numberEntering" @keypress="submitFilterOnEnter" title="15天以内的支持模糊搜索,回车提交">
-                                    </td>
-                                    <td>
-                                        <label for="">审核:</label>
-                                        <select name="is_checked" class="form-control-sm" @change="is_checkedChange"
-                                                :class="filterParams.is_checked?'bg-warning':''">
-                                            <option value=""></option>
-                                            <option value="1">已审核</option>
-                                            <option value="0">未审核</option>
-                                        </select>
-                                    </td>
-                                    <td width="16%"></td>
-                                </tr>
-                                <tr>
-                                    <td ></td>
-                                    <td colspan="2">
-                                        <label for="">&nbsp;  &nbsp;&nbsp;</label>
-                                        <input type="date" name="created_at_end" class="form-control-sm tooltipTarget" style="width:140px"
-                                               :class="filterParams.created_at_end?'bg-warning':''"
-                                               @keypress="created_at_endEntering" @change="created_at_endChange" title="选择显示指定日期的结束时间">
-                                    </td>
-                                    <td>
-                                        <label for="">商品条码:</label>
-                                        <input type="text" class="form-control-sm tooltipTarget" placeholder="包含该商品的退单" name="barcode_goods"
-                                               :class="filterParams.barcode_goods?'bg-warning':''" title="可模糊匹配右边未填完的部分,按回车提交"
-                                               @input="barcode_goodsEntering" @keypress="submitFilterOnEnter">
-                                    </td>
-                                    <td>
-                                        <label for="">是否正品:</label>
-                                        <select name="id_quality_label" id="id_quality_label" class="form-control-sm tooltipTarget"
-                                                :class="filterParams.id_quality_label?'bg-warning':''"
-                                                title="正品仅显示全部是正品的退单,但残次显示的是包含有残次的退单" @change="id_quality_labelChange">
-                                            <option value="" selected></option>
-                                            <option v-for="qualityLabel in qualityLabels" :value="qualityLabel.id">@{{ qualityLabel.name }}</option>
-                                        </select>
-                                    </td>
-                                    <td>
-                                        <label for="">寄件人手机:</label>
-                                        <input type="text" class="form-control-sm tooltipTarget" name="mobile_sender"
-                                               :class="filterParams.mobile_sender?'bg-warning':''"
-                                               @input="mobile_senderEntering" @keypress="submitFilterOnEnter" title="输入完成敲回车提交">
-                                    </td>
-                                    <td>
-                                        <label for="">审核批次号:</label>
-                                        <input type="text" class="form-control-sm tooltipTarget" name="checked_numbers"
-                                               :class="filterParams.checked_numbers?'bg-warning':''"
-                                               @input="checked_numbersEntering" @keypress="submitFilterOnEnter" title="支持右位留空的模糊搜索">
-                                    </td>
-                                    <td>
-                                        <label for="">是否入库:</label>
-                                        <select name="is_loaded" id="is_loaded" class="form-control-sm"
-                                                :class="filterParams.is_loaded?'bg-warning':''"
-                                                title="" @change="is_loadedChange">
-                                            <option value="" selected></option>
-                                            <option value="1">是</option>
-                                            <option value="0">否</option>
-                                            <option value="null">无需入库</option>
-                                            <option value="2">待推单</option>
-                                        </select>
-                                    </td>
-                                    <td></td>
-                                </tr>
-                                <tr>
-                                    <td>
-                                        <span class="text-muted">操作选定记录:</span>
-                                    </td>
-                                    <td colspan="9">
-                                        @can('退货管理-审核')
-                                            <span class="btn btn-sm" @click="checkAll" style="cursor: pointer"
-                                                  :class="[rejectedBills_checkBoxes.length>0?'btn-dark':'btn-outline-dark']">审核</span>
-                                        @endcan
-                                        @can('退货管理-编辑')
-                                            <span class="btn btn-sm" @click="finishAll" style="cursor: pointer"
-                                                  :class="[rejectedBills_checkBoxes.length>0?'btn-dark':'btn-outline-dark']">完结</span>
-                                        @endcan
-                                        <select name="" id="setIsLoaded_batch" 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>
-                                        @can('退货管理-编辑')
-                                            <select name="" id="setIsLoaded_batch" 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>
-                                        @endcan
-                                    </td>
-                                </tr>
-                            </table>
+                <div class="col-12" style="background: #fff;">
+                    <div class="row">
+                        <div class="col" v-if="isBeingFilterConditions">
+                            <label for="">
+                                <a :href="'{{url('rejected').'?paginate='}}'+filterParams.paginate"><span class="btn btn-warning text-dark">清除过滤条件</span></a>
+                            </label>
                         </div>
+                        <table class="table table-sm table-bordered m-0">
+                            <tr>
+                                <td>
+                                    <span class="text-muted">每页显示记录:</span>
+                                </td>
+                                <td colspan="9">
+                                    <select name="" id="setPaginate" class="tooltipTarget form-control-sm" style="vertical-align: middle"
+                                            @change="setPaginate" v-model="filterParams.paginate">
+                                        <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>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td class="text-muted">按条件过滤:</td>
+                                <td colspan="2">
+                                    <label for="">时间:</label>
+                                    <input type="date" name="created_at_start" class="form-control-sm tooltipTarget" style="width:140px"
+                                           :class="filterParams.created_at_start?'bg-warning':''" v-model="filterParams.created_at_start"
+                                           @keypress="created_at_startEntering" @change="created_at_startChange" title="选择显示指定日期的起始时间">
+                                </td>
+                                <td>
+                                    <label for="">客户:</label>
+                                    <input type="text" class="form-control-sm tooltipTarget" placeholder="查找"
+                                           style="width:70px" @input="locateOwner" @keypress="owner_idEntering"
+                                           title="输入关键词快速定位下拉列表,回车确定">
+                                    <select name="owner_id" id="owner_id" class="form-control-sm tooltipTarget"
+                                            :class="filterParams.owner_id?'bg-warning':''" v-model="filterParams.owner_id"
+                                            title="选择要显示的客户" @change="owner_idChange">
+                                        <option value="" selected>全部客户</option>
+                                        <option v-for="owner in owners" :value="owner.id">@{{ owner.name }}</option>
+                                    </select>
+                                </td>
+                                <td>
+                                    <label for="">订单号:</label>
+                                    <input type="text" class="form-control-sm tooltipTarget" placeholder="搜索订单号" name="order_number"
+                                           :class="filterParams.order_number?'bg-warning':''" v-model="filterParams.order_number"
+                                           @input="order_numberEntering" @keypress="submitFilterOnEnter" title="15天以内的支持模糊搜索,回车提交">
+                                </td>
+                                <td>
+                                    <label for="">退回单号:</label>
+                                    <input type="text" class="form-control-sm tooltipTarget" placeholder="搜索退回单号" name="logistic_number_return"
+                                           :class="filterParams.logistic_number_return?'bg-warning':''"
+                                           @input="logistic_number_returnEntering" @keypress="submitFilterOnEnter" title="15天以内的支持模糊搜索,回车提交">
+                                </td>
+                                <td>
+                                    <label for="">原单单号:</label>
+                                    <input type="text" class="form-control-sm tooltipTarget" placeholder="搜索原单单号" name="logistic_number"
+                                           :class="filterParams.logistic_number?'bg-warning':''"
+                                           @input="logistic_numberEntering" @keypress="submitFilterOnEnter" title="15天以内的支持模糊搜索,回车提交">
+                                </td>
+                                <td>
+                                    <label for="">审核:</label>
+                                    <select name="is_checked" class="form-control-sm" @change="is_checkedChange"
+                                            :class="filterParams.is_checked?'bg-warning':''">
+                                        <option value=""></option>
+                                        <option value="1">已审核</option>
+                                        <option value="0">未审核</option>
+                                    </select>
+                                </td>
+                                <td width="16%"></td>
+                            </tr>
+                            <tr>
+                                <td ></td>
+                                <td colspan="2">
+                                    <label for="">&nbsp;  &nbsp;&nbsp;</label>
+                                    <input type="date" name="created_at_end" class="form-control-sm tooltipTarget" style="width:140px"
+                                           :class="filterParams.created_at_end?'bg-warning':''"
+                                           @keypress="created_at_endEntering" @change="created_at_endChange" title="选择显示指定日期的结束时间">
+                                </td>
+                                <td>
+                                    <label for="">商品条码:</label>
+                                    <input type="text" class="form-control-sm tooltipTarget" placeholder="包含该商品的退单" name="barcode_goods"
+                                           :class="filterParams.barcode_goods?'bg-warning':''" title="可模糊匹配右边未填完的部分,按回车提交"
+                                           @input="barcode_goodsEntering" @keypress="submitFilterOnEnter">
+                                </td>
+                                <td>
+                                    <label for="">是否正品:</label>
+                                    <select name="id_quality_label" id="id_quality_label" class="form-control-sm tooltipTarget"
+                                            :class="filterParams.id_quality_label?'bg-warning':''"
+                                            title="正品仅显示全部是正品的退单,但残次显示的是包含有残次的退单" @change="id_quality_labelChange">
+                                        <option value="" selected></option>
+                                        <option v-for="qualityLabel in qualityLabels" :value="qualityLabel.id">@{{ qualityLabel.name }}</option>
+                                    </select>
+                                </td>
+                                <td>
+                                    <label for="">寄件人手机:</label>
+                                    <input type="text" class="form-control-sm tooltipTarget" name="mobile_sender"
+                                           :class="filterParams.mobile_sender?'bg-warning':''"
+                                           @input="mobile_senderEntering" @keypress="submitFilterOnEnter" title="输入完成敲回车提交">
+                                </td>
+                                <td>
+                                    <label for="">审核批次号:</label>
+                                    <input type="text" class="form-control-sm tooltipTarget" name="checked_numbers"
+                                           :class="filterParams.checked_numbers?'bg-warning':''"
+                                           @input="checked_numbersEntering" @keypress="submitFilterOnEnter" title="支持右位留空的模糊搜索">
+                                </td>
+                                <td>
+                                    <label for="">是否入库:</label>
+                                    <select name="is_loaded" id="is_loaded" class="form-control-sm"
+                                            :class="filterParams.is_loaded?'bg-warning':''"
+                                            title="" @change="is_loadedChange">
+                                        <option value="" selected></option>
+                                        <option value="1">是</option>
+                                        <option value="0">否</option>
+                                        <option value="null">无需入库</option>
+                                        <option value="2">待推单</option>
+                                    </select>
+                                </td>
+                                <td></td>
+                            </tr>
+                            <tr>
+                                <td>
+                                    <span class="text-muted">操作选定记录:</span>
+                                </td>
+                                <td colspan="9">
+                                    @can('退货管理-审核')
+                                        <span class="btn btn-sm" @click="checkAll" style="cursor: pointer"
+                                              :class="[rejectedBills_checkBoxes.length>0?'btn-dark':'btn-outline-dark']">审核</span>
+                                    @endcan
+                                    @can('退货管理-编辑')
+                                        <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-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>--}}
+                                        <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>
+                        </table>
                     </div>
+                </div>
 
 
-                    <table class="table table-striped table-sm table-bordered table-hover mt-3" style="background: #fff;">
+                <table class="table table-striped table-sm table-bordered table-hover mt-3" style="background: #fff;">
                     <tr>
                         <th>
                             <input type="checkbox" class="form-control-sm tooltipTarget" title="全选"
@@ -319,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

+ 13 - 1
resources/views/store/fast/create.blade.php

@@ -29,7 +29,7 @@
                             </div>
                         </div>
                         <div class="form-group row">
-                            <label for="quality" class="col-2 col-form-label text-right">货物类型</label>
+                            <label for="quality" class="col-2 col-form-label text-right">质量</label>
                             <div class="col-8 form-inline">
                                 <select name="quality" class="form-control @error('quality') is-invalid @enderror"  style="width: 30%;">
                                     <option value="正品">正品</option>
@@ -37,6 +37,18 @@
                                 </select>
                             </div>
                         </div>
+                        <div class="form-group row">
+                            <label for="quality" class="col-2 col-form-label text-right">属性仓编码</label>
+                            <div class="col-8 form-inline">
+                                <input type="text" class="form-control @error('depository_code') is-invalid @enderror"
+                                       name="depository_code" autocomplete="off" value="{{ old('depository_code')}}" placeholder="如无需修改请留空">
+                                @error('asn_code')
+                                <span class="invalid-feedback" role="alert">
+                                        <strong>{{ $errors->first('depository_code') }}</strong>
+                                </span>
+                                @enderror
+                            </div>
+                        </div>
                     </div>
                     <div class="form-group row">
                         <div class="col-8 offset-2">

+ 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) {

+ 35 - 33
resources/views/weight/package/statistics.blade.php

@@ -18,47 +18,50 @@
                                     </div></td>
                             </tr>
                             <tr >
-                                <td rowspan="2" class="">
-                                    <div class="d-flex" style="height: 100px">
+                                <td rowspan="2" class="" style=" width: 150px">
+                                    <div class="d-flex" style="height: 100px;">
                                         <span class="text-muted align-items-center d-flex">根据条件过滤:</span>
                                     </div>
                                 </td>
                                 <td>
-                                    <div class="form-inline" style="height: 100px">
-                                        <label class="align-items-center d-flex">选择货主:</label>
+                                    <div class="form-inline pl-3" style="height: 100px">
+                                        <div class="align-items-center">
+                                            <div class="text-right">货主:</div>
+                                            <p>
+                                                <input type="text" style="width: 100px;opacity: 0.6" class="form-control-sm tooltipTarget" placeholder="定位货主"
+                                                       @input="owner_seek"
+                                                       title="输入关键词快速定位下拉列表">
+                                            </p>
+                                        </div>
+
 
-                                        <div style="max-height: 90px;width:100px;overflow-y: scroll;border: solid 1px #ddd;border-radius:5px;opacity:0.5;text-align: center;transform:scale(0.9)"  v-if="ownersCopy.length>0">
-                                            <ul class="list-group" id="seek" onselectstart="return false;">
-                                                <li  title="双击添加货主"    v-for="ownerCopy in ownersCopy" :id="ownerCopy.name"
-                                                     @dblclick="selectedOwner(ownerCopy)" :style="ownerCopy.style ? selectedOwnerStyle :''" style="list-style: none"><a :name="ownerCopy.name">@{{ ownerCopy.name }}</a></li>
+                                        <div style="max-height: 90px; overflow-y: scroll;border: solid 1px #ddd;border-radius:5px;opacity:0.5;text-align: center;transform:scale(0.9)"  v-if="ownersCopy.length>0">
+                                            <ul class="list-group tooltipTarget" id="seek" onselectstart="return false;">
+                                                <li  title="击添加货主"    v-for="ownerCopy in ownersCopy" :id="ownerCopy.name" class="list-group-item list-group-item-action pt-0 pb-0"
+                                                     @click="selectedOwner(ownerCopy)" :class="ownerCopy.style ? 'active' :''"><span style="cursor: default;" :name="ownerCopy.name">@{{ ownerCopy.name }}</span></li>
                                             </ul>
                                             <input hidden name="owner_id" :value="selectedOwners">
                                         </div>
-                                        <div class="align-items-center d-flex">
-                                            <label>定位:</label>
-                                            <input type="text" style="width: 80px" class="form-control-sm tooltipTarget" placeholder="查找"
-                                                  @input="owner_seek"
-                                                  title="输入关键词快速定位下拉列表,回车确定">
-                                        </div>
                                     </div>
                                 </td>
                                 <td >
-                                    <div class="form-inline" style="height: 100px">
-                                        <label class="align-items-center d-flex">选择物流公司:</label>
+                                    <div class="form-inline pl-3" style="height: 100px">
+                                        <div class="align-items-center">
+                                            <div class="text-right">物流公司:</div>
+                                            <p>
+                                                <input type="text" style="width: 100px;opacity: 0.6" class="form-control-sm tooltipTarget" placeholder="定位物流公司"
+                                                       @input="logistic_seek"
+                                                       title="输入关键词快速定位下拉列表">
+                                            </p>
+                                        </div>
                                         <div style="max-height: 90px;overflow-y: scroll;border: solid 1px #ddd;border-radius:5px;opacity:0.5;text-align: center;transform:scale(0.9)"  v-if="logisticsCopy.length>0">
-                                            <ul class="list-group" onselectstart="return false;">
-                                                <li  title="双击添加物流公司"   v-for="logisticCopy in logisticsCopy"
-                                                     @dblclick="selectedLogistic(logisticCopy)" :style="logisticCopy.style ? selectedOwnerStyle :''" style="list-style: none">
-                                                    <a :name="logisticCopy.name">@{{ logisticCopy.name }}</a></li>
+                                            <ul class="list-group tooltipTarget" onselectstart="return false;">
+                                                <li  title="击添加物流公司"   v-for="logisticCopy in logisticsCopy" class=" list-group-item list-group-item-action pt-0 pb-0"
+                                                     @click="selectedLogistic(logisticCopy)" :class="logisticCopy.style ? 'active' :''" >
+                                                    <span style="cursor: default;" :name="logisticCopy.name">@{{ logisticCopy.name }}</span></li>
                                             </ul>
                                             <input hidden name="logistic_id" :value="selectedLogistics">
                                         </div>
-                                        <div class="align-items-center d-flex">
-                                            <label>定位:</label>
-                                            <input type="text" style="width: 80px" class="form-control-sm tooltipTarget" placeholder="查找"
-                                                   @input="logistic_seek"
-                                                   title="输入关键词快速定位下拉列表,回车确定">
-                                        </div>
                                     </div>
                                 </td>
                                 <td >
@@ -69,7 +72,7 @@
                                             <input style="width: 150px"  name="date_end" type="date" v-model="filterData.date_end" class="form-control-sm">
                                         </div>
                                         <div class="m-auto d-flex">
-                                            <button class="btn btn-outline-dark">提交</button>
+                                            <button class="btn btn-primary">提交</button>
                                         </div>
                                     </div>
                                 </td>
@@ -82,16 +85,16 @@
                 </div>
                 <div class="">
                     <table class="table table-striped table-sm text-nowrap table-hover">
-                        <tr >
+                        <tr>
                             <th>货主</th>
-                            <th v-for="logisticCopy in logisticsCopy">@{{ logisticCopy.name }}</th>
                             <th>总计</th>
+                            <th v-for="logisticCopy in logisticsCopy">@{{ logisticCopy.name }}</th>
                         </tr>
                         <tr v-for="ownerModel in ownersModel">
-                            <th>@{{ ownerModel.name }}</th>
-                            <td v-for="logisticCopy in logisticsCopy"><p v-if="ownerModel.logistics[logisticCopy.name]">@{{ ownerModel.logistics[logisticCopy.name] }}</p>
-                                <p v-else>0</p></td>
+                            <th class="text-muted">@{{ ownerModel.name }}</th>
                             <td><p v-if="ownerModel.sum">@{{ ownerModel.sum }}</p><p v-else>0</p></td>
+                            <td class="text-muted" v-for="logisticCopy in logisticsCopy"><p v-if="ownerModel.logistics[logisticCopy.name]">@{{ ownerModel.logistics[logisticCopy.name] }}</p>
+                                <p v-else>0</p></td>
                         </tr>
                     </table>
                 </div>
@@ -135,7 +138,6 @@
                     {date_start:'',date_end:''},
                 selectedOwners:[],
                 selectedLogistics:[],
-                selectedOwnerStyle:'background-color: #a1cbef',
             },
             computed:{
                 isBeingFilterConditions:function(){

+ 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');