nbschInsert(); echo '时长:'.number_format(((time()-$start_time)/60),2).'分钟'; } public function nbschInsert() { $id_list_data = DB::connection('mysql_nbsch')->select("SELECT ID FROM SYS_FLOW_SCHEME S WHERE EXISTS( SELECT ID FROM SYS_FLOW_MASTER M WHERE EXISTS( SELECT 1 FROM sys_flow_master_dept D WHERE M.ID = D.PID ) AND S.PID = M.ID AND M.MENU_ID = '5ab7b937-19a0-47d4-b479-b9f58999abc8' ) AND S.IS_DISABLE = 0"); $id_list = []; if(count($id_list_data) > 0){ for($i=0;$iID); } } // dd($id_list); $bill_id_list = []; if($id_list > 0){ for($i=0;$itable('SYS_FLOW_APPROVAL_RECORD')->where('approve_scheme_id',$id_list[$i])->get(['bill_id', 'approve_node_name']); if(count($bill_id_data) > 0){ for($j=0;$jbill_id; if (!isset($grouped[$billId])) { $grouped[$billId] = []; } $grouped[$billId][] = $item->approve_node_name; } $bill_array = []; foreach ($grouped as $billId => $nodeNames) { $bill_array[] = [ 'bill_id' => $billId, 'approve_flow' => implode(',', array_unique($nodeNames)) ]; } // dd($bill_array); $filteredResult = array_filter($bill_array, function($item) { return strpos($item['approve_flow'], '被服务') === false; }); // 重置索引 $filteredResult = array_values($filteredResult); // dd($filteredResult); $id_list = []; foreach($filteredResult as $k=>$v){ array_push($id_list,$v['bill_id']); } // dd($id_list); $master = DB::connection('mysql_nbsch')->table('RT_SERVICE_SETTLEMENT_MASTER')->where('DOCUMENT_DATE','like','%2025-06%')->where('APPROVE_NODE_NAME','已完成')->get(['ID','DOCUMENT_TYPE','DOCUMENT_DATE','SETTLEMENT_SUM_AMOUNT']); if(count($master) > 0){ for($i=0;$iBILL_ID = null; $master[$i]->isNull = 0; $master[$i]->riqi = '2025-06'; } for($i=0;$i 0){ for($j=0;$jID); if($master[$i]->ID == $id_list[$j]){ $master[$i]->BILL_ID = $id_list[$j]; $master[$i]->isNull = 1; } } } } } $groupedData = []; foreach ($master as $item) { $key = $item->DOCUMENT_TYPE; if (!isset($groupedData[$key])) { $groupedData[$key] = [ 'DOCUMENT_TYPE' => $item->DOCUMENT_TYPE, 'DOCUMENT_DATE' => $item->riqi, 'total_amount' => 0, 'normal_amount' => 0, 'null_amount' => 0 ]; } $groupedData[$key]['total_amount'] += $item->SETTLEMENT_SUM_AMOUNT; if ($item->isNull == 0) { $groupedData[$key]['normal_amount'] += $item->SETTLEMENT_SUM_AMOUNT; } else { $groupedData[$key]['null_amount'] += $item->SETTLEMENT_SUM_AMOUNT; } } $result = []; foreach ($groupedData as $item) { $sptgl_val = $item['total_amount'] > 0 ? round($item['normal_amount'] / $item['total_amount'] * 100, 2) : 0; $result[] = [ 'DOCUMENT_TYPE' => $item['DOCUMENT_TYPE'], 'DOCUMENT_DATE' => $item['DOCUMENT_DATE'], 'dyjsje' => round($item['total_amount'] / 10000, 2), 'zcspje' => round($item['normal_amount'] / 10000, 2), 'qtje' => round($item['null_amount'] / 10000, 2), 'sptgl' => $sptgl_val . '%', 'sptgl_val' => $sptgl_val ]; } Log::info(332211); Log::info($result); } }