Przeglądaj źródła

包裹跳过WMS接口的逻辑和BUG修复

LD 5 lat temu
rodzic
commit
0fa1d19af0

+ 5 - 0
app/Http/Controllers/Controller.php

@@ -17,6 +17,11 @@ class Controller extends BaseController
 {
     use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
     static public function logS($method,$type,$description,$id_user=null){
+        if(!$id_user){
+            $id_user = '';
+            $user=auth()->user();
+            if($user) $id_user = $user['id'];
+        }
         (new Log([
             'operation'=>$method,
             'type'=>$type,

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

@@ -126,7 +126,7 @@ class PackageController extends Controller
         if ($order_code)$package=Package::where('order_code',$order_code)->first();
 
         $accomplishToWMS=new Api\thirdPart\flux\PackageController();
-        $result=$accomplishToWMS->markWMSOnBatch($batch_number);
+        $result=$accomplishToWMS->markWMSOnBatch($batch_number,$weight);
         if ($result['result']){
             $newValues['status']='已上传';
             Controller::logS(__METHOD__,'SUCCESS_'.__FUNCTION__,'批量更改波次上传成功'.$batch_number);

+ 26 - 2
app/Http/Controllers/TestController.php

@@ -166,10 +166,34 @@ class TestController extends Controller
 
     public function tj2(Request $request)
     {
-        $a=OracleDocOrderPackingSummary::create(['traceid'=>'test333','orderno'=>'so333','grossweight'=>'35.32','addwho'=>'WAS','addtime'=>Carbon::now(),'editwho'=>'WAS','edittime'=>Carbon::now()]);
-        dd($a);
+        $numbersesOfBatch=OracleDOCWaveDetails::select('picktotraceid as logistic_number','act_allocation_details.orderno')->where('doc_wave_details.waveno','W190630000042')
+            ->leftJoin('act_allocation_details','doc_wave_details.orderno','act_allocation_details.orderno')->get();
+
+        $oneIdxAsrsReceive=OracleDocOrderPackingSummary::where('traceid',$numbersesOfBatch[0]['logistic_number'])->first();
+        if(!$oneIdxAsrsReceive){
+            $inserts='';
+            $values=[];
+            foreach($numbersesOfBatch as $numbers){
+                $inserts .= " into doc_order_packing_summary (traceid,orderno,grossweight,addwho,addtime,editwho,edittime)values(?,?,?,?,?,?,?) ";
+                $values[] = $numbers['logistic_number']??'';
+                $values[] = $numbers['orderno']??'';
+                $values[] = 12;
+                $values[] = 'WAS';
+                $values[] = Carbon::now();
+                $values[] = 'WAS';
+                $values[] = Carbon::now();
+            }
+            DB::connection('oracle')->insert("insert all {$inserts} select * from dual",$values);
+        }else{
+            $logisticNumbers=$numbersesOfBatch->map(function($numbers){return $numbers['logistic_number'];});
+            OracleDocOrderPackingSummary::whereIn('traceid',$logisticNumbers)->update(['grossweight'=>32]);
+        }
     }
 
+    public function delme()
+    {
+        dd(DB::connection('oracle')->insert("insert into delme_log (id,name)values(?,?)",[32,'xx']));
+    }
     public function excelIt()
     {
         $excel = new ExcelController();

+ 53 - 1
app/Http/Controllers/api/thirdPart/flux/PackageController.php

@@ -8,6 +8,7 @@ use App\Logistic;
 use App\OracleDOCOrderDetail;
 use App\OracleDOCOrderHeader;
 use App\OracleDocOrderPackingSummary;
+use App\OracleDOCWaveDetails;
 use App\OracleDOCWaveHeader;
 use App\OracleIdxAsrsReceive;
 use App\Owner;
@@ -15,6 +16,7 @@ use App\Package;
 use App\WMSReflectPackage;
 use Carbon\Carbon;
 use Illuminate\Http\Request;
+use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Validator;
 use Zttp\Zttp;
 
@@ -249,8 +251,10 @@ class PackageController extends Controller
             return ['result'=>'false'];
         }
     }
-    public function markWMSOnBatch($batchNumber){
+    public function markWMSOnBatch($batchNumber,$weight){
         $batchNumber = strtoupper($batchNumber);
+
+
         $docWaveHeader=OracleDOCWaveHeader::where('waveno',$batchNumber)->first();
         if(!$docWaveHeader){
             {return ['result'=>false,'message'=>'波次不存在'];}
@@ -259,7 +263,55 @@ class PackageController extends Controller
             $query->where('SOSTATUS','<>','99')->where('SOSTATUS','<>','63');
         })->get();
         if($unpackedOrders->isNotEmpty()){return ['result'=>false,'message'=>'有未装箱或完成的订单在该波次,不能批量记录重量'];}
+
+
+
+
         OracleDOCWaveHeader::where('waveno',$batchNumber)->update(['userdefine3'=>'Y']);
+
+        $numbersesOfBatch=OracleDOCWaveDetails::select('picktotraceid as logistic_number','act_allocation_details.orderno')->where('doc_wave_details.waveno','W190630000042')
+            ->leftJoin('act_allocation_details','doc_wave_details.orderno','act_allocation_details.orderno')->get();
+        $oneIdxAsrsReceive=OracleIdxAsrsReceive::where('userdefine1',$numbersesOfBatch[0]['logistic_number'])->first();
+        if(!$oneIdxAsrsReceive){
+            $inserts='';
+            $values=[];
+            foreach($numbersesOfBatch as $numbers){
+                $inserts .= " into idx_asrs_receive (grouptaskid,grouptasksequence,userdefine1,userdefine2,addwho,addtime)values(?,?,?,?,?,?) ";
+                $values[] = $numbers['logistic_number']??'';
+                $values[] = 1;
+                $values[] = $numbers['logistic_number']??'';
+                $values[] = $weight;
+                $values[] = 'WAS';
+                $values[] = Carbon::now();
+            }
+            DB::connection('oracle')->insert("insert all {$inserts} select * from dual",$values);
+        }else{
+            $logisticNumbers=$numbersesOfBatch->map(function($numbers){return $numbers['logistic_number'];});
+            OracleIdxAsrsReceive::whereIn('userdefine1',$logisticNumbers)->update(['userdefine2'=>$weight]);
+        }
+
+        $oneIdxAsrsReceive=OracleDocOrderPackingSummary::where('traceid',$numbersesOfBatch[0]['logistic_number'])->first();
+        if(!$oneIdxAsrsReceive){
+            $inserts='';
+            $values=[];
+            foreach($numbersesOfBatch as $numbers){
+                $inserts .= " into doc_order_packing_summary (traceid,orderno,grossweight,addwho,addtime,editwho,edittime)values(?,?,?,?,?,?,?) ";
+                $values[] = $numbers['logistic_number']??'';
+                $values[] = $numbers['orderno']??'';
+                $values[] = $weight;
+                $values[] = 'WAS';
+                $values[] = Carbon::now();
+                $values[] = 'WAS';
+                $values[] = Carbon::now();
+            }
+            DB::connection('oracle')->insert("insert all {$inserts} select * from dual",$values);
+        }else{
+            $logisticNumbers=$numbersesOfBatch->map(function($numbers){return $numbers['logistic_number'];});
+            OracleDocOrderPackingSummary::whereIn('traceid',$logisticNumbers)->update(['grossweight'=>$weight]);
+        }
+
+
+
         //TODO
         Controller::logS(__METHOD__,'SUCCESS_'.__FUNCTION__,'标记WMS波次:'.$batchNumber.',userdefine3="Y"',auth()->user()['id']);
         return ['result'=>true];

+ 19 - 10
app/Http/Controllers/api/thirdPart/jianshang/RejectedController.php

@@ -5,6 +5,8 @@ namespace App\Http\Controllers\api\thirdPart\jianshang;
 
 
 use App\Http\Controllers\Controller;
+use App\Logistic;
+use App\QualityLabel;
 use App\RejectedBill;
 use App\RejectedBillItem;
 use Carbon\Carbon;
@@ -21,11 +23,12 @@ class RejectedController extends Controller
         $fee_collected = $rejected['fee_collected'] ?? '';
         $goods_barcode = $rejected['barcode_goods'] ?? '';
         $goods_name = $rejected['name_goods'] ?? '';
-        $logistic_name_return = $rejected->logisticName();
+        $logistic_name_return = Logistic::nameById($rejected['id_logistic_return']);
         $logistic_number = $rejected['logistic_number'] ?? '';
         $logistic_number_return = $rejected['logistic_number_return'] ?? '';
         $order_number = $rejected['order_number'] ?? '';
-        $quality_label = $rejected->qualityLabelName();
+        $quality_label = QualityLabel::where('id',$rejected['id_quality_label'])->first();
+        $quality_label = $quality_label?$quality_label['name']:'';
         $sender_mobile = $rejected['mobile_sender'] ?? '';
         $sender_name = $rejected['sender'] ?? '';
         $json = $this->packSendToRemote($amount,$created_at,$fee_collected,$goods_barcode,
@@ -110,7 +113,7 @@ class RejectedController extends Controller
         return $response->json();
     }
 
-    function sendRejected2(Rejected $rejected){
+    function sendRejected2(array $rejected){
         if(config('api.jianshang_rejecteds_log_switch'))Controller::logS(__METHOD__,__FUNCTION__,"发送笕尚接口,进入入口。退单号:{$rejected['logistic_number_return']}",Auth::user()['id']);
         $created_at = $rejected['created_at'] ?? '';
         $fee_collected = $rejected['fee_collected'] ?? '';
@@ -122,7 +125,7 @@ class RejectedController extends Controller
             $temGoods['quality_label']=$goods['quality_label'] ?? '';
             $goodses[]=$temGoods;
         }
-        $logistic_name_return = $rejected->logisticName();
+        $logistic_name_return = Logistic::nameById($rejected['id_logistic_return']);
         $logistic_number = $rejected['logistic_number'] ?? '';
         $logistic_number_return = $rejected['logistic_number_return'] ?? '';
         $order_number = $rejected['order_number'] ?? '';
@@ -204,12 +207,18 @@ class RejectedController extends Controller
         $this->log(__METHOD__,'笕尚接口发送请求:',$data);
         $url=config('api.url_rejected_send_jianshang2');
         if(env('api_faking'))$url=url(config('api.fakingUrl_rejected_send_jianshang'));
-        $response=Zttp::withHeaders([
-            'sign'=>$sign,
-            'nonce'=>$nonce,
-            'timestamp'=>$timestamp,
-            'Content-Type'=>'application/json'
-        ])->post($url,json_decode($data,true));
+        try{
+
+            $response=Zttp::withHeaders([
+                'sign'=>$sign,
+                'nonce'=>$nonce,
+                'timestamp'=>$timestamp,
+                'Content-Type'=>'application/json'
+            ])->post($url,json_decode($data,true));
+        }catch (\Exception $e){
+            $this->log(__METHOD__,'笕尚接口返回异常!!:',$e->getMessage().'||'.json_encode($data));
+            $response=false;
+        }
         if(!$response){
             $this->log(__METHOD__,'笕尚接口返回异常!!:',$response->body());
             return false;

+ 169 - 49
app/Http/Controllers/api/thirdPart/weight/PackageController.php

@@ -17,6 +17,151 @@ use Illuminate\Support\Facades\Validator;
 
 class PackageController extends Controller
 {
+//    public function new_(Request $requestInitial){
+//        $request=[];
+//        foreach ($requestInitial->all() as $k=>$v){
+//            $request[strtolower($k)]=$v;
+//        }
+//        $reqDate=isset($request['time'])?$request['time']:Carbon::now();
+//        $errors=$this->validatorWeight($request)->errors();
+//
+//        if (count($errors)>0){
+//            $this->log(__METHOD__,'error'.__FUNCTION__,json_encode($request).'||'.json_encode($errors),null);
+//            $response=["msg"=>$errors,"code"=>500,"data"=>null];
+//            return json_encode($response);
+//        }
+//
+//        $measuringMachine=MeasuringMachine::where('code',$request['id'])->first();
+//        if (!$measuringMachine){
+//            $measuringMachine=new MeasuringMachine([
+//                'name'=>$request['id'],
+//                'code'=>$request['id'],
+//                'status'=>'在线'
+//            ]);
+//            $measuringMachine->save();
+//            $this->log(__METHOD__,'weightApi(new measuring machine)'.__FUNCTION__,json_encode($request),null);
+//        }else{
+//            $measuringMachineStatus=new MeasuringMachine();
+//            $measuringMachineStatus->changeStatus($measuringMachine);
+//        }
+//        MeasuringMachineQueue::dispatch($measuringMachine)->delay(Carbon::now()->addMinutes(30));
+//
+//        $package=Package::where('logistic_number',$request['barcode'])->first();
+//        if (isset($request['length'])&&isset($request['width'])&&isset($request['height'])){
+//            $length=$request['length'];
+//            $width=$request['width'];
+//            $height=$request['height'];
+//            $max=($length>=($width>=$height?$width:$height)?$length:($width>=$height?$width:$height));
+//            if ($max==$length){
+//                $centre=$width>=$height?$width:$height;
+//                $min=$width<$height?$width:$height;
+//            }elseif ($max==$width){
+//                $centre=$length>=$height?$length:$height;
+//                $min=$length<$height?$length:$height;
+//            }else{
+//                $centre=$width>=$length?$width:$length;
+//                $min=$width<$length?$width:$length;
+//            }
+//        }else{
+//            $max=0;$centre=0;$min=0;
+//        }
+//        $apiController=new \App\Http\Controllers\Api\thirdPart\flux\PackageController();
+//        if ($package){
+//            $packageController=new \App\Http\Controllers\PackageController();
+//            $package->fetchPaperBox($max,$centre,$min,$package->owner_id);
+//            //处理活动波次
+//            if ($package->batch_rule&&strstr($package->batch_rule,'组合')){
+//                $packageController->syncBatch($package->batch_number,$request['weight'],$max,$centre,$min,$reqDate,$package['paper_box_id']);
+//            }else{
+//                $package->measuring_machine_id=$measuringMachine->id;
+//                $package->weight=$request['weight'];
+//                $package->length=$max;
+//                $package->width=$centre;
+//                $package->height=$min;
+//                $package->bulk=$max*$centre*$min;
+//                $package->weighed_at=$reqDate;
+//                $package->status="未上传";
+//                $this->log(__METHOD__,'Batch_'.__FUNCTION__,json_encode($package),null);
+//                $package->save();
+//                $result=$apiController->accomplishToWMS($package);
+//                if ($result['result']){
+//                    if ($package->status=="记录异常")$package->status="已上传异常";
+//                    else $package->status="已上传";
+//                }else{
+//                    $package->status="上传异常";
+//                }
+//                $package->save();
+//            }
+//            if ($package->order_code){
+//                $waybill=Waybill::where('wms_bill_number',$package->order_code)->where('status','!=','已完结')
+//                    ->where('status','!=','无模型')->first();
+//                if ($waybill){
+//                    $waybill->warehouse_weight_other=$package->weight;
+//                    $waybill->warehouse_weight_unit_id_other=1;
+//                    $waybill->update();
+//                }
+//            }
+//            event(new WeighedEvent($package));
+//            $response=["msg"=>"保存成功",
+//                        "code"=>200,
+//                        "data"=>true,
+//                        "serverMsg"=>null,
+//                        "requestor"=>[
+//                                "requestor"=>"1",
+//                                "eventCode"=>"0",
+//                                "reqDate"=>$reqDate,
+//                                "resDate"=>Carbon::now()]
+//                        ];
+//            $this->log(__METHOD__,'weightApi'.__FUNCTION__,json_encode($request).'|'.json_encode($response),null);
+//            return json_encode($response,JSON_UNESCAPED_UNICODE);
+//        }
+//        if (!$package){
+//            $logisticNumber=$request['barcode'];
+//            $createPackage=new Package([
+//                'logistic_number'=>$logisticNumber,
+//                'delivery_number'=>$logisticNumber,
+//                'measuring_machine_id'=>$measuringMachine->id,
+//                'weight'=>$request['weight'],
+//                'length'=>$max,
+//                'width'=>$centre,
+//                'height'=>$min,
+//                'bulk'=>$max*$centre*$min,
+//                'weighed_at'=>$reqDate,
+//                'status'=>"未下发",
+//            ]);
+//            $createPackage->fetchAllFromOracle();
+//            $createPackage->fetchPaperBox($max, $centre, $min);
+//            $result=$apiController->accomplishToWMS($createPackage);
+//            if(!$result['result']){
+//                $this->log(__METHOD__,'weightApi'.__FUNCTION__,json_encode($request).'||'.json_encode($createPackage),null);
+//                $response=["msg"=>"写入WMS失败!","code"=>500,"data"=>null];
+//                return json_encode($response,JSON_UNESCAPED_UNICODE);
+//            }
+//            if ($createPackage->save()){
+//                $measuringMachine->touch();
+//                MeasuringMachineQueue::dispatch($measuringMachine)->delay(Carbon::now()->addMinutes(30));
+//                MarkPackageExcepted::dispatch($createPackage)->delay(Carbon::now()->addMinutes(1440));
+//                event(new WeighedEvent($createPackage));
+//                $response=["msg"=>"保存成功",
+//                    "code"=>200,
+//                    "data"=>true,
+//                    "serverMsg"=>null,
+//                    "requestor"=>[
+//                        "requestor"=>"1",
+//                        "eventCode"=>"0",
+//                        "reqDate"=>$reqDate,
+//                        "resDate"=>Carbon::now()]
+//                ];
+//                $this->log(__METHOD__,'weightApi'.__FUNCTION__,json_encode($request).'||'.json_encode($response),null);
+//                return json_encode($response,JSON_UNESCAPED_UNICODE);
+//            }
+//
+//            $response=["msg"=>"保存时发生错误(未下发)!","code"=>500,"data"=>null];
+//            $this->log(__METHOD__,'weightApi(ERROR)'.__FUNCTION__,json_encode($request).'||'.json_encode($response),null);
+//            return json_encode($response,JSON_UNESCAPED_UNICODE);
+//        }
+//    }
+
     public function new_(Request $requestInitial){
         $request=[];
         foreach ($requestInitial->all() as $k=>$v){
@@ -27,50 +172,26 @@ class PackageController extends Controller
 
         if (count($errors)>0){
             $this->log(__METHOD__,'error'.__FUNCTION__,json_encode($request).'||'.json_encode($errors),null);
-            $response=["msg"=>$errors,"code"=>500,"data"=>null];
-            return json_encode($response);
+            return json_encode(["msg"=>$errors,"code"=>500,"data"=>null]);
         }
 
-        $measuringMachine=MeasuringMachine::where('code',$request['id'])->first();
-        if (!$measuringMachine){
-            $measuringMachine=new MeasuringMachine([
-                'name'=>$request['id'],
-                'code'=>$request['id'],
-                'status'=>'在线'
-            ]);
-            $measuringMachine->save();
-            $this->log(__METHOD__,'weightApi(new measuring machine)'.__FUNCTION__,json_encode($request),null);
-        }else{
-            $measuringMachineStatus=new MeasuringMachine();
-            $measuringMachineStatus->changeStatus($measuringMachine);
-        }
-        MeasuringMachineQueue::dispatch($measuringMachine)->delay(Carbon::now()->addMinutes(30));
+        $measuringMachine=MeasuringMachine::firstOrCreate('code',$request['id']);
+        $measuringMachine->turnOn();
+        $measuringMachine->turnOffInMinutes(30);
 
         $package=Package::where('logistic_number',$request['barcode'])->first();
-        if (isset($request['length'])&&isset($request['width'])&&isset($request['height'])){
-            $length=$request['length'];
-            $width=$request['width'];
-            $height=$request['height'];
-            $max=($length>=($width>=$height?$width:$height)?$length:($width>=$height?$width:$height));
-            if ($max==$length){
-                $centre=$width>=$height?$width:$height;
-                $min=$width<$height?$width:$height;
-            }elseif ($max==$width){
-                $centre=$length>=$height?$length:$height;
-                $min=$length<$height?$length:$height;
-            }else{
-                $centre=$width>=$length?$width:$length;
-                $min=$width<$length?$width:$length;
-            }
-        }else{
-            $max=0;$centre=0;$min=0;
-        }
-        $apiController=new \App\Http\Controllers\Api\thirdPart\flux\PackageController();
+
+        $edges=[$request['length']??0,$request['width']??0,$request['height']??0];
+        rsort($edges);
+        $fluxController=new \App\Http\Controllers\Api\thirdPart\flux\PackageController();
         if ($package){
             $packageController=new \App\Http\Controllers\PackageController();
-            $package->fetchPaperBox($max,$centre,$min,$package->owner_id);
+            $package->fetchPaperBox($edges[0],$edges[1],$edges[2]);
+            $package['bulk']=$edges[0]*$edges[1]*$edges[2];
             //处理活动波次
-            if ($package->batch_rule&&strstr($package->batch_rule,'组合')){
+            if ($package->isActivityBatch()){
+                $package->unifyThisMeasureUnderBatch();
+                $result=$fluxController->markWMSOnBatch($package['batch_number'], $request['weight']);
                 $packageController->syncBatch($package->batch_number,$request['weight'],$max,$centre,$min,$reqDate,$package['paper_box_id']);
             }else{
                 $package->measuring_machine_id=$measuringMachine->id;
@@ -83,7 +204,7 @@ class PackageController extends Controller
                 $package->status="未上传";
                 $this->log(__METHOD__,'Batch_'.__FUNCTION__,json_encode($package),null);
                 $package->save();
-                $result=$apiController->accomplishToWMS($package);
+                $result=$fluxController->accomplishToWMS($package);
                 if ($result['result']){
                     if ($package->status=="记录异常")$package->status="已上传异常";
                     else $package->status="已上传";
@@ -103,15 +224,15 @@ class PackageController extends Controller
             }
             event(new WeighedEvent($package));
             $response=["msg"=>"保存成功",
-                        "code"=>200,
-                        "data"=>true,
-                        "serverMsg"=>null,
-                        "requestor"=>[
-                                "requestor"=>"1",
-                                "eventCode"=>"0",
-                                "reqDate"=>$reqDate,
-                                "resDate"=>Carbon::now()]
-                        ];
+                "code"=>200,
+                "data"=>true,
+                "serverMsg"=>null,
+                "requestor"=>[
+                    "requestor"=>"1",
+                    "eventCode"=>"0",
+                    "reqDate"=>$reqDate,
+                    "resDate"=>Carbon::now()]
+            ];
             $this->log(__METHOD__,'weightApi'.__FUNCTION__,json_encode($request).'|'.json_encode($response),null);
             return json_encode($response,JSON_UNESCAPED_UNICODE);
         }
@@ -131,7 +252,7 @@ class PackageController extends Controller
             ]);
             $createPackage->fetchAllFromOracle();
             $createPackage->fetchPaperBox($max, $centre, $min);
-            $result=$apiController->accomplishToWMS($createPackage);
+            $result=$fluxController->accomplishToWMS($createPackage);
             if(!$result['result']){
                 $this->log(__METHOD__,'weightApi'.__FUNCTION__,json_encode($request).'||'.json_encode($createPackage),null);
                 $response=["msg"=>"写入WMS失败!","code"=>500,"data"=>null];
@@ -162,7 +283,6 @@ class PackageController extends Controller
         }
     }
 
-
     public function validatorWeight(array $request){
         $validator=Validator::make($request,[
             'id'=>['required','max:30',/*function ($attribute, $value, $fail) {

+ 6 - 0
app/Logistic.php

@@ -13,4 +13,10 @@ class Logistic extends Model
 {
     use ModelTimeFormat;
     protected $fillable = ['name','code'];
+
+
+    static function nameById($id){
+        $logistic=Logistic::where('id',$id)->first();
+        return $logistic?$logistic['name']:'';
+    }
 }

+ 10 - 3
app/MeasuringMachine.php

@@ -3,8 +3,11 @@
 namespace App;
 
 use App\Events\WeighedEvent;
+use App\Http\Controllers\Controller;
+use App\Jobs\MeasuringMachineQueue;
 use Illuminate\Database\Eloquent\Model;
 use App\Traits\ModelTimeFormat;
+use Illuminate\Support\Carbon;
 
 class MeasuringMachine extends Model
 {
@@ -15,9 +18,10 @@ class MeasuringMachine extends Model
 
 
     //TODO 上线下线
-    public function changeStatus(MeasuringMachine $measuringMachine){
-        $measuringMachine->status='在线';
-        $measuringMachine->save();
+    public function turnOn(){
+        if($this['status']=='在线')return;
+        $this['status']='在线';
+        $this->save();
         /*$package=Package::with('owner','paperBox','measuringMachine')->
         where('measuring_machine_id',$measuringMachine->id)->orderBy('id','DESC')->first();
         if (!$package){
@@ -26,4 +30,7 @@ class MeasuringMachine extends Model
         }
         event(new WeightEvent($package));*/
     }
+    public function turnOffInMinutes($minutes){
+        MeasuringMachineQueue::dispatch($this)->delay(Carbon::now()->addMinutes($minutes));
+    }
 }

+ 16 - 1
app/Package.php

@@ -44,9 +44,22 @@ class Package extends Model
     public function save(array $options=[]){
         unset($this->_temOracleInfo);
         unset($this->temOwner);
+        unset($this->temLogistic);
         parent::save($options);
     }
 
+    public function isActivityBatch(){
+        return ($this['batch_rule'] && strstr($this['batch_rule'],'组合')  && $this['batch_number'] );
+    }
+    public function unifyThisMeasureUnderBatch(){
+        $this->fetchPaperBox();
+        Package::where(['batch_number'=>$this['batch_number']])->update(['weight'=>$this['weight']??'',
+            'length'=>$this['length']??'',
+            'width'=>$this['width']??'',
+            'height'=>$this['height']??'',
+            'paper_box_id'=>$this['paper_box_id']??'']);
+    }
+
     public function fetchLogisticFromOracle(){
         if(!$this['oracleInfo'])return null;
         if($this['temLogistic'])return $this['temLogistic'];
@@ -78,7 +91,8 @@ class Package extends Model
         $this->fetchOwnerFromOracle();
         $this->fetchLogisticFromOracle();
         $this['recipient'] = $this['oracleInfo']['Consigneename'];
-        $this['logistic_number'] = $this['oracleInfo']['SOReference5'];
+        if($this['oracleInfo']['SOReference5'])
+            $this['logistic_number'] = $this['oracleInfo']['SOReference5'];
         $this['batch_rule'] = isset($this['oracleInfo']['userdefine2'])?$this['oracleInfo']['userdefine2']:'';
     }
 
@@ -122,6 +136,7 @@ class Package extends Model
 
     //寻找相近纸箱ID
     public  function fetchPaperBox($max, $centre, $min, $owner_id=null){
+        if($this['paper_box_id'])return $this['paper_box_id'];
         $sumDiffer=0;
         $maxDiffer=0;
         $paperBox_id=null;

+ 9 - 9
config/database.php

@@ -64,15 +64,15 @@ return [
         ],
 
         'oracle' => [
-            'driver' => 'oracle',
-            'host' => '47.103.12.61',
-            'port' => '1521',
-            'database'=> '',
-            'service_name' => 'orcl',
-            'username' => 'WMS_USER',
-            'password' => 'WMS_USER',
-            'charset' => 'utf8',
-            'prefix' => '',
+            'driver' => env('ORACLE_DRIVER', 'oracle'),
+            'host' => env('ORACLE_HOST', '47.103.12.61'),
+            'port' => env('ORACLE_PORT', '1521'),
+            'database'=> env('ORACLE_DATABASE', ''),
+            'service_name' => env('ORACLE_SERVICE_NAME', 'orcl'),
+            'username' => env('ORACLE_USERNAME', 'WMS_USER'),
+            'password' => env('ORACLE_PASSWORD', 'WMS_USER'),
+            'charset' => env('ORACLE_CHARSET', 'utf8'),
+            'prefix' => env('ORACLE_PREFIX', ''),
         ],
 
         'pgsql' => [

+ 3 - 1
public/t.php

@@ -1,3 +1,5 @@
 <?php
-phpinfo();
+;
+rsort($arr);
 
+var_dump($arr);