function get_works_detail($works, $switch = 'default') { $results = array(); // 按员工分组现场工时 foreach ($works as $work) { if ($switch == 'default') { $work_hours = get_work_hours($work); } if ($switch == 'unchecked') { $work_hours = get_uncheck_work_hours($work); } if ($switch == 'unsubmitted') { $work_hours = get_unsubmitted_work_hours($work); } // 考核率 $assessment_rate = cal_assessment($work); $assessment_work_hours = round($work_hours * (1 - $assessment_rate), 2); $results[$work->staff->group_id][$work->staff->identifier . '_' . $work->staff->name]['works'][$work->process->name]['works'][] = array('overdue_days' => daysbetweendates($work->check_date, $work->process->planned_completion_date), 'work_count' => $work->count, 'work_count_valid' => $work->count_valid, 'work_count_concession' => $work->count_concession, 'work_count_invalid' => $work->count_invalid, 'work_count_check' => $work->count_check, 'work_ticket' => $work->ticket, 'work_hours' => $work_hours, 'work_check_date' => $work->check_date ? date('Y/m/d', strtotime($work->check_date)) : '', 'work_completion_date' => $work->completion_date ? date('Y/m/d', strtotime($work->completion_date)) : '', 'work_remark' => get_proc_plan_source($work->process->part->production), 'assessment_rate' => $assessment_rate, 'assessment_work_hours' => $assessment_work_hours, 'proc_priority' => $work->process->priority, 'proc_name' => get_proc_name($work->process->name), 'proc_takt_time' => $work->process->takt_time ? $work->process->takt_time : 0, 'proc_preparation_time' => $work->process->preparation_time ? $work->process->preparation_time : 0, 'proc_production_date' => $work->process->production_date ? date('Y/m/d', strtotime($work->process->production_date)) : '', 'proc_planned_completion_date' => $work->process->planned_completion_date ? date('Y/m/d', strtotime($work->process->planned_completion_date)) : '', 'part_num' => $work->process->part->num, 'part_name' => $work->process->part->name, 'part_return_date' => $work->process->part->return_date ? date('Y/m/d', strtotime($work->process->part->return_date)) : '', 'prod_type' => get_prod_type($work->process->part->production->type), 'prod_graphic_src' => get_prod_graphic_src($work->process->part->production->graphic_src)); // 累加同种工序现场工时小计 if (!isset($results[$work->staff->group_id][$work->staff->identifier . '_' . $work->staff->name]['works'][$work->process->name]['work_hours_sum'])) { $results[$work->staff->group_id][$work->staff->identifier . '_' . $work->staff->name]['works'][$work->process->name]['work_hours_sum'] = 0; } $results[$work->staff->group_id][$work->staff->identifier . '_' . $work->staff->name]['works'][$work->process->name]['work_hours_sum'] += $work_hours; // 累加同种工序考核现场工时小计 if (!isset($results[$work->staff->group_id][$work->staff->identifier . '_' . $work->staff->name]['works'][$work->process->name]['a_work_hours_sum'])) { $results[$work->staff->group_id][$work->staff->identifier . '_' . $work->staff->name]['works'][$work->process->name]['a_work_hours_sum'] = 0; } $results[$work->staff->group_id][$work->staff->identifier . '_' . $work->staff->name]['works'][$work->process->name]['a_work_hours_sum'] += $assessment_work_hours; // 累加所有工时小计 if (!isset($results[$work->staff->group_id][$work->staff->identifier . '_' . $work->staff->name]['work_hours_sum'])) { $results[$work->staff->group_id][$work->staff->identifier . '_' . $work->staff->name]['work_hours_sum'] = 0; } $results[$work->staff->group_id][$work->staff->identifier . '_' . $work->staff->name]['work_hours_sum'] += $work_hours; // 累加所有考核工时小计 if (!isset($results[$work->staff->group_id][$work->staff->identifier . '_' . $work->staff->name]['a_work_hours_sum'])) { $results[$work->staff->group_id][$work->staff->identifier . '_' . $work->staff->name]['a_work_hours_sum'] = 0; } $results[$work->staff->group_id][$work->staff->identifier . '_' . $work->staff->name]['a_work_hours_sum'] += $assessment_work_hours; } return $results; }
function echo_proc_plan_source($var) { echo get_proc_plan_source($var); }