basicProcessRule($data,false); if(!$status) return [$status,$msg]; $update = $msg['data'][0]; BasicProcess::where('id',$data['id'])->update($update); return [true,'保存成功!']; } public function basicProcessAdd($data,$user){ list($status,$msg) = $this->basicProcessRule($data); if(!$status) return [$status,$msg]; BasicProcess::insert($msg['data']); return [true,'保存成功!']; } public function basicProcessDel($data){ if($this->isEmpty($data,'id')) return [false,'ID必须!']; BasicProcess::where('id',$data['id'])->update([ 'del_time' => time() ]); return [true,'删除成功']; } public function basicProcessList($data){ $list = BasicProcess::where('del_time',0)->select('title','parent_id','crt_time','upd_time','id')->get()->toArray(); $return = $this->makeTree(0,$list); $return = $this->set_sort_circle($return); return [200,$return]; } public function basicProcessRule($data,$is_add = true){ if($this->isEmpty($data,'data')) return [false,'数据不能为空!']; $title = array_column($data['data'],'title'); $title = array_map(function($val) { return $val !== null ? $val : 0; }, $title); $title_count = array_count_values($title); foreach ($title as $value){ if(empty($value)) return [false,'名称不能为空!']; if($title_count[$value] > 1) return [false,'名称不能重复']; } foreach ($data['data'] as $key => $value){ $data['data'][$key]['upd_time'] = time(); if($is_add){ $bool = BasicProcess::where('title',$value['title']) ->where('del_time',0) ->exists(); $data['data'][$key]['crt_time'] = time(); }else{ if($this->isEmpty($data,'id')) return [false,'id不能为空!']; $bool = BasicProcess::where('title',$value['title']) ->where('id','<>',$data['id']) ->where('del_time',0) ->exists(); } if($bool) return [false,'名称不能重复']; $bool = Process::where('del_time',0) ->where('p_id',$value['parent_id']) ->exists(); if($bool) return [false,'分类下存在工序!']; } return [true,$data]; } public function processEdit($data){ list($status,$msg) = $this->processRule($data); if(!$status) return [$status,$msg]; if($this->isEmpty($data,'id')) return [false,'ID不存在']; $first = Process::where('title',$data['title'])->where('id','<>',$data['id'])->where('del_time',0)->first(); if(!empty($first))return [false,'名称已存在!']; $model = new Process(); $model = $model->where('id',$data['id'])->first(); $model->title = $data['title']; $model->p_id = $data['p_id']; $model->time = $data['time']; $model->capacity = $data['capacity']; $model->wages_unit = $data['wages_unit']; $model->wages = $data['wages']; $model->team_id = $data['team_id']; $model->save(); return [true,'保存成功!']; } public function processAdd($data,$user){ list($status,$msg) = $this->processRule($data); if(!$status) return [$status,$msg]; $first = Process::where('title',$data['title'])->where('del_time',0)->first(); if(!empty($first))return [false,'名称已存在!']; $model = new Process(); $model->title = $data['title']; $model->p_id = $data['p_id']; $model->time = $data['time']; $model->capacity = $data['capacity']; $model->wages_unit = $data['wages_unit']; $model->wages = $data['wages']; $model->team_id = $data['team_id']; $model->save(); return [true,'保存成功!']; } public function processDel($data){ if($this->isEmpty($data,'id')) return [false,'ID必须!']; Process::where('id',$data['id'])->update([ 'del_time' => time() ]); return [true,'删除成功']; } public function processList($data){ $model = Process::where('del_time',0)->select('*'); if(! empty($data['p_id'])) { $type = BasicProcess::where('del_time',0) ->select('id','parent_id') ->get()->toArray(); $result = array_merge($this->getAllDescendants($type,$data['p_id']),[$data['p_id']]); $model->whereIn("p_id", $result); } if(! empty($data['title'])) $model->where('title', 'LIKE', '%'.$data['title'].'%'); $list = $this->limit($model,'',$data); return [200,$list]; } public function processRule($data){ if($this->isEmpty($data,'title')) return [false,'名称不存在!']; if($this->isEmpty($data,'p_id')) return [false,'分类不存在!']; return [true,'']; } public function processDetail($data){ if($this->isEmpty($data,'id')) return [false,'ID不能为空!']; $first = Process::where('id',$data['id'])->select("*")->first(); if(empty($first)) return [true,[]]; return [true,$first->toArray()]; } }