isPost) { $car_man = $request->post('car_man'); $phone = $request->post('phone'); $car_no = $request->post('car_no'); $engine_no = $request->post('engine_no'); $car_frame_no = $request->post('car_frame_no'); $register_begin = $request->post('register_begin'); $register_end = $request->post('register_end'); $insurer1_begin = $request->post('insurer1_begin'); $insurer1_end = $request->post('insurer1_end'); $insurer1_month = $request->post('insurer1_month'); $insurer1_day = $request->post('insurer1_day'); $insurer1_month1 = $request->post('insurer1_month1'); $insurer1_day1 = $request->post('insurer1_day1'); $b_lib = $request->post('b_lib'); $c_lib = $request->post('c_lib'); $d_lib = $request->post('d_lib'); $e_lib = $request->post('e_lib'); $invalid_lib = $request->post('invalid_lib'); $unsel_lib = $request->post('unsel_lib'); $has_phone = $request->post('has_phone'); $company = $request->post('company'); $user1 = $request->post('user1'); $no_insurerdate = $request->post('no_insurerdate'); $clean_right = $request->post('clean_right'); $biaozhu = $request->post('biaozhu'); $car_use_id = $request->post('car_use_id'); } else { $car_man = $request->get('car_man'); $phone = $request->get('phone'); $car_no = $request->get('car_no'); $engine_no = $request->get('engine_no'); $car_frame_no = $request->get('car_frame_no'); $register_begin = $request->get('register_begin'); $register_end = $request->get('register_end'); $insurer1_begin = $request->get('insurer1_begin'); $insurer1_end = $request->get('insurer1_end'); $insurer1_month = $request->get('insurer1_month'); $insurer1_day = $request->get('insurer1_day'); $insurer1_month1 = $request->get('insurer1_month1'); $insurer1_day1 = $request->get('insurer1_day1'); $b_lib = $request->get('b_lib'); $c_lib = $request->get('c_lib'); $d_lib = $request->get('d_lib'); $e_lib = $request->get('e_lib'); $invalid_lib = $request->get('invalid_lib'); $unsel_lib = $request->get('unsel_lib'); $has_phone = $request->get('has_phone'); $company = $request->get('company'); $user1 = $request->get('user1'); $no_insurerdate = $request->get('no_insurerdate'); $clean_right = $request->get('clean_right'); $biaozhu = $request->get('biaozhu'); $car_use_id = $request->get('car_use_id'); } $params = array(); $params['car_man'] = $car_man; $params['phone'] = $phone; $params['car_no'] = $car_no; $params['engine_no'] = $engine_no; $params['car_frame_no'] = $car_frame_no; $params['register_begin'] = $register_begin; $params['register_end'] = $register_end; $params['insurer1_begin'] = $insurer1_begin; $params['insurer1_end'] = $insurer1_end; $params['insurer1_month'] = $insurer1_month; $params['insurer1_day'] = $insurer1_day; $params['insurer1_month1'] = $insurer1_month1; $params['insurer1_day1'] = $insurer1_day1; $params['b_lib'] = $b_lib; $params['c_lib'] = $c_lib; $params['d_lib'] = $d_lib; $params['e_lib'] = $e_lib; $params['invalid_lib'] = $invalid_lib; $params['unsel_lib'] = $unsel_lib; $params['has_phone'] = $has_phone; $params['company'] = $company; $params['user1'] = $user1; $params['no_insurerdate'] = $no_insurerdate; $params['clean_right'] = $clean_right; $params['biaozhu'] = $biaozhu; $params['car_use_id'] = $car_use_id; $query = CarT::find(); $libs = array(); if($b_lib == 1) { $libs[] = 2; } if($c_lib == 1) { $libs[] = 3; } if($d_lib == 1) { $libs[] = 4; } if($e_lib == 1) { $libs[] = 6; } if($invalid_lib == 1) { $libs[] = 5; } if($unsel_lib == 1) { $libs[] = 1; } if(count($libs) > 0) $query->andWhere(['in','location',$libs]); if($car_man != '') { $query->andWhere('car_man like "'.$car_man.'"'); } if($phone != '') { $query->andWhere('car_man_phone=:phone or id_man_phone=:phone',[':phone'=>$phone]); } if($car_no != '') { $query->andWhere('car_no like "'.$car_no.'%"'); } if($engine_no != '') { $query->andWhere('engine_no="'.$engine_no.'"'); } if($car_frame_no != '') { $query->andWhere('car_frame_no="'.$car_frame_no.'"'); } if($register_begin != '') { $query->andWhere('register_date>="'.$register_begin.'"'); } if($register_end != '') { $query->andWhere('register_date<="'.$register_end.'"'); } if($insurer1_begin != '') { $query->andWhere('insurer1_date>="'.$insurer1_begin.'"'); } if($insurer1_end != '') { $query->andWhere('insurer1_date<="'.$insurer1_end.'"'); } if($insurer1_month != '') { $query->andWhere('month(car_t.insurer1_date)>="'.$insurer1_month.'"'); } if($insurer1_day != '') { $query->andWhere('day(car_t.insurer1_date)>="'.$insurer1_day.'"'); } if($insurer1_month1 != '') { $query->andWhere('month(car_t.insurer1_date)<="'.$insurer1_month1.'"'); } if($insurer1_day1 != '') { $query->andWhere('day(car_t.insurer1_date)<="'.$insurer1_day1.'"'); } if($clean_right != '') { $query->andWhere('car_t.clean_right="'.$clean_right.'"'); } if($biaozhu != '') { $query->andWhere('car_t.biaozhu="'.$biaozhu.'"'); } if($has_phone == 1) { $query->andWhere('car_man_phone<>""'); } if($no_insurerdate == 1) { $query->andWhere('insurer1_date="" or insurer1_date is null or insurer1_date="0000-00-00"'); } if($company != '') { $query->andWhere('company like "'.$company.'%"'); } if($user1 != '') { $query->andWhere('op_user1 like "'.$user1.'%"'); } if($car_use_id > 0) { $query->andWhere('car_use_id='.$car_use_id); } return ['query'=>$query,'params'=>$params]; } //A库列表页 public function actionAIndex() { $invalid_items = InvalidT::getTree(); $car_use_items = CarUseT::find()->all(); return $this->render('a-index',[ 'invalid_items' => $invalid_items, 'car_use_items' => $car_use_items ]); } //A库列表数据 public function actionAIndexJson() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $offset = $request->get('offset',0); $limit = $request->get('limit', 10); $data = $this->getAQuery($request); $query = $data['query']; // $query->andWhere('location=1'); $total = $query->count(); $query->orderBy('id desc'); $query = $query->offset($offset)->limit($limit); $items = $query->all(); $data = []; $data['total'] = $total; $data['rows'] = []; foreach($items as $item) { $row = $item->toArray(); $row['factory_model'] = MyLib::substr_cut($item->factory_model, 8); $row['car_man'] = MyLib::substr_cut($item->car_man, 8); $row['location_name'] = $item->getLocation(); $data['rows'][] = $row; } return $data; } //钩选A库到B库 public function actionAB() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '操作失败'; if($request->isPost) { $ids = explode(',',$request->post('ids')); if(count($ids) == 0) { $result['msg'] = '请先钩选车辆'; return $result; } $tran = CarT::getDb()->beginTransaction(); try { foreach($ids as $id) { $car_info = CarT::findOne(['id'=>$id]); if($car_info->location == 1) { $car_info->location = 2; $car_info->xubao_num = 0; if(!$car_info->save(false)) { throw new Exception(print_r($car_info->getFirstErrors(),true)); } $b_info = CarBT::findOne(['id'=>$car_info->id]); if(!$b_info) { $b_info = new CarBT(false); $b_info->id = $car_info->id; $b_info->user_id = 0; if(!$b_info->save(false)) { throw new Exception(print_r($b_info->getFirstErrors(),true)); } } $this->addLog($car_info->id,'从A库分配到B库',1); } } $result['success'] = true; $result['msg'] = '操作成功'; $tran->commit(); } catch (\Exception $e) { $tran->rollBack(); $result['msg'] = $e->getMessage(); } } return $result; } //批量A库到B库 public function actionABAll() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '操作失败'; $data = $this->getAQuery($request); $query = $data['query']; // $query->andWhere('location=1'); $tran = CarT::getDb()->beginTransaction(); try { foreach($query->each(1000) as $car_info) { if($car_info->location == 1) { $car_info->location = 2; $car_info->xubao_num = 0; if(!$car_info->save(false)) { throw new Exception(print_r($car_info->getFirstErrors(),true)); } $b_info = CarBT::findOne(['id'=>$car_info->id]); if(!$b_info) { $b_info = new CarBT(false); $b_info->id = $car_info->id; $b_info->user_id = 0; if(!$b_info->save(false)) { throw new Exception(print_r($b_info->getFirstErrors(),true)); } } $this->addLog($car_info->id,'从A库分配到B库',1); } } $result['success'] = true; $result['msg'] = '操作成功'; $tran->commit(); } catch (\Exception $e) { $tran->rollBack(); $result['msg'] = $e->getMessage(); } return $result; } //钩选A库到C库 public function actionAC() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '操作失败'; if($request->isPost) { $ids = explode(',', $request->post('ids')); if (count($ids) == 0) { $result['msg'] = '请先钩选车辆'; return $result; } $tran = CarT::getDb()->beginTransaction(); try { foreach($ids as $id) { $car_info = CarT::findOne(['id'=>$id]); if($car_info->location == 1) { $car_info->location = 3; $car_info->xubao_num = 1; if(!$car_info->save(false)) { throw new Exception(print_r($car_info->getFirstErrors(),true)); } $c_info = CarCT::findOne(['id'=>$car_info->id]); if(!$c_info) { $c_info = new CarCT(false); $c_info->id = $car_info->id; $c_info->user_id = 0; if(!$c_info->save(false)) { throw new Exception(print_r($c_info->getFirstErrors(),true)); } } $this->addLog($car_info->id,'从A库分配到C库',1); } } $result['success'] = true; $result['msg'] = '操作成功'; $tran->commit(); } catch (\Exception $e) { $tran->rollBack(); $result['msg'] = $e->getMessage(); } return $result; } } //钩选A库到无效库 public function actionAInvalid() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '操作失败'; if($request->isPost) { $ids = explode(',',$request->post('ids')); $invalid_id = $request->post('invalid_id',0); if($invalid_id == 0) { $result['msg'] = '请选择无效理由'; return $result; } if($ids[0] == '') { $result['msg'] = '请先钩选车辆'; return $result; } $tran = CarT::getDb()->beginTransaction(); try { foreach($ids as $id) { $car_info = CarT::findOne(['id'=>$id]); if($car_info->location == 1) { $car_info->location = 5; if(!$car_info->save(false)) { throw new Exception(print_r($car_info->getFirstErrors(),true)); } $invalid_info = CarInvalidT::findOne(['id'=>$car_info->id]); if(!$invalid_info) { $invalid_info = new CarInvalidT(false); $invalid_info->id = $car_info->id; $invalid_info->user_id = $this->my->id; $invalid_info->invalid_id = $invalid_id; if(!$invalid_info->save(false)) { throw new Exception(print_r($invalid_info->getFirstErrors(),true)); } } $this->addLog($car_info->id,'从A库移动到无效库',1); } } $result['success'] = true; $result['msg'] = '操作成功'; $tran->commit(); } catch (\Exception $e) { $tran->rollBack(); $result['msg'] = $e->getMessage(); } } return $result; } //B库 //获取搜索条件 private function getBQuery($request) { if($request->isPost) { $car_man = $request->post('car_man'); $phone = $request->post('phone'); $car_no = $request->post('car_no'); $register_begin = $request->post('register_begin'); $register_end = $request->post('register_end'); $insurer1_begin = $request->post('insurer1_begin'); $insurer1_end = $request->post('insurer1_end'); $insurer1_month = $request->post('insurer1_date'); $insurer1_day = $request->post('insurer1_day'); $insurer1_month1 = $request->post('insurer1_date1'); $insurer1_day1 = $request->post('insurer1_day1'); $username = $request->post('username'); $status = $request->post('status'); $sort_key = $request->post('sort_key'); $sort_value = $request->post('sort_value'); $company = $request->post('company'); $clean_right = $request->post('clean_right'); } else { $car_man = $request->get('car_man'); $phone = $request->get('phone'); $car_no = $request->get('car_no'); $register_begin = $request->get('register_begin'); $register_end = $request->get('register_end'); $insurer1_begin = $request->get('insurer1_begin'); $insurer1_end = $request->get('insurer1_end'); $insurer1_month = $request->get('insurer1_date'); $insurer1_day = $request->get('insurer1_day'); $insurer1_month1 = $request->get('insurer1_date1'); $insurer1_day1 = $request->get('insurer1_day1'); $username = $request->get('username'); $status = $request->get('status'); $sort_key = $request->get('sort_key'); $sort_value = $request->get('sort_value'); $company = $request->get('company'); $clean_right = $request->get('clean_right'); } $query = CarBT::find() ->leftJoin(CarT::tableName(),'`car_t`.`id`=`car_b_t`.`id`'); if($car_man != '') { $query->andWhere('car_t.car_man like "'.$car_man.'"'); } if($phone != '') { $query->andWhere('car_t.car_man_phone=:phone or car_t.id_man_phone=:phone',[':phone'=>$phone]); } if($car_no != '') { if($car_no == '非京'){ $query->andWhere('car_no not like "京%"'); }else{ $query->andWhere('car_no like "'.$car_no.'%"'); } } if($register_begin != '') { $query->andWhere('car_t.register_date>="'.$register_begin.'"'); } if($register_end != '') { $query->andWhere('car_t.register_date<="'.$register_end.'"'); } if($insurer1_begin != '') { $query->andWhere('car_t.insurer1_date>="'.$insurer1_begin.'"'); } if($insurer1_end != '') { $query->andWhere('car_t.insurer1_date<="'.$insurer1_end.'"'); } if($status == 1) { $query->andWhere('car_b_t.user_id=0'); } if($status == 2) { $query->andWhere('car_b_t.user_id>0'); } if($username != '') { $user_info = UserT::findOne(['username'=>$username]); if($user_info) { $query->andWhere('car_b_t.user_id='.$user_info->id); } } if($company != '') { $query->andWhere('company like "'.$company.'%"'); } $query = $query->orderBy($sort_key.' '.$sort_value.', car_b_t.id '.$sort_value); return ['query'=>$query]; } //B库列表页 public function actionBIndex() { $user_items = $this->my->getChildren(); $invalid_items = InvalidT::getTree(); return $this->render('b-index',[ 'user_items' => $user_items, 'invalid_items' => $invalid_items ]); } //B库列表数据 public function actionBIndexJson() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $offset = $request->get('offset',0); $limit = $request->get('limit', 10); $data = $this->getBQuery($request); $query = $data['query']; // $query->andWhere('location=1'); $total = $query->count(); $query->orderBy('id desc'); $query = $query->offset($offset)->limit($limit); // echo $query->createCommand()->rawSql; $items = $query->all(); $data = []; $data['total'] = $total; $data['rows'] = []; foreach($items as $item) { $car_info = $item->car; if(!$car_info) continue; $row = $car_info->toArray(); $row['factory_model'] = MyLib::substr_cut($car_info->factory_model, 8); $row['car_man'] = MyLib::substr_cut($car_info->car_man, 8); $row['op_user'] = $item->user?$item->user->getShowName():''; $data['rows'][] = $row; } return $data; } //勾选B库分配 public function actionBAssign() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '操作失败'; if($request->isPost) { $ids = explode(',',$request->post('ids')); $user_id = $request->post('user_id',0); //针对数据处理的数据 if($user_id == 0) { $result['msg'] = '请先选择分配给哪个业务员'; return $result; } if($ids[0] == '') { $result['msg'] = '请先钩选车辆'; return $result; } $tran = CarT::getDb()->beginTransaction(); try { foreach($ids as $id) { $b_info = CarBT::findOne(['id'=>$id]); if($b_info->user_id > 0) { continue; } $b_info->user_id = $user_id; if(!$b_info->save()) { throw new \Exception(print_r($b_info->getErrors(),true)); } //添加保单 $order_row = new OrderT(); $order_row->car_id = $b_info->id; $order_row->car_no = $b_info->car->car_no; $order_row->engine_no = $b_info->car->engine_no; $order_row->car_frame_no = $b_info->car->car_frame_no; $order_row->car_man = $b_info->car->car_man; $order_row->car_man_number = $b_info->car->car_man_number; $order_row->car_man_phone = $b_info->car->car_man_phone; $order_row->user_id = $user_id; $order_row->status_id = 1; $order_row->id_man = $b_info->car->car_man; $order_row->id_man_number = $b_info->car->id_man_number; $order_row->link_man = $b_info->car->car_man; $order_row->link_man_phone = $b_info->car->car_man_phone; $order_row->link_man_number = $b_info->car->id_man_number; if(!$order_row->save()) { throw new \Exception(print_r($order_row->getErrors(),true)); } //添加保单操作员 $order_user_info = new OrderUserT(); $order_user_info->user_id = $user_id; $order_user_info->order_id = $order_row->id; $order_user_info->type_id = 1; $order_user_info->status = 0; if(!$order_user_info->save()) { throw new \Exception(print_r($order_user_info->getErrors(),true)); } //添加预约 AppointmentT::deleteAll('car_id='.$b_info->id); $row = new AppointmentT(); $row->car_id = $b_info->id; $row->user_id = $user_id; $row->pdate = date('Y-m-d'); $row->ptype = 0; $row->ptime = '09:00'; $row->remark = '首次分配'; $row->is_first = 1; $row->xdate = date('Y-m-d'); $row->xtime = '09:00'; $row->xbao = 2; if(!$row->save()) { throw new \Exception(print_r($row->getErrors(),true)); } //添加历史预约 $h_row = new AppointmentHistoryT(); $h_row->car_id = $b_info->id; $h_row->user_id = $user_id; $h_row->pdate = date('Y-m-d'); $h_row->ptype = 0; $h_row->ptime = '09:00'; $h_row->remark = '首次分配'; $h_row->xdate = date('Y-m-d'); $h_row->xtime = '09:00'; $h_row->xbao = 2; if(!$h_row->save()) { throw new \Exception(print_r($h_row->getErrors(),true)); } $this->addLog($b_info->id,'从B库分配数据给业务员:'.$b_info->user->getShowName(),1); } $result['success'] = true; $result['msg'] = '操作成功'; $tran->commit(); } catch (\Exception $e) { $tran->rollBack(); $result['msg'] = $e->getMessage(); } } return $result; } //勾选B库回收 public function actionBReturn() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '操作失败'; if($request->isPost) { $ids = explode(',',$request->post('ids')); if($ids[0] == '') { $result['msg'] = '请先钩选需要操作的车辆'; return $result; } $tran = CarT::getDb()->beginTransaction(); try { foreach($ids as $id) { $b_info = CarBT::findOne(['id'=>$id]); $this->addLog($b_info->id,'从B库业务手中回收数据',1); //删除预约 AppointmentT::deleteAll('car_id='.$b_info->id); //删除保单 还没有正本生成的保单可以直接删除,正本生成后,需要退单操作 //删除操作人员 $orders = OrderT::find() ->where('car_id='.$b_info->id.' and status_id<5') ->all(); foreach($orders as $order_info) { OrderUserT::deleteAll('order_id='.$order_info->id); //删除保单 $order_info->delete(); } $b_info->user_id = 0; $b_info->save(); } $result['success'] = true; $result['msg'] = '操作成功'; $tran->commit(); } catch (\Exception $e) { $tran->rollBack(); $result['msg'] = $e->getMessage(); } } return $result; } //批量B库分配 public function actionBAllAssign() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '操作失败'; if($request->isPost) { $status = $request->post('status'); $assign_users = explode(',',$request->post('assign_users')); $assign_count = $request->post('assign_count',0); $assign_user_ids = array(); foreach($assign_users as $assign_user) { $user_info = UserT::findOne(['username'=>$assign_user,'is_delete'=>0]); if($user_info) $assign_user_ids[] = $user_info->id; } if(count($assign_user_ids) == 0) { $result['msg'] = '请输入业务员工号,以英文逗号间隔'; return $result; } if($assign_count == 0) { $result['msg'] = '请输入每个业务员分配记录数'; return $result; } $data = $this->getBQuery($request); $query = $data['query']; // var_dump($query); // echo $query->createCommand()->rawSql; // echo $query->count(); // exit; $tran = CarT::getDb()->beginTransaction(); try { $page = 0; $total_pages = count($assign_user_ids); $index = 0; foreach($query->each(100) as $b_info) { if($index >= ($page+1) * $assign_count) $page += 1; if($page == $total_pages) break; if($b_info->user_id > 0) continue; $b_info->user_id = $assign_user_ids[$page]; if(!$b_info->save()) { throw new \Exception(print_r($b_info->getErrors(),true)); } $car_info = $b_info->car; $car_info->op_user1 = $b_info->user->getShowName(); if(!$car_info->save(false)) { throw new \Exception(print_r($car_info->getErrors(), true)); } //添加保单 $order_row = new OrderT(); $order_row->car_id = $b_info->id; $order_row->car_no = $b_info->car->car_no; $order_row->engine_no = $b_info->car->engine_no; $order_row->car_frame_no = $b_info->car->car_frame_no; $order_row->car_man = $b_info->car->car_man; $order_row->user_id = $b_info->user_id; $order_row->status_id = 1; $order_row->id_man = $b_info->car->car_man; $order_row->link_man = $b_info->car->car_man; $order_row->link_man_phone = $b_info->car->car_man_phone; $order_row->link_man_number = $b_info->car->id_man_number; $order_row->return_status_id = 0; $order_row->return_remark = ''; if(!$order_row->save()) { throw new \Exception(print_r($order_row->getErrors(),true)); } //添加预约 AppointmentT::deleteAll('car_id='.$b_info->id); $row = new AppointmentT(); $row->car_id = $b_info->id; $row->user_id = $b_info->user_id; $row->pdate = date('Y-m-d'); $row->ptime = '09:00'; $row->ptype = 0; $row->remark = '首次分配'; $row->is_first = 1; $row->xdate = date('Y-m-d'); $row->xtime = '09:00'; $row->xbao = 2; if(!$row->save()) { throw new \Exception(print_r($row->getErrors(),true)); } //添加历史预约 $h_row = new AppointmentHistoryT(); $h_row->car_id = $b_info->id; $h_row->user_id = $b_info->user_id; $h_row->pdate = date('Y-m-d'); $h_row->ptime = '09:00'; $h_row->ptype = 0; $h_row->remark = '首次分配'; $h_row->xdate = date('Y-m-d'); $h_row->xtime = '09:00'; $h_row->xbao = 2; if(!$h_row->save()) { throw new \Exception(print_r($h_row->getErrors(),true)); } $this->addLog($b_info->id,'从B库分配数据给业务员:'.$b_info->user->getShowName(),1); $index++; } $result['success'] = true; $result['msg'] = '操作成功'; $tran->commit(); } catch (\Exception $e) { $tran->rollBack(); $result['msg'] = $e->getMessage(); } } return $result; } //批量B库回收 public function actionBReturnAllA() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '操作失败'; if($request->isPost) { $status = $request->post('status'); $register_begin = $request->post('register_begin'); $register_end = $request->post('register_end'); $insurer1_begin = $request->post('insurer1_begin'); $insurer1_end = $request->post('insurer1_end'); $query = CarBT::find() ->leftJoin('car_t','`car_t`.`id`=`car_b_t`.`id`'); if($register_begin != '') { $query->andWhere('car_t.register_date>="'.$register_begin.'"'); } if($register_end != '') { $query->andWhere('car_t.register_date<="'.$register_end.'"'); } if($insurer1_begin != '') { $query->andWhere('car_t.insurer1_date>="'.$insurer1_begin.'"'); } if($insurer1_end != '') { $query->andWhere('car_t.insurer1_end<="'.$insurer1_end.'"'); } $tran = CarT::getDb()->beginTransaction(); try { foreach($query->each(1000) as $item) { //删除预约 AppointmentT::deleteAll('car_id='.$item->id); //删除保单 还没有正本生成的保单可以直接删除,正本生成后,需要退单操作 //删除操作人员 $orders = OrderT::find() ->where('car_id='.$item->id.' and status_id<5') ->all(); foreach($orders as $order_info) { OrderUserT::deleteAll('order_id='.$order_info->id); //删除保单 $order_info->delete(); } $item->user_id = 0; $item->save(); // FiltrationT //删除预约拨打 // FiltrationT::deleteAll('car_id='.$c_info->id); $this->addLog($item->id,'从B库业务员手中批量回收数据',1); } $result['success'] = true; $result['msg'] = '操作成功'; $tran->commit(); } catch (\Exception $e) { $tran->rollBack(); $result['msg'] = $e->getMessage(); } } return $result; } //钩选B库到无效库 public function actionBInvalid() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '操作失败'; if($request->isPost) { $ids = explode(',',$request->post('ids')); $invalid_id = $request->post('invalid_id',0); if($invalid_id == 0) { $result['msg'] = '请选择无效理由'; return $result; } if($ids[0] == '') { $result['msg'] = '请先钩选车辆'; return $result; } $tran = CarT::getDb()->beginTransaction(); try { foreach($ids as $id) { $car_info = CarT::findOne(['id'=>$id]); if($car_info->location == 2) { $car_info->location = 5; if(!$car_info->save(false)) { throw new Exception(print_r($car_info->getFirstErrors(),true)); } $invalid_info = CarInvalidT::findOne(['id'=>$car_info->id]); if(!$invalid_info) { $invalid_info = new CarInvalidT(false); $invalid_info->id = $car_info->id; $invalid_info->user_id = $this->my->id; $invalid_info->invalid_id = $invalid_id; if(!$invalid_info->save(false)) { throw new Exception(print_r($invalid_info->getFirstErrors(),true)); } } $b_info = CarBT::findOne(['id'=>$id]); if($b_info->user_id > 0) { //删除预约 AppointmentT::deleteAll('car_id='.$b_info->id); //删除保单 还没有正本生成的保单可以直接删除,正本生成后,需要退单操作 //删除操作人员 $orders = OrderT::find() ->where('car_id='.$b_info->id.' and status_id<5') ->all(); foreach($orders as $order_info) { OrderUserT::deleteAll('order_id='.$order_info->id); //删除保单 $order_info->delete(); } } $this->addLog($car_info->id,'从B库移动到无效库',1); } } $result['success'] = true; $result['msg'] = '操作成功'; $tran->commit(); } catch (\Exception $e) { $tran->rollBack(); $result['msg'] = $e->getMessage(); } } return $result; } //C库 //C库列表页 private function getCQuery($request) { if($request->isPost) { $car_man = $request->post('car_man'); $phone = $request->post('phone'); $car_no = $request->post('car_no'); $print_begin = $request->post('print_begin'); $print_end = $request->post('print_end'); $insurer1_begin = $request->post('insurer1_begin'); $insurer1_end = $request->post('insurer1_end'); $insurer1_month = $request->post('insurer1_month'); $insurer1_day = $request->post('insurer1_day'); $insurer1_month1 = $request->post('insurer1_month1'); $insurer1_day1 = $request->post('insurer1_day1'); $status = $request->post('status'); $username = $request->post('username'); $sort_key = $request->post('sort_key'); $sort_value = $request->post('sort_value'); $old_user = $request->post('old_user'); $company = $request->post('company'); $user1 = $request->post('user1'); $clean_right = $request->post('clean_right'); } else { $car_man = $request->get('car_man'); $phone = $request->get('phone'); $car_no = $request->get('car_no'); $print_begin = $request->get('print_begin'); $print_end = $request->get('print_end'); $insurer1_begin = $request->get('insurer1_begin'); $insurer1_end = $request->get('insurer1_end'); $insurer1_month = $request->get('insurer1_month'); $insurer1_day = $request->get('insurer1_day'); $insurer1_month1 = $request->get('insurer1_month1'); $insurer1_day1 = $request->get('insurer1_day1'); $status = $request->get('status'); $username = $request->get('username'); $sort_key = $request->get('sort_key'); $sort_value = $request->get('sort_value'); $old_user = $request->get('old_user'); $company = $request->get('company'); $user1 = $request->get('user1'); $clean_right = $request->get('clean_right'); } $query = CarCT::find() ->leftJoin(CarT::tableName(),'`car_t`.`id`=`car_c_t`.`id`'); if($car_man != '') { $query->andWhere('car_t.car_man like "'.$car_man.'"'); } if($phone != '') { $query->andWhere('car_t.car_man_phone=:phone or car_t.id_man_phone=:phone',[':phone'=>$phone]); } if($car_no != '') { $query->andWhere('car_t.car_no like "'.$car_no.'"'); } if($print_begin != '') { $query->andWhere('car_t.print_date>="'.$print_begin.'"'); } if($print_end != '') { $query->andWhere('car_t.print_date<="'.$print_end.'"'); } if($insurer1_begin != '') { $query->andWhere('car_t.insurer1_date>="'.$insurer1_begin.'"'); } if($insurer1_end != '') { $query->andWhere('car_t.insurer1_date<="'.$insurer1_end.'"'); } if($insurer1_month != '') { $query->andWhere('month(car_t.insurer1_date)>="'.$insurer1_month.'"'); } if($insurer1_day != '') { $query->andWhere('day(car_t.insurer1_date)>="'.$insurer1_day.'"'); } if($insurer1_month1 != '') { $query->andWhere('month(car_t.insurer1_date)<="'.$insurer1_month1.'"'); } if($insurer1_day1 != '') { $query->andWhere('day(car_t.insurer1_date)<="'.$insurer1_day1.'"'); } if($status == 1) { $query->andWhere('car_c_t.user_id=0'); } if($status == 2) { $query->andWhere('car_c_t.user_id>0'); } if($username != '') { $user_info = UserT::findOne(['username'=>$username]); if($user_info) { $query->andWhere('car_c_t.user_id='.$user_info->id); } } if($old_user != '') { $query->andWhere('car_t.old_user="'.$old_user.'"'); } if($company != '') { $query->andWhere('company like"'.$company.'%"'); } if($user1 != '') { $query->andWhere('op_user1 like "'.$user1.'%"'); } if($clean_right != '') { $query->andWhere('car_t.clean_right="'.$clean_right.'"'); } $query->orderBy($sort_key.' '.$sort_value.', car_c_t.id '.$sort_value); return ['query'=>$query]; } public function actionCIndex() { $user_items = $this->my->getChildren(); $invalid_items = InvalidT::getTree(); return $this->render('c-index',[ 'user_items' => $user_items, 'invalid_items' => $invalid_items ]); } public function actionCIndexJson() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $offset = $request->get('offset',0); $limit = $request->get('limit', 10); $data = $this->getCQuery($request); $query = $data['query']; // $query->andWhere('location=1'); $total = $query->count(); $query->orderBy('id desc'); $query = $query->offset($offset)->limit($limit); $items = $query->all(); $data = []; $data['total'] = $total; $data['rows'] = []; foreach($items as $item) { $car_info = $item->car; if(!$car_info) continue; $row = $car_info->toArray(); $row['factory_model'] = MyLib::substr_cut($car_info->factory_model, 8); $row['car_man'] = MyLib::substr_cut($car_info->car_man, 8); $row['op_user'] = $item->user?$item->user->getShowName():''; $data['rows'][] = $row; } return $data; } public function actionCAssign() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '操作失败'; if($request->isPost) { $ids = explode(',',$request->post('ids')); $user_id = $request->post('user_id',0); //针对数据处理的数据 if($user_id == 0) { $result['msg'] = '请先选择分配给哪个业务员'; return $result; } if($ids[0] == '') { $result['msg'] = '请先钩选车辆'; return $result; } $tran = CarT::getDb()->beginTransaction(); try { foreach($ids as $id) { $c_info = CarCT::findOne(['id'=>$id]); if($c_info->user_id > 0) { continue; } $c_info->user_id = $user_id; if(!$c_info->save()) { throw new \Exception(print_r($c_info->getErrors(),true)); } //添加保单 $order_row = new OrderT(); $order_row->car_id = $c_info->id; $order_row->car_no = $c_info->car->car_no; $order_row->engine_no = $c_info->car->engine_no; $order_row->car_frame_no = $c_info->car->car_frame_no; $order_row->car_man = $c_info->car->car_man; $order_row->car_man_number = $c_info->car->car_man_number; $order_row->car_man_phone = $c_info->car->car_man_phone; $order_row->user_id = $user_id; $order_row->status_id = 1; $order_row->id_man = $c_info->car->car_man; $order_row->id_man_number = $c_info->car->id_man_number; $order_row->link_man = $c_info->car->car_man; $order_row->link_man_phone = $c_info->car->car_man_phone; $order_row->link_man_number = $c_info->car->id_man_number; if(!$order_row->save()) { throw new \Exception(print_r($order_row->getErrors(),true)); } //添加保单操作员 $order_user_info = new OrderUserT(); $order_user_info->user_id = $user_id; $order_user_info->order_id = $order_row->id; $order_user_info->type_id = 1; $order_user_info->status = 0; if(!$order_user_info->save()) { throw new \Exception(print_r($order_user_info->getErrors(),true)); } //添加预约 AppointmentT::deleteAll('car_id='.$c_info->id); $row = new AppointmentT(); $row->car_id = $c_info->id; $row->user_id = $user_id; $row->pdate = date('Y-m-d'); $row->ptype = 0; $row->ptime = '09:00'; $row->remark = '首次分配'; $row->is_first = 1; $row->xdate = date('Y-m-d'); $row->xtime = '09:00'; $row->xbao = 2; if(!$row->save()) { throw new \Exception(print_r($row->getErrors(),true)); } //添加历史预约 $h_row = new AppointmentHistoryT(); $h_row->car_id = $c_info->id; $h_row->user_id = $user_id; $h_row->pdate = date('Y-m-d'); $h_row->ptype = 0; $h_row->ptime = '09:00'; $h_row->remark = '首次分配'; $h_row->xdate = date('Y-m-d'); $h_row->xtime = '09:00'; $h_row->xbao = 2; if(!$h_row->save()) { throw new \Exception(print_r($h_row->getErrors(),true)); } $this->addLog($c_info->id,'从C库分配数据给业务员:'.$c_info->user->getShowName(),1); } $result['success'] = true; $result['msg'] = '操作成功'; $tran->commit(); } catch (\Exception $e) { $tran->rollBack(); $result['msg'] = $e->getMessage(); } } return $result; } public function actionCReturn() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '操作失败'; if($request->isPost) { $ids = explode(',',$request->post('ids')); if($ids[0] == '') { $result['msg'] = '请先钩选车辆'; return $result; } $tran = CarT::getDb()->beginTransaction(); try { foreach($ids as $id) { $c_info = CarCT::findOne(['id'=>$id]); if($c_info->user_id > 0) $this->addLog($c_info->id,'从业务员:'.$c_info->user->getShowName().'回收数据',1); //删除预约 AppointmentT::deleteAll('user_id='.$c_info->user_id.' and car_id='.$c_info->id); $car_info = $c_info->car; $car_info->user_id = 0; if(!$car_info->save()) { throw new \Exception(print_r($car_info->getErrors(),true)); } $c_info->user_id = 0; if(!$c_info->save()) { throw new \Exception(print_r($c_info->getErrors(),true)); } } $result['success'] = true; $result['msg'] = '操作成功'; $tran->commit(); } catch (\Exception $e) { $tran->rollBack(); $result['msg'] = $e->getMessage(); } } return $result; } public function actionCAllAssign() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '操作失败'; if($request->isPost) { $status = $request->post('status'); $assign_users = explode(',',$request->post('assign_users')); $assign_count = $request->post('assign_count',0); $assign_user_ids = array(); foreach($assign_users as $assign_user) { $user_info = UserT::findOne(['username'=>$assign_user,'is_delete'=>0]); if($user_info) $assign_user_ids[] = $user_info->id; } if(count($assign_user_ids) == 0) { $result['msg'] = '请输入业务员工号,以英文逗号间隔'; return $result; } if($assign_count == 0) { $result['msg'] = '请输入每个业务员分配记录数'; return $result; } $data = $this->getCQuery($request); $query = $data['query']; // var_dump($query); // echo $query->createCommand()->rawSql; // echo $query->count(); // exit; $tran = CarT::getDb()->beginTransaction(); try { $page = 0; $total_pages = count($assign_user_ids); $index = 0; foreach($query->each(100) as $c_info) { if($index >= ($page+1) * $assign_count) $page += 1; if($page == $total_pages) break; if($c_info->user_id > 0) continue; $c_info->user_id = $assign_user_ids[$page]; if(!$c_info->save()) { throw new \Exception(print_r($c_info->getErrors(),true)); } $car_info = $c_info->car; $car_info->op_user1 = $c_info->user->getShowName(); if(!$car_info->save(false)) { throw new \Exception(print_r($car_info->getErrors(), true)); } //添加保单 $order_row = new OrderT(); $order_row->car_id = $c_info->id; $order_row->car_no = $c_info->car->car_no; $order_row->engine_no = $c_info->car->engine_no; $order_row->car_frame_no = $c_info->car->car_frame_no; $order_row->car_man = $c_info->car->car_man; $order_row->car_man_number = $c_info->car->car_man_number; $order_row->car_man_phone = $c_info->car->car_man_phone; $order_row->user_id = $c_info->user_id; $order_row->status_id = 1; $order_row->id_man = $c_info->car->car_man; $order_row->id_man_number = $c_info->car->id_man_number; $order_row->link_man = $c_info->car->car_man; $order_row->link_man_phone = $c_info->car->car_man_phone; $order_row->link_man_number = $c_info->car->id_man_number; if(!$order_row->save()) { throw new \Exception(print_r($order_row->getErrors(),true)); } //添加保单操作员 $order_user_info = new OrderUserT(); $order_user_info->user_id = $c_info->user_id; $order_user_info->order_id = $order_row->id; $order_user_info->type_id = 1; $order_user_info->status = 0; if(!$order_user_info->save()) { throw new \Exception(print_r($order_user_info->getErrors(),true)); } //添加预约 AppointmentT::deleteAll('car_id='.$c_info->id); $row = new AppointmentT(); $row->car_id = $c_info->id; $row->user_id = $c_info->user_id; $row->pdate = date('Y-m-d'); $row->ptype = 0; $row->ptime = '09:00'; $row->remark = '首次分配'; $row->is_first = 1; $row->xdate = date('Y-m-d'); $row->xtime = '09:00'; $row->xbao = 2; if(!$row->save()) { throw new \Exception(print_r($row->getErrors(),true)); } //添加历史预约 $h_row = new AppointmentHistoryT(); $h_row->car_id = $c_info->id; $h_row->user_id = $c_info->user_id; $h_row->pdate = date('Y-m-d'); $h_row->ptype = 0; $h_row->ptime = '09:00'; $h_row->remark = '首次分配'; $h_row->xdate = date('Y-m-d'); $h_row->xtime = '09:00'; $h_row->xbao = 2; if(!$h_row->save()) { throw new \Exception(print_r($h_row->getErrors(),true)); } $this->addLog($c_info->id,'从C库分配数据给业务员:'.$c_info->user->getShowName(),1); $index++; } $result['success'] = true; $result['msg'] = '操作成功'; $tran->commit(); } catch (\Exception $e) { $tran->rollBack(); $result['msg'] = $e->getMessage(); } } return $result; } public function actionCReturnAll() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '操作失败'; if($request->isPost) { $status = $request->post('status'); $register_begin = $request->post('register_begin'); $register_end = $request->post('register_end'); $insurer1_begin = $request->post('insurer1_begin'); $insurer1_end = $request->post('insurer1_end'); $query = CarCT::find() ->leftJoin('car_t','`car_t`.`id`=`car_c_t`.`id`'); if($register_begin != '') { $query->andWhere('car_t.register_date>="'.$register_begin.'"'); } if($register_end != '') { $query->andWhere('car_t.register_date<="'.$register_end.'"'); } if($insurer1_begin != '') { $query->andWhere('car_t.insurer1_date>="'.$insurer1_begin.'"'); } if($insurer1_end != '') { $query->andWhere('car_t.insurer1_end<="'.$insurer1_end.'"'); } $tran = CarT::getDb()->beginTransaction(); try { foreach($query->each(1000) as $item) { //删除预约 AppointmentT::deleteAll('car_id='.$item->id); //删除保单 还没有正本生成的保单可以直接删除,正本生成后,需要退单操作 //删除操作人员 $orders = OrderT::find() ->where('car_id='.$item->id.' and status_id<5') ->all(); foreach($orders as $order_info) { OrderUserT::deleteAll('order_id='.$order_info->id); //删除保单 $order_info->delete(); } $item->user_id = 0; if(!$item->save()) { throw new \Exception(print_r($item->getErrors(), true)); } // FiltrationT //删除预约拨打 // FiltrationT::deleteAll('car_id='.$c_info->id); $this->addLog($item->id,'从C库业务员手中批量回收数据',1); } $result['success'] = true; $result['msg'] = '操作成功'; $tran->commit(); } catch (\Exception $e) { $tran->rollBack(); $result['msg'] = $e->getMessage(); } } return $result; } public function actionCD() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '操作失败'; if($request->isPost) { $ids = explode(',',$request->post('ids')); if(count($ids) == 0) { $result['msg'] = '请先钩选车辆'; return $result; } $tran = CarT::getDb()->beginTransaction(); try { foreach($ids as $id) { $car_info = CarT::findOne(['id'=>$id]); if($car_info->location == 3) { $car_info->location = 4; if(!$car_info->save(false)) { throw new Exception(print_r($car_info->getFirstErrors(),true)); } CarCT::deleteAll(['id'=>$car_info->id]); $d_info = CarDT::findOne(['id'=>$car_info->id]); if(!$d_info) { $d_info = new CarDT(false); $d_info->id = $car_info->id; $d_info->user_id = 0; if(!$d_info->save(false)) { throw new Exception(print_r($d_info->getFirstErrors(),true)); } } $this->addLog($car_info->id,'从C库分配到D库',1); } } $result['success'] = true; $result['msg'] = '操作成功'; $tran->commit(); } catch (\Exception $e) { $tran->rollBack(); $result['msg'] = $e->getMessage(); } } return $result; } public function actionCAllD() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '操作失败'; if($request->isPost) { $data = $this->getCQuery($request); $query = $data['query']; $tran = CarT::getDb()->beginTransaction(); try { foreach($query->each(100) as $c_info) { $car_info = $c_info->car; if($car_info->location == 3) { $car_info->location = 4; if(!$car_info->save(false)) { throw new Exception(print_r($car_info->getFirstErrors(),true)); } CarCT::deleteAll(['id'=>$car_info->id]); $d_info = CarDT::findOne(['id'=>$car_info->id]); if(!$d_info) { $d_info = new CarDT(false); $d_info->id = $car_info->id; $d_info->user_id = 0; if(!$d_info->save(false)) { throw new Exception(print_r($d_info->getFirstErrors(),true)); } } $this->addLog($car_info->id,'从C库分配到D库',1); } } $result['success'] = true; $result['msg'] = '操作成功'; $tran->commit(); } catch (\Exception $e) { $tran->rollBack(); $result['msg'] = $e->getMessage(); } } return $result; } //钩选C库到无效库 public function actionCInvalid() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '操作失败'; if($request->isPost) { $ids = explode(',',$request->post('ids')); $invalid_id = $request->post('invalid_id',0); if($invalid_id == 0) { $result['msg'] = '请选择无效理由'; return $result; } if($ids[0] == '') { $result['msg'] = '请先钩选车辆'; return $result; } $tran = CarT::getDb()->beginTransaction(); try { foreach($ids as $id) { $car_info = CarT::findOne(['id'=>$id]); if($car_info->location == 3) { $car_info->location = 5; if(!$car_info->save(false)) { throw new Exception(print_r($car_info->getFirstErrors(),true)); } $invalid_info = CarInvalidT::findOne(['id'=>$car_info->id]); if(!$invalid_info) { $invalid_info = new CarInvalidT(false); $invalid_info->id = $car_info->id; $invalid_info->user_id = $this->my->id; $invalid_info->invalid_id = $invalid_id; if(!$invalid_info->save(false)) { throw new Exception(print_r($invalid_info->getFirstErrors(),true)); } } $c_info = CarCT::findOne(['id'=>$id]); if($c_info->user_id > 0) { //删除预约 AppointmentT::deleteAll('car_id='.$c_info->id); //删除保单 还没有正本生成的保单可以直接删除,正本生成后,需要退单操作 //删除操作人员 $orders = OrderT::find() ->where('car_id='.$c_info->id.' and status_id<5') ->all(); foreach($orders as $order_info) { OrderUserT::deleteAll('order_id='.$order_info->id); //删除保单 $order_info->delete(); } } $this->addLog($car_info->id,'从C库移动到无效库',1); } } $result['success'] = true; $result['msg'] = '操作成功'; $tran->commit(); } catch (\Exception $e) { $tran->rollBack(); $result['msg'] = $e->getMessage(); } } return $result; } //D库 //D库列表页 private function getDQuery($request) { if($request->isPost) { $car_man = $request->post('car_man'); $phone = $request->post('phone'); $car_no = $request->post('car_no'); $insurer1_begin = $request->post('insurer1_begin'); $insurer1_end = $request->post('insurer1_end'); $insurer1_month = $request->post('insurer1_month'); $insurer1_day = $request->post('insurer1_day'); $insurer1_month1 = $request->post('insurer1_month1'); $insurer1_day1 = $request->post('insurer1_day1'); $status = $request->post('status'); $username = $request->post('username'); $sort_key = $request->post('sort_key'); $sort_value = $request->post('sort_value'); $old_user = $request->post('old_user'); $user1 = $request->post('user1'); $user2 = $request->post('user2'); $company = $request->post('company'); } else { $car_man = $request->get('car_man'); $phone = $request->get('phone'); $car_no = $request->get('car_no'); $insurer1_begin = $request->get('insurer1_begin'); $insurer1_end = $request->get('insurer1_end'); $insurer1_month = $request->get('insurer1_month'); $insurer1_day = $request->get('insurer1_day'); $insurer1_month1 = $request->get('insurer1_month1'); $insurer1_day1 = $request->get('insurer1_day1'); $status = $request->get('status'); $username = $request->get('username'); $sort_key = $request->get('sort_key'); $sort_value = $request->get('sort_value'); $old_user = $request->get('old_user'); $user1 = $request->get('user1'); $user2 = $request->get('user2'); $company = $request->get('company'); } $params = array(); $params['car_man'] = $car_man; $params['phone'] = $phone; $params['car_no'] = $car_no; $params['insurer1_begin'] = $insurer1_begin; $params['insurer1_end'] = $insurer1_end; $params['insurer1_month'] = $insurer1_month; $params['insurer1_day'] = $insurer1_day; $params['insurer1_month1'] = $insurer1_month1; $params['insurer1_day1'] = $insurer1_day1; $params['status'] = $status; $params['username'] = $username; $params['sort_key'] = $sort_key; $params['sort_value'] = $sort_value; $params['old_user'] = $old_user; $params['user1'] = $user1; $params['user2'] = $user2; $params['company'] = $company; $query = CarDT::find() ->leftJoin(CarT::tableName(),'`car_t`.`id`=`car_d_t`.`id`'); if($car_man != '') { $query->andWhere('car_t.car_man="'.$car_man.'"'); } if($phone != '') { $query->andWhere('car_t.car_man_phone=:phone or car_t.id_man_phone=:phone',[':phone'=>$phone]); } if($car_no != '') { $query->andWhere('car_t.car_no like "'.$car_no.'"'); } if($insurer1_begin != '') { $query->andWhere('car_t.insurer1_date>="'.$insurer1_begin.'"'); } if($insurer1_end != '') { $query->andWhere('car_t.insurer1_date<="'.$insurer1_end.'"'); } if($insurer1_month != '') { $query->andWhere('month(car_t.insurer1_date)>="'.$insurer1_month.'"'); } if($insurer1_day != '') { $query->andWhere('day(car_t.insurer1_date)>="'.$insurer1_day.'"'); } if($insurer1_month1 != '') { $query->andWhere('month(car_t.insurer1_date)<="'.$insurer1_month1.'"'); } if($insurer1_day1 != '') { $query->andWhere('day(car_t.insurer1_date)<="'.$insurer1_day1.'"'); } if($status == 1) { $query->andWhere('car_d_t.user_id=0'); } if($status == 2) { $query = $query->andWhere('car_d_t.user_id>0'); } if($username != '') { $user_info = UserT::findOne(['username'=>$username]); if($user_info) { $query->andWhere('car_d_t.user_id='.$user_info->id); } } if($old_user != '') { $query->andWhere('car_t.old_user like "'.$old_user.'%"'); } if($user1 != '') { $query->andWhere('car_t.op_user1 like "'.$user1.'%"'); } if($user2 != '') { $query->andWhere('car_t.op_user3 like "'.$user2.'%"'); } if($company != '') { $query->andWhere('company like "'.$company.'%"'); } $query->orderBy($sort_key.' '.$sort_value.',car_d_t.id '.$sort_value); return ['query'=>$query,'params'=>$params]; } public function actionDIndex() { $user_items = $this->my->getChildren(); $invalid_items = InvalidT::getTree(); return $this->render('d-index',[ 'user_items' => $user_items, 'invalid_items' => $invalid_items ]); } public function actionDIndexJson() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $offset = $request->get('offset',0); $limit = $request->get('limit', 10); $data = $this->getDQuery($request); $query = $data['query']; // $query->andWhere('location=1'); $total = $query->count(); $query->orderBy('id desc'); $query = $query->offset($offset)->limit($limit); $items = $query->all(); $data = []; $data['total'] = $total; $data['rows'] = []; foreach($items as $item) { $car_info = $item->car; if(!$car_info) continue; $row = $car_info->toArray(); $row['factory_model'] = MyLib::substr_cut($car_info->factory_model, 8); $row['car_man'] = MyLib::substr_cut($car_info->car_man, 8); $row['op_user'] = $item->user?$item->user->getShowName():''; $data['rows'][] = $row; } return $data; } public function actionDAssign() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '操作失败'; if($request->isPost) { $ids = explode(',',$request->post('ids')); $user_id = $request->post('user_id',0); //针对数据处理的数据 if($user_id == 0) { $result['msg'] = '请先选择分配给哪个业务员'; return $result; } if($ids[0] == '') { $result['msg'] = '请先钩选车辆'; return $result; } $tran = CarT::getDb()->beginTransaction(); try { foreach($ids as $id) { $d_info = CarDT::findOne(['id'=>$id]); if($d_info->user_id > 0) { continue; } $d_info->user_id = $user_id; if(!$d_info->save()) { throw new \Exception(print_r($d_info->getErrors(),true)); } //添加保单 $order_row = new OrderT(); $order_row->car_id = $d_info->id; $order_row->car_no = $d_info->car->car_no; $order_row->engine_no = $d_info->car->engine_no; $order_row->car_frame_no = $d_info->car->car_frame_no; $order_row->car_man = $d_info->car->car_man; $order_row->car_man_number = $d_info->car->car_man_number; $order_row->car_man_phone = $d_info->car->car_man_phone; $order_row->user_id = $user_id; $order_row->status_id = 1; $order_row->id_man = $d_info->car->car_man; $order_row->id_man_number = $d_info->car->id_man_number; $order_row->link_man = $d_info->car->car_man; $order_row->link_man_phone = $d_info->car->car_man_phone; $order_row->link_man_number = $d_info->car->id_man_number; if(!$order_row->save()) { throw new \Exception(print_r($order_row->getErrors(),true)); } //添加保单操作员 $order_user_info = new OrderUserT(); $order_user_info->user_id = $user_id; $order_user_info->order_id = $order_row->id; $order_user_info->type_id = 1; $order_user_info->status = 0; if(!$order_user_info->save()) { throw new \Exception(print_r($order_user_info->getErrors(),true)); } //添加预约 AppointmentT::deleteAll('car_id='.$d_info->id); $row = new AppointmentT(); $row->car_id = $d_info->id; $row->user_id = $user_id; $row->pdate = date('Y-m-d'); $row->ptype = 0; $row->ptime = '09:00'; $row->remark = '首次分配'; $row->is_first = 1; $row->xdate = date('Y-m-d'); $row->xtime = '09:00'; $row->xbao = 2; if(!$row->save()) { throw new \Exception(print_r($row->getErrors(),true)); } //添加历史预约 $h_row = new AppointmentHistoryT(); $h_row->car_id = $d_info->id; $h_row->user_id = $user_id; $h_row->pdate = date('Y-m-d'); $h_row->ptype = 0; $h_row->ptime = '09:00'; $h_row->remark = '首次分配'; $h_row->xdate = date('Y-m-d'); $h_row->xtime = '09:00'; $h_row->xbao = 2; if(!$h_row->save()) { throw new \Exception(print_r($h_row->getErrors(),true)); } $this->addLog($d_info->id,'从D库分配数据给业务员:'.$d_info->user->getShowName(),1); } $result['success'] = true; $result['msg'] = '操作成功'; $tran->commit(); } catch (\Exception $e) { $tran->rollBack(); $result['msg'] = $e->getMessage(); } } return $result; } public function actionDReturn() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '操作失败'; if($request->isPost) { $ids = explode(',',$request->post('ids')); if($ids[0] == '') { $result['msg'] = '请先钩选车辆'; return $result; } $tran = CarT::getDb()->beginTransaction(); try { foreach($ids as $id) { $d_info = CarDT::findOne(['id'=>$id]); if($d_info->user_id > 0) $this->addLog($d_info->id,'从业务员:'.$d_info->user->getShowName().'回收跟踪数据',1); //删除预约 AppointmentT::deleteAll('user_id='.$d_info->user_id.' and car_id='.$d_info->id); $car_info = $d_info->car; $car_info->user_id = 0; if(!$car_info->save()) { throw new \Exception(print_r($car_info->getErrors(),true)); } $d_info->user_id = 0; if(!$d_info->save()) { throw new \Exception(print_r($d_info->getErrors(),true)); } } $result['success'] = true; $result['msg'] = '操作成功'; $tran->commit(); } catch (\Exception $e) { $tran->rollBack(); $result['msg'] = $e->getMessage(); } } return $result; } public function actionDAllAssign() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '操作失败'; if($request->isPost) { $assign_users = explode(',',$request->post('assign_users')); $assign_count = $request->post('assign_count',0); $assign_user_ids = array(); foreach($assign_users as $assign_user) { $user_info = UserT::findOne(['username'=>$assign_user]); if($user_info) $assign_user_ids[] = $user_info->id; } if(count($assign_user_ids) == 0) { $result['msg'] = '请输入业务员工号,以英文逗号间隔'; return $result; } if($assign_count == 0) { $result['msg'] = '请输入每个业务员分配记录数'; return $result; } $data = $this->getDQuery($request); $query = $data['query']; $tran = CarT::getDb()->beginTransaction(); try { $page = 0; $total_pages = count($assign_user_ids); $index = 0; foreach($query->each(100) as $d_info) { if($index >= ($page+1) * $assign_count) $page += 1; if($page == $total_pages) break; if($d_info->user_id > 0) continue; $d_info->user_id = $assign_user_ids[$page]; if(!$d_info->save()) { throw new \Exception(print_r($d_info->getErrors(),true)); } $car_info = $d_info->car; $car_info->op_user3 = $d_info->user->getShowName(); if(!$car_info->save()) { throw new \Exception(print_r($car_info->getErrors(),true)); } //添加保单 $order_row = new OrderT(); $order_row->car_id = $d_info->id; $order_row->car_no = $d_info->car->car_no; $order_row->engine_no = $d_info->car->engine_no; $order_row->car_frame_no = $d_info->car->car_frame_no; $order_row->car_man = $d_info->car->car_man; $order_row->car_man_number = $d_info->car->car_man_number; $order_row->car_man_phone = $d_info->car->car_man_phone; $order_row->user_id = $d_info->user_id; $order_row->status_id = 1; $order_row->id_man = $d_info->car->car_man; $order_row->id_man_number = $d_info->car->id_man_number; $order_row->link_man = $d_info->car->car_man; $order_row->link_man_phone = $d_info->car->car_man_phone; $order_row->link_man_number = $d_info->car->id_man_number; if(!$order_row->save()) { throw new \Exception(print_r($order_row->getErrors(),true)); } //添加保单操作员 $order_user_info = new OrderUserT(); $order_user_info->user_id = $d_info->user_id; $order_user_info->order_id = $order_row->id; $order_user_info->type_id = 1; $order_user_info->status = 0; if(!$order_user_info->save()) { throw new \Exception(print_r($order_user_info->getErrors(),true)); } //添加预约 AppointmentT::deleteAll('car_id='.$d_info->id); $row = new AppointmentT(); $row->car_id = $d_info->id; $row->user_id = $d_info->user_id; $row->pdate = date('Y-m-d'); $row->ptype = 0; $row->ptime = '09:00'; $row->remark = '首次分配'; $row->is_first = 1; $row->xdate = date('Y-m-d'); $row->xtime = '09:00'; $row->xbao = 2; if(!$row->save()) { throw new \Exception(print_r($row->getErrors(),true)); } //添加历史预约 $h_row = new AppointmentHistoryT(); $h_row->car_id = $d_info->id; $h_row->user_id = $d_info->user_id; $h_row->pdate = date('Y-m-d'); $h_row->ptype = 0; $h_row->ptime = '09:00'; $h_row->remark = '首次分配'; $h_row->xdate = date('Y-m-d'); $h_row->xtime = '09:00'; $h_row->xbao = 2; if(!$h_row->save()) { throw new \Exception(print_r($h_row->getErrors(),true)); } $this->addLog($d_info->id,'从D库分配数据给业务员:'.$d_info->user->getShowName(),1); $index++; } $result['success'] = true; $result['msg'] = '操作成功'; $tran->commit(); } catch (\Exception $e) { $tran->rollBack(); $result['msg'] = $e->getMessage(); } } return $result; } public function actionDReturnAll() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '操作失败'; if($request->isPost) { $status = $request->post('status'); $register_begin = $request->post('register_begin'); $register_end = $request->post('register_end'); $insurer1_begin = $request->post('insurer1_begin'); $insurer1_end = $request->post('insurer1_end'); $query = CarDT::find() ->leftJoin('car_t','`car_t`.`id`=`car_d_t`.`id`'); if($register_begin != '') { $query->andWhere('car_t.register_date>="'.$register_begin.'"'); } if($register_end != '') { $query->andWhere('car_t.register_date<="'.$register_end.'"'); } if($insurer1_begin != '') { $query->andWhere('car_t.insurer1_date>="'.$insurer1_begin.'"'); } if($insurer1_end != '') { $query->andWhere('car_t.insurer1_end<="'.$insurer1_end.'"'); } $tran = CarT::getDb()->beginTransaction(); try { foreach($query->each(1000) as $item) { //删除预约 AppointmentT::deleteAll('car_id='.$item->id); //删除保单 还没有正本生成的保单可以直接删除,正本生成后,需要退单操作 //删除操作人员 $orders = OrderT::find() ->where('car_id='.$item->id.' and status_id<5') ->all(); foreach($orders as $order_info) { OrderUserT::deleteAll('order_id='.$order_info->id); //删除保单 $order_info->delete(); } $item->user_id = 0; if(!$item->save()) { throw new \Exception(print_r($item->getErrors(), true)); } // FiltrationT //删除预约拨打 // FiltrationT::deleteAll('car_id='.$c_info->id); $this->addLog($item->id,'从D库业务员手中批量回收数据',1); } $result['success'] = true; $result['msg'] = '操作成功'; $tran->commit(); } catch (\Exception $e) { $tran->rollBack(); $result['msg'] = $e->getMessage(); } } return $result; } //钩选D库到无效库 public function actionDInvalid() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '操作失败'; if($request->isPost) { $ids = explode(',',$request->post('ids')); $invalid_id = $request->post('invalid_id',0); if($invalid_id == 0) { $result['msg'] = '请选择无效理由'; return $result; } if($ids[0] == '') { $result['msg'] = '请先钩选车辆'; return $result; } $tran = CarT::getDb()->beginTransaction(); try { foreach($ids as $id) { $car_info = CarT::findOne(['id'=>$id]); if($car_info->location == 4) { $car_info->location = 5; if(!$car_info->save(false)) { throw new Exception(print_r($car_info->getFirstErrors(),true)); } $invalid_info = CarInvalidT::findOne(['id'=>$car_info->id]); if(!$invalid_info) { $invalid_info = new CarInvalidT(false); $invalid_info->id = $car_info->id; $invalid_info->user_id = $this->my->id; $invalid_info->invalid_id = $invalid_id; if(!$invalid_info->save(false)) { throw new Exception(print_r($invalid_info->getFirstErrors(),true)); } } $d_info = CarDT::findOne(['id'=>$id]); if($d_info->user_id > 0) { //删除预约 AppointmentT::deleteAll('car_id='.$d_info->id); //删除保单 还没有正本生成的保单可以直接删除,正本生成后,需要退单操作 //删除操作人员 $orders = OrderT::find() ->where('car_id='.$d_info->id.' and status_id<5') ->all(); foreach($orders as $order_info) { OrderUserT::deleteAll('order_id='.$order_info->id); //删除保单 $order_info->delete(); } } $this->addLog($car_info->id,'从C库移动到无效库',1); } } $result['success'] = true; $result['msg'] = '操作成功'; $tran->commit(); } catch (\Exception $e) { $tran->rollBack(); $result['msg'] = $e->getMessage(); } } return $result; } //无效库列表页 private function getInvalidQuery($request) { if($request->isPost) { $car_man = $request->post('car_man'); $phone = $request->post('phone'); $car_no = $request->post('car_no'); $register_begin = $request->post('register_begin'); $register_end = $request->post('register_end'); $insurer1_begin = $request->post('insurer1_begin'); $insurer1_end = $request->post('insurer1_end'); $invalid_id = $request->post('invalid_id'); $username = $request->post('username'); $user1 = $request->post('user1'); $sort_key = $request->post('sort_key'); $sort_value = $request->post('sort_value'); } else { $car_man = $request->get('car_man'); $phone = $request->get('phone'); $car_no = $request->get('car_no'); $register_begin = $request->get('register_begin'); $register_end = $request->get('register_end'); $insurer1_begin = $request->get('insurer1_begin'); $insurer1_end = $request->get('insurer1_end'); $invalid_id = $request->get('invalid_id'); $username = $request->get('username'); $user1 = $request->get('user1'); $sort_key = $request->get('sort_key'); $sort_value = $request->get('sort_value'); } $params = array(); $params['car_man'] = $car_man; $params['phone'] = $phone; $params['car_no'] = $car_no; $params['register_begin'] = $register_begin; $params['register_end'] = $register_end; $params['insurer1_begin'] = $insurer1_begin; $params['insurer1_end'] = $insurer1_end; $params['invalid_id'] = $invalid_id; $params['username'] = $username; $params['user1'] = $user1; $params['sort_key'] = $sort_key; $params['sort_value'] = $sort_value; $query = CarInvalidT::find() ->leftJoin(CarT::tableName(),'`car_t`.`id`=`car_invalid_t`.`id`'); if($car_man != '') { $query->andWhere('car_t.car_man="'.$car_man.'"'); } if($phone != '') { $query->andWhere('car_t.car_man_phone=:phone or car_t.id_man_phone=:phone',[':phone'=>$phone]); } if($car_no != '') { $query->andWhere('car_t.car_no="'.$car_no.'"'); } if($register_begin != '') { $query->andWhere('car_t.register_date>="'.$register_begin.'"'); } if($register_end != '') { $query->andWhere('car_t.register_date<="'.$register_end.'"'); } if($insurer1_begin != '') { $query->andWhere('car_t.insurer1_date>="'.$insurer1_begin.'"'); } if($insurer1_end != '') { $query->andWhere('car_t.insurer1_date<="'.$insurer1_end.'"'); } if($invalid_id > 0) { $query->andWhere('car_invalid_t.invalid_id='.$invalid_id); } if($user1 != '') { $query->andWhere('car_t.op_user1 like "'.$user1.'%"'); } if($username != '') { $user_info = UserT::findOne(['username'=>$username]); if($user_info) { $query->andWhere('car_invalid_t.user_id='.$user_info->id); } } $query->orderBy($sort_key.' '.$sort_value.',car_invalid_t.id '.$sort_value); // echo $query->createCommand()->rawSql; return ['query'=>$query,'params'=>$params]; } public function actionInvalidIndex() { $invalid_items = InvalidT::getTree(); return $this->render('invalid-index',[ 'invalid_items'=>$invalid_items ]); } public function actionInvalidIndexJson() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $offset = $request->get('offset',0); $limit = $request->get('limit', 10); $data = $this->getInvalidQuery($request); $query = $data['query']; // $query->andWhere('location=1'); $total = $query->count(); $query->orderBy('id desc'); $query = $query->offset($offset)->limit($limit); $items = $query->all(); $data = []; $data['total'] = $total; $data['rows'] = []; foreach($items as $item) { $car_info = $item->car; if(!$car_info) continue; $row = $car_info->toArray(); $row['factory_model'] = MyLib::substr_cut($car_info->factory_model, 8); $row['car_man'] = MyLib::substr_cut($car_info->car_man, 8); $row['op_user'] = $item->user?$item->user->getShowName():''; $row['invalid_info'] = $item->invalid->getPath(); $row['invalid_time'] = $item->invalid->created_at; $data['rows'][] = $row; } return $data; } public function actionInvalidA() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '操作失败'; if($request->isPost) { $ids = explode(',',$request->post('ids')); $tran = CarT::getDb()->beginTransaction(); try { foreach($ids as $id) { $car_info = CarT::findOne(['id'=>$id]); $car_info->location = 1; if(!$car_info->save()) { throw new \Exception(print_r($car_info->getErrors(), true)); } CarInvalidT::deleteAll('id='.$id); AppointmentHistoryT::deleteAll('car_id='.$id); $this->addLog($car_info->id,'从无效数据中恢复数据',1); } $result['success'] = true; $result['msg'] = '操作成功'; $tran->commit(); } catch (\Exception $e) { $tran->rollBack(); $result['msg'] = $e->getMessage(); } } return $result; } public function actionInvalidAllA() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $result = array(); $result['success'] = false; $result['msg'] = '操作失败'; if($request->isPost) { $invalid_id = $request->post('invalid_id'); // if($invalid_id == 0) { // $result['msg'] = '请先选择无效理由'; // return $result; // } $data = $this->getInvalidQuery($request); $query = $data['query']; $tran = CarT::getDb()->beginTransaction(); try { foreach($query->each(1000) as $item) { $car_info = $item->car; $car_info->location = 1; if(!$car_info->save()) { throw new \Exception(print_r($car_info->getErrors(), true)); } AppointmentHistoryT::deleteAll('car_id='.$item->id); $item->delete(); $this->addLog($item->id,'从无效数据中恢复数据',1); } $result['success'] = true; $result['msg'] = '操作成功'; $tran->commit(); } catch (\Exception $e) { $tran->rollBack(); $result['msg'] = $e->getMessage(); } } return $result; } }