function index($file_id) { $_units = array(); $units = Unit::find_all_by_file_id($file_id, array('order' => 'priority asc')); foreach ($units as $unit) { $_units[] = array('id' => $unit->id, 'priority' => $unit->priority, 'name' => $unit->priority . '# ' . get_proc_name($unit->name), 'type' => 'unit', 'isParent' => false, 'icon' => get_path('/webroot/css/img/diy/4.png', true)); } echo json_encode($_units); }
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 add($parent_file_id) { $app = get_app(); $post = $app->request()->post(); unset($post['_wysihtml5_mode']); unset($post['unit_id']); $post['file_id'] = $parent_file_id; // add $unit = Unit::create($post); // errors if (!$unit->is_valid()) { foreach ($unit->errors as $error) { $errors[] = $error; } $results['errors'] = $errors; $results['is_success'] = false; } else { $unit->save(); $results['is_success'] = true; // create newNode $results['newNode'] = array('id' => $unit->id, 'file_id' => $unit->file_id, 'priority' => $unit->priority, 'name_orig' => $unit->name, 'name' => $unit->priority . '# ' . get_proc_name($unit->name), '_name' => get_proc_name($unit->name), 'content' => $unit->content, 'price' => $unit->price, 'takt_time' => $unit->takt_time ? $unit->takt_time : 0, 'preparation_time' => $unit->preparation_time ? $unit->preparation_time : 0, 'remark' => $unit->remark, 'icon' => get_path('/webroot/css/img/diy/4.png', true)); } echo json_encode($results); }
<td style="display:none;" outsourcing="<?php echo $proc->is_outsourcing; ?> "><?php echo $proc->id; ?> </td> <td><?php echo $proc->priority; ?> </td> <td name="<?php echo $proc->name; ?> " style="width: 60px;"><?php echo get_proc_name($proc->name); ?> </td> <td class="fixed-250"><?php echo $proc->content; ?> </td> <td><?php echo $proc->takt_time; ?> </td> <td><?php echo $proc->preparation_time; ?> </td> <td><?php
function stat_month_item_proc_2($sql, $project_src) { // get productions $results = array(); $prods = Production::find_by_sql($sql); // prod foreach ($prods as $prod) { $results[$prod->id] = array('num' => $prod->num, 'name' => $prod->name, 'project_src' => $prod->project_src, 'parts' => array()); // part foreach ($prod->parts as $part) { $results[$prod->id]['parts'][$part->id] = array('num' => $part->num, 'name' => $part->name, 'count' => $part->count, 'procs' => '', 'cur_proc' => '', 'cur_proc_production_date' => '', 'undo_work_hours' => get_total_undo_work_hours($part), 'is_done' => $part->is_done); // 初始化变量 $procs = array(); $cur_proc = array(); $cur_proc_production_date = ''; // proc if (count($part->processes)) { foreach ($part->processes as $proc) { $procs[] = array('id' => $proc->id, 'name' => get_proc_name($proc->name), 'priority' => $proc->priority, 'production_date' => $proc->production_date ? date('Y-m-d', strtotime($proc->production_date)) : ''); // 查询当前正在执行的工序 // 查询条件: 投产日期非空 && 未完工 if (!empty($proc->production_date) && !$proc->is_done) { $cur_proc = array('id' => $proc->id, 'name' => get_proc_name($proc->name), 'priority' => $proc->priority, 'planned_completion_date' => $proc->planned_completion_date ? date('Y-m-d', strtotime($proc->planned_completion_date)) : date('Y-m-d', strtotime($proc->part->planned_completion_date)), 'production_date' => $proc->production_date ? date('Y-m-d', strtotime($proc->production_date)) : '', 'staffs' => get_proc_all_staffs($proc), 'check_date' => get_proc_first_work_check_date($proc)); $cur_proc_production_date = $proc->production_date ? date('Y-m-d', strtotime($proc->production_date)) : ''; } } // end of proc // 如果没有找到当前执行的工序 // 默认为第一道工序 if (empty($cur_proc)) { $processes = $part->processes; $first_proc = $processes[0]; $last_proc = $processes[count($processes) - 1]; // 如果最后一道工序完工, 默认为最后一道工序 if ($last_proc->is_done) { $first_proc = $last_proc; } $cur_proc = array('id' => $first_proc->id, 'name' => get_proc_name($first_proc->name), 'priority' => $first_proc->priority, 'planned_completion_date' => $proc->planned_completion_date ? date('Y-m-d', strtotime($proc->planned_completion_date)) : date('Y-m-d', strtotime($proc->part->planned_completion_date)), 'production_date' => $first_proc->production_date ? date('Y-m-d', strtotime($first_proc->production_date)) : '', 'staffs' => get_proc_all_staffs($first_proc), 'check_date' => get_proc_first_work_check_date($first_proc)); $cur_proc_production_date = $first_proc->production_date ? date('Y-m-d', strtotime($first_proc->production_date)) : ''; } $results[$prod->id]['parts'][$part->id]['procs'] = $procs; $results[$prod->id]['parts'][$part->id]['cur_proc'] = $cur_proc; $results[$prod->id]['parts'][$part->id]['cur_proc_production_date'] = $cur_proc_production_date; } } } return $results; }
</tr> </thead> <tbody> <?php foreach ($procs as $proc) { ?> <tr id="<?php echo $proc['id']; ?> "> <td><span class="colorBlock" style="background-color: <?php echo $proc['color']; ?> ;"></span></td> <td><?php echo get_proc_name($proc['id']); ?> </td> <?php foreach ($proc['values'] as $value) { ?> <td><?php echo $value; ?> </td> <?php } ?> <td><input type="checkbox"></td> </tr> <?php
function item_month_plan($date, $page = 1) { // 2014-06 $limit = get_config('prod_per_page'); $offset = $page - 1; $app = get_app(); //GET if ($app->request()->isGet()) { $grps = array(); $date = $date . '-01'; $total_time = 0; $prods = Production::find('all', array('conditions' => array(' is_done = 0 AND DATE(item_month) = ? ', $date))); foreach ($prods as $prod) { $grps[$prod->id] = array('prod_num' => $prod->num, 'prod_time' => 0, 'parts' => array()); $parts = $prod->parts; foreach ($parts as $part) { $grps[$prod->id]['parts'][$part->id] = array('part_num' => $part->num, 'part_name' => $part->name, 'procs' => array()); $procs = $part->processes; foreach ($procs as $proc) { $proc_time = get_proc_time($proc); $grps[$prod->id]['parts'][$part->id]['procs'][$proc->id] = array('proc_priority' => $proc->priority, 'proc_name' => get_proc_name($proc->name), 'proc_count' => $proc->count, 'proc_takt_time' => $proc->takt_time, 'proc_preparation_time' => $proc->preparation_time, 'proc_time' => $proc_time, 'proc_planned_completion_date' => $proc->planned_completion_date ? date('Y-m-d', strtotime($proc->planned_completion_date)) : '', 'proc_production_date' => $proc->production_date ? date('Y-m-d', strtotime($proc->production_date)) : '', 'proc_completion_date' => $proc->completion_date ? date('Y-m-d', strtotime($proc->completion_date)) : ''); $total_time += $proc_time; $grps[$prod->id]['prod_time'] += $proc_time; } } } render_with_layout('misc.php', 'Misc/item_month_plan.php', compact('grps', 'date', 'total_time')); } //POST if ($app->request()->isPost()) { $proc = Process::find_by_id($app->request()->post('proc_id')); if ($proc) { $proc->planned_completion_date = $app->request()->post('planned_completion_date'); $proc->production_date = $app->request()->post('production_date'); $proc->save(); } } }
<div class="container" style="font-size: 12px;"> <?php foreach ($results as $proc_name_id => $proc_group) { ?> <div class="panel panel-default"> <div class="panel-heading"><?php echo get_proc_name($proc_name_id); ?> </div> <table class="table table-bordered"> <thead> <th class="fixed-150">零件编号</th> <th>零件名称</th> <th class="fixed-50">数量</th> <th class="fixed-70">工序序号</th> <th class="fixed-100">计划完工日期</th> <th class="fixed-100">投产日期</th> <th class="fixed-70">完工日期</th> </thead> <tbody> <?php foreach ($proc_group as $part) { //debug( $part ); ?> <tr> <td rowspan="<?php echo count($part['procs']); ?> "><?php echo $part['part_num']; ?>
function import_from_lib($part_id, $file_id) { $file = File::find_by_id($file_id); $part = Part::find_by_id($part_id); if (empty($file)) { $results['is_success'] = false; $results['error'] = '对不起,工艺库中找不到您所指定的零件!'; } else { if (!count($file->units)) { $results['is_success'] = false; $results['error'] = '对不起,您所指定的零件不包含任何工序!'; } if (count($part->processes)) { $results['is_success'] = false; $results['error'] = '对不起,只能为没有制定任何工序的零件节点从工艺库中导入模板!'; } if (!isset($results['error'])) { $nodes = array(); $units = Unit::find_all_by_file_id($file->id, array('order' => 'priority asc')); // import lib parts model's procs foreach ($units as $unit) { // create db node $item = array(); $item['priority'] = $unit->priority; $item['name'] = $unit->name; $item['content'] = $unit->content; $item['part_id'] = $part->id; $item['takt_time'] = ''; //$unit->takt_time; $item['preparation_time'] = ''; // $unit->preparation_time; $item['price'] = $unit->price; $item['production_date'] = ''; $item['planned_completion_date'] = ''; $item['remark'] = $unit->remark; $item['is_done'] = 0; $item['count'] = $part->count; $item['count_done'] = 0; // save db node $_proc = Process::create($item); $_proc->save(); // create ztree node $node = array(); $node['id'] = $_proc->id; $node['priority'] = $_proc->priority; $node['name'] = $_proc->priority . '# ' . get_proc_name($_proc->name) . ' (0)'; $node['isParent'] = false; $node['type'] = 'proc'; $node['moveFirst'] = false; $node['icon'] = get_path('/webroot/css/img/diy/4.png', true); $nodes[] = $node; } $results['is_success'] = true; $results['nodes'] = $nodes; } } echo json_encode($results); }
<div class="row"> <div class="col-xs-12"> <div class="panel panel-default"> <div class="panel-heading">工序信息</div> <table class="table table-striped"> <thead> <tr> <td class="fixed-200">标签</td> <td>值</td> </tr> </thead> <tbody> <tr> <td>工序名称</td> <td><?php echo get_proc_name($unit->name); ?> </td> </tr> <tr> <td>工艺内容</td> <td><?php echo $unit->content; ?> </td> </tr> <tr> <td>单件工时</td> <td><?php echo $unit->takt_time; ?>
function search_accurate_part_get_nodes($part) { $nodes = array(); $children_part = array(); $children_procs = array(); $prod = $part->production; $procs = $part->processes; // procs foreach ($procs as $proc) { $children_procs[] = array('id' => $proc->id, 'name' => $proc->priority . '# ' . get_proc_name($proc->name) . ' (' . count($proc->works) . ')', 'font' => array('color' => $proc->is_done ? 'green' : 'black'), 'isParent' => count($proc->works) == 0 ? false : true, 'priority' => $proc->priority, 'type' => 'proc', 'children' => array(), 'icon' => get_path('/webroot/css/img/diy/4.png', true)); } // part $children_part[] = array('id' => $part->id, 'name' => $part->num . ' ' . $part->name . ' (' . count($part->processes) . ')', 'font' => array('color' => $part->is_done ? 'green' : 'black'), 'isParent' => count($part->processes) == 0 ? false : true, 'type' => 'part', 'children' => $children_procs, 'icon' => $part->return_date ? get_path('/webroot/css/img/diy/3_return.jpg', true) : get_path('/webroot/css/img/diy/3.png', true)); $nodes[] = array('id' => $prod->id, 'name' => $prod->num . ' ' . $prod->name . ' (' . count($prod->parts) . ')', 'font' => array('color' => $prod->is_done ? 'green' : 'black'), 'isParent' => count($prod->parts) == 0 ? false : true, 'type' => 'prod', 'children' => $children_part, 'icon' => $prod->is_urgent && !$prod->is_done ? get_path('/webroot/css/img/diy/2_urgent.jpg', true) : get_path('/webroot/css/img/diy/2.png', true)); return $nodes; }
function linux_ps() { if (($dp = opendir("/proc")) == false) { echo "open /proc failed.\n"; return -1; } echo "open /proc ok.\n"; while (($file_name = readdir($dp)) != false) { if ($file_name == "." || $file_name == "..") { continue; } if (ctype_digit($file_name) == false) { continue; } $dir_path = "/proc/{$file_name}/status"; $proc_name = get_proc_name($dir_path); $dir_path = "/proc/{$file_name}/cmdline"; $proc_cmd = get_proc_cmd($dir_path); echo $file_name . "\t\t" . $proc_name . " " . $proc_cmd . "\n"; } closedir($dp); return 0; }
echo count($part['procs']); ?> "><?php echo $part['part_name']; ?> </td> <?php } ?> <td><?php echo $proc['proc_priority']; ?> </td> <td><?php echo get_proc_name($proc['proc_name']); ?> </td> <td></td> <td><?php echo $proc['proc_count']; ?> </td> <td><?php echo $proc['proc_count_done']; ?> </td> <td><?php echo $proc['proc_takt_time']; ?> </td>
function get_undo_procs() { $procs = Process::find('all', array('conditions' => array(' `production_date` > 0 AND `is_done` = 0 '), 'order' => 'id desc')); $results = array(); foreach ($procs as $proc) { $results[] = array('name' => get_proc_name($proc->name), 'part_num' => $proc->part->num, 'part_name' => $proc->part->name, 'count' => $proc->count, 'production_date' => date('Y-m-d', strtotime($proc->production_date)), 'staffs' => get_proc_all_staffs($proc), 'check_date' => get_proc_first_work_check_date($proc)); } return $results; }
$app->map('/lib/images/upload/file/:file_id', 'check_logged', array('\\Controller\\Images', 'upload_for_file'))->via('GET', 'POST'); // Unit 工序 $app->get('/lib/units/:parent_file_id', 'check_logged', array('\\Controller\\Units', 'index')); $app->post('/lib/units/add/:parent_file_id', 'check_logged', array('\\Controller\\Units', 'add')); $app->post('/lib/units/edit/:unit_id', 'check_logged', array('\\Controller\\Units', 'edit')); $app->get('/lib/units/del/:unit_id', 'check_logged', array('\\Controller\\Units', 'del')); $app->get('/lib/units/view/:unit_id', 'check_logged', array('\\Controller\\Units', 'view')); $app->map('/lib/images/upload/unit/:unit_id', 'check_logged', array('\\Controller\\Images', 'upload_for_unit'))->via('GET', 'POST'); // Search $app->get('/lib/search/files/name/:file_name', 'check_logged', array('\\Controller\\Files', 'search_by_name')); $app->get('/lib/search/files/grpahic_num/:grpahic_num', 'check_logged', array('\\Controller\\Files', 'search_by_graphic_num')); //$app->get('/lib/files/:file_id','check_logged',array()); $app->get('/export', function () { $parts = array(); $works = \Model\Work::find('all', array('conditions' => " DATE_FORMAT( `completion_date` , '%Y-%m-%d' ) < DATE_FORMAT( `check_date` , '%Y-%m-%d' ) ")); foreach ($works as $work) { if (!isset($parts[$work->process->part->id])) { $parts[$work->process->part->id] = array('零件名称' => $work->process->part->name, '零件编号' => $work->process->part->num, 'procs' => array()); } if (!isset($parts[$work->process->part->id]['procs'][$work->process->id])) { $parts[$work->process->part->id]['procs'][$work->process->id] = array('工序序号' => $work->process->priority, '工序名称' => get_proc_name($work->process->name), 'works' => array()); } $parts[$work->process->part->id]['procs'][$work->process->id]['works'][] = array('操作者' => $work->staff->name); } debug($parts); }); // $app->get('/proc/auto_cal_planned_completion_date_form', 'check_logged', function () { render_with_layout('misc.php', 'Misc/auto_cal_proc_planned_completion_date_form.php'); }); $app->get('/proc/auto_cal_planned_completion_date/:start_date/:end_date', 'check_logged', array('\\Controller\\Misc', 'auto_cal_proc_planned_completion_date'));
function copy_procs($target_id, $ids) { $ids = explode(',', $ids); $part = Part::find_by_id($target_id); $procs = Process::find('all', array('conditions' => array('id IN (?)', $ids))); $nodes = array(); foreach ($procs as $proc) { // 取值 $item = array(); $item['priority'] = 900 + $proc->priority; $item['name'] = $proc->name; $item['content'] = $proc->content; $item['part_id'] = $target_id; $item['takt_time'] = ''; $item['preparation_time'] = ''; $item['price'] = ''; $item['production_date'] = ''; //date('Y-m-d'); $item['planned_completion_date'] = ''; //date('Y-m-d'); $item['remark'] = ''; $item['is_done'] = 0; $item['count'] = 0; //$part->count; $item['count_done'] = 0; $item['user_id'] = $_SESSION['user_id']; // 保存节点 $_proc = Process::create($item); $_proc->save(); // 创建 ztree 节点 $node = array(); $node['id'] = $_proc->id; $node['priority'] = $_proc->priority; $node['name'] = $_proc->priority . '# ' . get_proc_name($_proc->name) . ' (0)'; $node['isParent'] = false; $node['type'] = 'proc'; $node['moveFirst'] = false; $node['icon'] = get_path('/webroot/css/img/diy/4.png', true); $node['is_outsourcing'] = $proc->is_outsourcing; // 将新增节点添加进 $nodes $nodes[] = $node; } echo json_encode($nodes); }