'发货' AND work_fee IS NOT NULL)) GROUP BY owner_id"; $billDetails = DB::select(DB::raw($sql),[$year."-".$lastMonth."%"]); $areas = OwnerAreaReport::query()->with("ownerStoragePriceModel")->where("counting_month","like",$year."-".$lastMonth."%")->get(); $map = []; foreach($areas as $area){ if (isset($map[$area->owner_id."_".$area->counting_month])){ if (!$area->ownerStoragePriceModel)continue; $map[$area->owner_id."_".$area->counting_month] += app('OwnerStoragePriceModelService') ->calculationAmount($area->ownerStoragePriceModel,$area->accounting_area,$area->owner_id,$area->counting_month); }else{ if (!$area->ownerStoragePriceModel)continue; $map[$area->owner_id."_".$area->counting_month] = app('OwnerStoragePriceModelService') ->calculationAmount($area->ownerStoragePriceModel,$area->accounting_area,$area->owner_id,$area->counting_month); } } $chunks = array_chunk($billDetails,50); foreach ($chunks as $bills){ $date = date('Y-m-d H:i:s'); $createOwnerBillReport = []; foreach ($bills as $bill){ $key = $bill->owner_id."_".$year."-".$lastMonth; $total = $bill->total; if (isset($map[$key]))$total += $map[$key]; $createOwnerBillReport[] = [ "owner_id" => $bill->owner_id, //项目ID "counting_month" => $year."-".$lastMonth."-01", //结算月 "initial_fee" => $total, //原始账单金额 "created_at" => $date, ]; } LogService::log(__METHOD__,"客户管理-生成确认账单",json_encode($createOwnerBillReport)); DB::table("owner_bill_reports")->insert($createOwnerBillReport); } } }