isOverride=true; // } /** * @param Collection $collections */ public function collection(Collection $collections) { foreach ($collections as $row) { $logistic_number_return = trim($row['退回单号']??$row['退货单号']??$row['快递单号']??$row['logistic_number_return']??''); $mobile_sender = trim($row['手机号']??$row['mobile_sender']??''); $logistic_name = trim($row['快递公司']??$row['logistic_name']??''); $barcode = trim($row['条码']??$row['barcode']??''); $amount = trim($row['数量']??$row['amount']??''); $quality_label_name = trim($row['品质']??$row['quality_label_name']??''); $remark = trim($row['备注']??$row['remark']??''); $owner=trim($row['货主']??$row['owner']??''); // $lastReturnNumber = Session::get('jianshangLastImportedBill'); // if(!$logistic_number_return)$logistic_number_return=$lastReturnNumber; // $lastMobile = Session::get('jianshangLastImportedMobile'); // if(!$mobile_sender)$mobile_sender=$lastMobile; // $lastlogistic_name = Session::get('jianshangLastImportedLogisticName'); // if(!$logistic_name)$logistic_name=$lastlogistic_name; $owner=Owner::query()->where('name','like',$owner.'%')->first(); $id_logistic_return=Logistic::query()->where('name','like',"%{$logistic_name}%")->first()['id']; if(!$id_logistic_return){ $id_logistic_return=Logistic::query()->where('name','like',"%其它%")->first()['id']; } $id_quality_label=3; if(trim($quality_label_name)=='正品'){ $id_quality_label=1; }elseif(trim($quality_label_name)=='残次'){ $id_quality_label=2; } if(!$amount)$amount=1; $bill=RejectedBill::query()->where('logistic_number_return',trim($logistic_number_return))->first(); if($bill){ $item=RejectedBillItem::query()->where('id_rejected_bill',$bill['id']) ->where('barcode_goods',trim($barcode))->where('id_quality_label',$id_quality_label)->first(); if($item){ $item['amount']+=$amount; $item->update(); }else{ $item=new RejectedBillItem([ 'id_rejected_bill'=>$bill['id'], 'barcode_goods'=>trim($barcode), 'amount'=>trim($amount), 'id_quality_label'=>$id_quality_label, 'remark'=>$remark, ]); $item->save(); } $bill->syncOrderIssue(); }else{ $bill=new RejectedBill([ 'id_owner'=>$owner['id'], 'mobile_sender'=>$mobile_sender, 'logistic_number_return'=>$logistic_number_return, 'id_logistic_return'=>$id_logistic_return, 'is_loaded'=>0, ]); $bill->save(); $bill->joinOrderIssue(); $bill->syncOrderIssue(); $item=RejectedBillItem::query()->where('id_rejected_bill',$bill['id']) ->where('barcode_goods',trim($barcode))->where('id_quality_label',$id_quality_label)->first(); if($item){ $item['amount']+=$amount; $item->update(); }else{ $item=new RejectedBillItem([ 'id_rejected_bill'=>$bill['id'], 'barcode_goods'=>trim($barcode), 'amount'=>trim($amount), 'id_quality_label'=>$id_quality_label, 'remark'=>$remark, ]); $item->save(); } } $lastBill = Session::get('jianshangLastImportedBill'); if($owner['name']=='笕尚'&&$lastBill&&$lastBill !=trim($logistic_number_return)){ $this->submitToApi($bill); } Session::put('jianshangLastImportedLogisticName',trim($logistic_name)); Session::put('jianshangLastImportedBill',trim($logistic_number_return)); Session::put('jianshangLastImportedMobile',trim($mobile_sender)); } } // public function collection(Collection $collections) // { // $rejectedBill_index=[]; // $errers=[]; // foreach ($collections as $i=>$row) { // $logistic_number_return = trim($row['退回单号'] ?? $row['退货单号'] ?? $row['快递单号'] ?? $row['logistic_number_return'] ?? ''); // $mobile_sender = trim($row['手机号'] ?? $row['mobile_sender'] ?? ''); // $logistic_name = trim($row['快递公司'] ?? $row['logistic_name'] ?? ''); // $barcode = trim($row['条码'] ?? $row['barcode'] ?? ''); // $amount = trim($row['数量'] ?? $row['amount'] ?? ''); // $quality_label_name = trim($row['品质'] ?? $row['quality_label_name'] ?? '正品'); // $remark = trim($row['备注'] ?? $row['remark'] ?? ''); // $ownerName = trim($row['货主'] ?? $row['owner'] ?? ''); // if(!$logistic_number_return){$errers[$i][]='第'.($i+1).'行退回单号不能为空,该行没有录入,请手动编辑';continue;} // if(!$logistic_name){$errers[$i][]='第'.($i+1).'行快递公司不能为空,该行没有录入,请手动编辑';continue;} // if(!$barcode){$errers[$i][]='第'.($i+1).'行条码不能为空,该行没有录入,请手动编辑';continue;} // if(!$amount){$errers[$i][]='第'.($i+1).'行数量不能为空,该行没有录入,请手动编辑';continue;} // if(!$ownerName){$errers[$i][]='第'.($i+1).'行货主不能为空,该行没有录入,请手动编辑';continue;} // /** @var OwnerService $ownerService */ // $ownerService=app('OwnerService'); // /** @var LogisticService $logisticService */ // $logisticService=app('LogisticService'); // if(!isset($rejectedBill_index[$logistic_number_return])){ // $rejectedBill=RejectedBill::query()->where('logistic_number_return',$logistic_number_return)->get(); // if($rejectedBill){$errers[$i][]='第'.($i+1).'行的退货单在导入前已有记录,需要先删除掉再导入或手动添加,该行没有录入';continue;} // $owner_id = $ownerService->get(['name' => $ownerName])->first()['id']; // if($rejectedBill){$errers[$i][]='第'.($i+1).'行的货主不存在,请检查是否输错货主名或未录入系统,该行没有录入,请手动编辑';continue;} // $logistic_id = $logisticService->get(['name' => $logistic_name])->first()['id']; // if($rejectedBill){$errers[$i][]='第'.($i+1).'行的快递不存在,请检查是否输错快递名或未录入系统,该行没有录入,请手动编辑';continue;} // $rejectedBill=new RejectedBill([ // 'id_owner'=> $owner_id, // 'mobile_sender'=>$mobile_sender, // 'logistic_number_return'=>$logistic_number_return, // 'id_logistic_return'=>$logistic_id, // 'is_loaded'=>0, // ]); // $rejectedBill_index[$logistic_number_return]=$rejectedBill; // } // } // // foreach ($collections as $row) // { // $logistic_number_return = trim($row['退回单号']??$row['退货单号']??$row['快递单号']??$row['logistic_number_return']??''); // $mobile_sender = trim($row['手机号']??$row['mobile_sender']??''); // $logistic_name = trim($row['快递公司']??$row['logistic_name']??''); // $barcode = trim($row['条码']??$row['barcode']??''); // $amount = trim($row['数量']??$row['amount']??''); // $quality_label_name = trim($row['品质']??$row['quality_label_name']??''); // $remark = trim($row['备注']??$row['remark']??''); // $owner=trim($row['货主']??$row['owner']??''); // //// $lastReturnNumber = Session::get('jianshangLastImportedBill'); //// if(!$logistic_number_return)$logistic_number_return=$lastReturnNumber; //// $lastMobile = Session::get('jianshangLastImportedMobile'); //// if(!$mobile_sender)$mobile_sender=$lastMobile; //// $lastlogistic_name = Session::get('jianshangLastImportedLogisticName'); //// if(!$logistic_name)$logistic_name=$lastlogistic_name; // // // $owner=Owner::query()->where('name','like',$owner.'%')->first(); // $id_logistic_return=Logistic::query()->where('name','like',"%{$logistic_name}%")->first()['id']; // if(!$id_logistic_return){ // $id_logistic_return=Logistic::query()->where('name','like',"%其它%")->first()['id']; // } // // $id_quality_label=3; // if(trim($quality_label_name)=='正品'){ // $id_quality_label=1; // }elseif(trim($quality_label_name)=='残次'){ // $id_quality_label=2; // } // if(!$amount)$amount=1; // // // $bill=RejectedBill::query()->where('logistic_number_return',trim($logistic_number_return))->first(); // if($bill){ // $item=RejectedBillItem::query()->where('id_rejected_bill',$bill['id']) // ->where('barcode_goods',trim($barcode))->where('id_quality_label',$id_quality_label)->first(); // if($item){ // $item['amount']+=$amount; // $item->update(); // }else{ // $item=new RejectedBillItem([ // 'id_rejected_bill'=>$bill['id'], // 'barcode_goods'=>trim($barcode), // 'amount'=>trim($amount), // 'id_quality_label'=>$id_quality_label, // 'remark'=>$remark, // ]); // $item->save(); // } // $bill->syncOrderIssue(); // }else{ // $bill=new RejectedBill([ // 'id_owner'=>$owner['id'], // 'mobile_sender'=>$mobile_sender, // 'logistic_number_return'=>$logistic_number_return, // 'id_logistic_return'=>$id_logistic_return, // 'is_loaded'=>0, // ]); // $bill->save(); // $bill->joinOrderIssue(); // $bill->syncOrderIssue(); // $item=RejectedBillItem::query()->where('id_rejected_bill',$bill['id']) // ->where('barcode_goods',trim($barcode))->where('id_quality_label',$id_quality_label)->first(); // if($item){ // $item['amount']+=$amount; // $item->update(); // }else{ // $item=new RejectedBillItem([ // 'id_rejected_bill'=>$bill['id'], // 'barcode_goods'=>trim($barcode), // 'amount'=>trim($amount), // 'id_quality_label'=>$id_quality_label, // 'remark'=>$remark, // ]); // $item->save(); // } // } // // $lastBill = Session::get('jianshangLastImportedBill'); // if($owner['name']=='笕尚'&&$lastBill&&$lastBill !=trim($logistic_number_return)){ // $this->submitToApi($bill); // } // Session::put('jianshangLastImportedLogisticName',trim($logistic_name)); // Session::put('jianshangLastImportedBill',trim($logistic_number_return)); // Session::put('jianshangLastImportedMobile',trim($mobile_sender)); // } // } private function submitToApi(RejectedBill $bill){ if(!$bill||$bill->items()->get()->isEmpty())return; $havingFail=0; if(!config('api.API_FAKING')) $bill->items()->get()->each(function(RejectedBillItem $item)use(&$havingFail){ $rejectedBill=RejectedBill::query()->find($item['id_rejected_bill']); if($rejectedBill['is_loaded']!=0){ return false; } $owner = Owner::query()->find($rejectedBill['id_owner']); if(strstr($owner->name??'','笕尚')){ $rejected=new Rejected(); app('LogService')->log(__METHOD__,'找不到表','132行'); $rejected->fill($rejectedBill->toArray()); $rejected->fill($item->toArray()); $rejectedJianshang=new RejectedController(); $sended=$rejectedJianshang->sendRejected($rejected); if(!$sended){ (new Controller())->log(__METHOD__,'error','数据发送给笕尚失败'); $havingFail++; return false; } } }); (new Controller())->log(__METHOD__,'error',json_encode(['success'=>'false','failure_info'=>"$havingFail/{$bill->items->count()} 条记录没有发送成功"])); } }