function search_order_by_proc_name($start_date, $end_date) { // 按工序名称查询指定时间段内的工序 // 投产日期非空 $procs = Process::find('all', array('conditions' => array('DATE(`production_date`) > ? AND `is_done` = ? AND DATE(`planned_completion_date`) >= ? AND DATE(`planned_completion_date`) <= ?', 0, 0, $start_date, $end_date), 'order' => 'name asc')); //debug( $procs ); // 过滤急件,将工序对应的零件分类存储 $results = array(); foreach ($procs as $proc) { // 急件 if ($proc->part->production->is_urgent) { $part = $proc->part; // 创建 part if (!isset($results[$proc->name][$part->id])) { $results[$proc->name][$part->id] = array('part_num' => $part->num, 'part_name' => $part->name, 'part_count' => $part->count, 'procs' => array(array('proc_priority' => $proc->priority, '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)) : ''))); } else { // 追加 procs $results[$proc->name][$part->id]['procs'][] = array('proc_priority' => $proc->priority, '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)) : ''); } } } //debug( $results ); render_with_layout('misc.php', 'Urgent/list_group_by_proc.php', compact('results')); }
function auto_cal_proc_planned_completion_date($start_date, $end_date) { if (!has_perm(2, 4)) { exit; } $procs = Process::find('all', array('conditions' => array(" is_done = ? AND ( planned_completion_date is NULL OR planned_completion_date = 0 ) AND takt_time > 0 AND production_date >= ? AND production_date <= ?", 0, $start_date, $end_date))); foreach ($procs as $proc) { $cycle = cal_proc_production_cycle($proc); $proc->cycle = $cycle; $proc->planned_completion_date = cal_proc_planned_completion_date($proc->production_date, $cycle); $proc->save(); } render_with_layout('misc.php', 'Misc/auto_cal_proc_planned_completion_date.php', array('count' => count($procs))); }
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); }