model=new ManagerChange(); } public function create(){ $param = $this->request->only(["orderCode"=>[],"manager"=>"","managerid"=>"","companyNo"=>"","remark"=>""],"post","trim"); $valid=Validate::rule([ "orderCode|订单集合"=>"require|array", "manager|项目经理"=>"require|max:255", "managerid|项目经理"=>"require|number|gt:0", "companyNo|业务公司"=>"require" ]); if($valid->check($param)==false) return error_show(1004,$valid->getError()); $orderinfo= Db::name("sale")->whereIn("orderCode",$param['orderCode'])->where("supplierNo",$param['companyNo']) ->column("orderCode,manager,managerid","orderCode"); if(count($orderinfo)!= count($param['orderCode'])) return error_show(1004,"数据存在业务公司不一致"); $userCommon = \app\admin\common\User::getIns(); $supp = $userCommon->handle("getCodeAndName",["code"=>$param['companyNo']]); if(!isset($supp['data']) || empty($supp['data'])) return error_show(1004,'业务公司数据未获取到'); $companyName = $supp['data'][$param['companyNo']]?:""; foreach ($orderinfo as $item){ $data[]=[ 'apply_id'=>$this->uid, 'apply_name'=>$this->uname, 'orderCode'=>$item['orderCode'], 'old_manager'=>$item['manager'], 'old_managerid'=>$item['managerid'], 'companyName'=>$companyName, 'companyNo'=>$param['companyNo'], 'manager'=>$param['manager'], 'managerid'=>$param['managerid'], 'remark'=>$param['remark'], 'status'=>1 ]; } $ad =$this->model->saveAll($data); return $ad? app_show(0,"创建成功"): error_show(1004,"创建失败"); } public function list(){ $param = $this->request->only(['orderCode'=>'','oaCode'=>'','companyNo'=>'','apply_name'=>'','status'=>'','manager'=>'','old_manager'=>'','page'=>1,'size'=>15],'post','trim'); $where=[]; $param['orderCode']==''?: $where[]=['orderCode','like',"%{$param['orderCode']}%"]; $param['apply_name']==''?: $where[]=['apply_name','like',"%{$param['apply_name']}%"]; $param['companyNo']==''?: $where[]=['companyNo','like',"%{$param['companyNo']}%"]; $param['manager']==''?: $where[]=['manager','like',"%{$param['manager']}%"]; $param['old_manager']==''?: $where[]=['old_manager','like',"%{$param['old_manager']}%"]; $param['status']==''?: $where[]=['status','=',$param['status']]; $list = $this->model->where($where)->order('id','desc')->paginate(['page'=>$param['page'],'list_rows'=>$param['size']]); return app_show(0,'获取成功',['list'=>$list->items(),'count'=>$list->total()]); } public function info(){ $param = $this->request->only(['id'],'post','trim'); $info = $this->model->findOrEmpty($param['id']); return app_show(0,'获取成功',$info); } public function status(){ $param = $this->request->only(['id'=>'','status'=>'','remark'=>''],'post','trim'); $Valid =Validate::rule(['id|申请id'=>'require','status|状态'=>'require|number|in:2,3']); if($Valid->check($param)==false) return error_show(1004,$Valid->getError()); $info = $this->model->findOrEmpty($param['id']); if($info->isEmpty())return error_show(1004,'未找到申请单数据'); if($info->status!=1) return error_show(1004,'申请单数据已审核'); $info->status=$param['status']; $info->remark=$param['remark']; $this->model->startTrans(); try{ $up=$info->save(); if($up==false)throw new \Exception('申请单审核失败'); if($param['status']==2){ $update=["manager"=>$info->manager,"managerid"=>$info->managerid,"updatetime"=>date("Y-m-d H:i:s")]; Db::name("sale")->where("orderCode",$info->orderCode)->update($update); } $this->model->commit(); }catch (\Exception $exception){ $this->model->rollback(); return error_show(1004,$exception->getMessage()); } return app_show(0,'申请数据处理完成'); } //批量导入 public function export(){ $param = $this->request->only(['list'=>[],'companyNo'=>''],'post','trim'); $Valid =Validate::rule([ 'list|申请修改数据'=>'require|array', 'companyNo|业务公司'=>'require' ]); if($Valid->check($param)==false) return error_show(1004,$Valid->getError()); $valid=Validate::rule([ 'orderCode|订单集合'=>'require', 'manager|项目经理'=>'require|max:255', 'managerid|项目经理'=>'require|number|gt:0' ]); $userCommon = \app\admin\common\User::getIns(); $supp = $userCommon->handle('getCodeAndName',['code'=>$param['companyNo']]); if(!isset($supp['data']) || empty($supp['data'])) return error_show(1004,'业务公司数据未获取到'); $companyName = $supp['data'][$param['companyNo']]?:''; $orderUp=[]; $changeIn=[]; $sale=new \app\admin\model\Sale(); foreach ($param['list'] as $item){ if($valid->check($item)==false) return error_show(1004,$valid->getError()); $orderInfo = $sale->where(["orderCode"=>$item['orderCode'],"is_del"=>0])->findOrEmpty(); if($orderInfo->isEmpty()) return error_show(1004,"{$item['orderCode']} 未找到数据"); if($orderInfo['supplierNo']!=$param['companyNo'])return error_show(1004,"{$item['orderCode']} 业务公司不一致"); $orderUp[]=["id"=>$orderInfo['id'],"manager"=>$item['manager'],"managerid"=>$item['managerid'],"updatetime"=>date("Y-m-d H:i:s")]; $changeIn[]=[ 'orderCode'=>$item['orderCode'], 'apply_id'=>$this->uid, 'apply_name'=>$this->uname, 'manager'=>$item['manager'], 'managerid'=>$item['managerid'], 'companyName'=>$companyName, 'companyNo'=>$param['companyNo'], 'old_manager'=>$orderInfo->manager, 'remark'=>'', 'status'=>2, 'old_managerid'=>$orderInfo->managerid ]; } $this->model->startTrans(); try{ if(empty($orderUp)==false)$sale->saveAll($orderUp); if(empty($orderUp)==false)$this->model->saveAll($changeIn); $this->model->commit(); }catch (\Exception $e){ $this->model->rollback(); return error_show(1004,$e->getMessage()); } return app_show(0,'申请数据处理完成'); } }