|
@@ -2,80 +2,87 @@
|
|
|
|
|
|
namespace App\Service;
|
|
|
|
|
|
-
|
|
|
-use App\Model\SysMenu;
|
|
|
-use App\Models\BasicProcess;
|
|
|
-use App\Models\Process;
|
|
|
+use App\Model\BasicProcess;
|
|
|
+use App\Model\Process;
|
|
|
|
|
|
/**
|
|
|
- * 工艺相关
|
|
|
+ * 工序相关
|
|
|
* @package App\Models
|
|
|
*/
|
|
|
class ProcessService extends Service
|
|
|
{
|
|
|
-
|
|
|
public function basicProcessEdit($data){
|
|
|
- list($status,$msg) = $this->basicProcessRule($data);
|
|
|
+ list($status,$msg) = $this->basicProcessRule($data,false);
|
|
|
if(!$status) return [$status,$msg];
|
|
|
- if($this->isEmpty($data,'id')) return [false,'ID不存在'];
|
|
|
- $first = BasicProcess::where('title',$data['title'])->where('del_time',0)->first();
|
|
|
- if(!empty($first))return [false,'名称已存在!'];
|
|
|
-
|
|
|
-
|
|
|
- $model = new BasicProcess();
|
|
|
- $model = $model->where('id',$data['id'])->first();
|
|
|
- $model->title = $data['title'];
|
|
|
- $model->parent_id = $data['parent_id'] ;
|
|
|
- $model->save();
|
|
|
|
|
|
+ $update = $msg['data'][0];
|
|
|
+ BasicProcess::where('id',$data['id'])->update($update);
|
|
|
|
|
|
return [true,'保存成功!'];
|
|
|
-
|
|
|
}
|
|
|
|
|
|
public function basicProcessAdd($data,$user){
|
|
|
-
|
|
|
-
|
|
|
-// if($this->isEmpty($data,'title')) return [201,'名称不存在!'];
|
|
|
list($status,$msg) = $this->basicProcessRule($data);
|
|
|
if(!$status) return [$status,$msg];
|
|
|
- $first = BasicProcess::where('title',$data['title'])->where('del_time',0)->first();
|
|
|
- if(!empty($first))return [false,'名称已存在!'];
|
|
|
|
|
|
- $model = new BasicProcess();
|
|
|
-
|
|
|
- $model->title = $data['title'];
|
|
|
- $model->parent_id = $data['parent_id'] ;
|
|
|
- $model->save();
|
|
|
+ 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()
|
|
|
+ 'del_time' => time()
|
|
|
]);
|
|
|
|
|
|
return [true,'删除成功'];
|
|
|
}
|
|
|
|
|
|
public function basicProcessList($data){
|
|
|
- $list = BasicProcess::where('del_time',0)->select('title','parent_id','crt_time','upd_time')->get()->toArray();
|
|
|
+ $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){
|
|
|
- if($this->isEmpty($data,'title')) return [false,'名称不存在!'];
|
|
|
- if($this->isEmpty($data,'parent_id')) return [false,'父级不存在!'];
|
|
|
-
|
|
|
- return [true,''];
|
|
|
+ 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){
|
|
@@ -85,22 +92,21 @@ class ProcessService extends Service
|
|
|
$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->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){
|
|
|
-
|
|
|
-
|
|
|
-// if($this->isEmpty($data,'title')) return [201,'名称不存在!'];
|
|
|
list($status,$msg) = $this->processRule($data);
|
|
|
if(!$status) return [$status,$msg];
|
|
|
$first = Process::where('title',$data['title'])->where('del_time',0)->first();
|
|
@@ -109,28 +115,39 @@ class ProcessService extends Service
|
|
|
$model = new Process();
|
|
|
|
|
|
$model->title = $data['title'];
|
|
|
- $model->p_id = $data['p_id'] ;
|
|
|
+ $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()
|
|
|
+ 'del_time' => time()
|
|
|
]);
|
|
|
|
|
|
return [true,'删除成功'];
|
|
|
}
|
|
|
|
|
|
public function processList($data){
|
|
|
- $list = Process::where('del_time',0)->select('title','p_id','crt_time','upd_time');
|
|
|
-// $return = $this->makeTree(0,$list);
|
|
|
-// $return = $this->set_sort_circle($return);
|
|
|
- $list = $this->limit($list,'',$list);
|
|
|
+ $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];
|
|
|
}
|
|
@@ -142,5 +159,11 @@ class ProcessService extends Service
|
|
|
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()];
|
|
|
+ }
|
|
|
}
|