render('index', array( 'status' => $status, 'package_product'=> $package_product, )); } public function actionList(){ $floor = Yii::app()->request->getParam('floor',''); $room = Yii::app()->request->getParam('room',''); $status = Yii::app()->request->getParam('status',100); $date_start_book = strtotime(Yii::app()->request->getParam('date_start_book','')); $date_end_book = strtotime(Yii::app()->request->getParam('date_end_book','')); $params = CommonFn::getPageParams(); $criteria = new EMongoCriteria($params); if ($status != 100) { $criteria->status('==',intval($status)); } if ($floor) { $criteria->addCond('address.floor','==',$floor); } if ($room) { $criteria->addCond('address.room','==',$room); } if ($date_end_book < $date_start_book) { $tmp = $date_end_book; $date_end_book = $date_start_book; $date_start_book = $tmp; } if ($date_start_book) { $criteria->addCond('order_time','>=',$date_start_book); } if ($date_end_book) { $criteria->addCond('order_time','<=',$date_end_book); } $cursor = POrder::model()->findAll($criteria); $total = $cursor->count(); $rows = CommonFn::getRowsFromCursor($cursor); $parsedRows = POrder::model()->parse($rows); echo CommonFn::composeDatagridData($parsedRows, $total); } public function actionEdit() { $porder_id = Yii::app()->request->getParam('porder_id','');//订单号 $in_room_time = Yii::app()->request->getParam('in_room_time','');//进房时间 $out_room_time = Yii::app()->request->getParam('out_room_time','');//出房时间 $order_time = Yii::app()->request->getParam('edit_order_time','');//下单时间 $package = Yii::app()->request->getParam('package','');//服务标准 $service_employer = Yii::app()->request->getParam('service_employer','');//服务人员 $status = Yii::app()->request->getParam('status_edit','');//状态 if (empty($service_employer)) { CommonFn::requestAjax(false, '服务人员信息不存在');exit; } else { $criteria = new EMongoCriteria(); $criteria->user_name('==',$service_employer); $employer = Employe::model()->find($criteria); if (empty($employer)) { CommonFn::requestAjax(false, '服务人员信息不存在');exit; } } if (!CommonFn::isMongoId($porder_id)) { CommonFn::requestAjax(false, 'porder_id_is_exits');exit; } $porder = POrder::get(new MongoId($porder_id)); if (!empty($in_room_time)) { $porder->in_room_time = intval($in_room_time); } if (!empty($out_room_time)) { $porder->out_room_time = intval($out_room_time); } if (!empty($order_time)) { $porder->order_time = intval($order_time); } $porder->service_standards = intval($package); $porder->service_employer = $employer->_id; if (intval($status) != 100) { $porder->status = intval($status); } else { CommonFn::requestAjax(false, '请选择正确状态');exit; } $result = $porder->save(); CommonFn::requestAjax($result, '修改成功');exit; } public function actionAdd () { $order_time = Yii::app()->request->getParam('order_time',''); $floor = Yii::app()->request->getParam('floor',''); $room = Yii::app()->request->getParam('room',''); $service_employer = Yii::app()->request->getParam('service_employer',''); $package = Yii::app()->request->getParam('package',''); $order = new POrder(); $criteria = new EMongoCriteria(); $criteria->user_name('==',$service_employer); $userInfo = Employe::model()->find($criteria); //获取服务人员信息 if ($userInfo) { $order->service_employer = $userInfo->_id;//服务人员Id } else { CommonFn::requestAjax(false, '服务人员信息不存在');exit; } $order->order_time = intval($order_time);//服务日期 $order->address['floor'] = $floor;//楼号 $order->address['room'] = $room;//房号 $order->service_standards = $package;//服务标准 $order->status = 0;//已派单 $order->in_room_time = 0; $order->out_room_time = 0; $result = $order->save(); CommonFn::requestAjax($result, '', array()); } // 根据手机号 获取对应用户的地址信息 public function actionGetUserInfo(){ $user_name = Yii::app()->request->getParam('user_name', ''); $criteria = new EMongoCriteria(); $criteria->addCond('user_name', 'or', new MongoRegex('/'.$user_name.'/')); $criteria->addCond('auth','==',6); $userInfos = Employe::model()->findAll($criteria); $result = array(); $index = 0; foreach ($userInfos as $k => $v) { $result[] = array( 'id' => $index++, 'data' => $v->user_name, 'description' => $v->mobile, ); } echo json_encode($result);exit; } public function actionAddComplaintsInfo() { $order_id = Yii::app()->request->getParam('id',''); $user_name = Yii::app()->request->getParam('user_name',''); $c_info = Yii::app()->request->getParam('c_info',''); $desc = Yii::app()->request->getParam('desc',''); if (!CommonFn::isMongoId($order_id)) { CommonFn::requestAjax(false, 'id_not_exits');exit; } $porder = POrder::get(new MongoId($order_id)); $complaints = new Complaints(); $complaints->com_time = time(); $complaints->address = $porder->address; $complaints->user_name = $user_name; $complaints->p_id = $order_id; $complaints->c_info = $c_info; $complaints->employer = Employe::get(new MOngoId($porder->service_employer))->user_name; $complaints->desc = $desc; $res = $complaints->save(); if ($res) { CommonFn::requestAjax(true, '保存成功');exit; } else { CommonFn::requestAjax(true, '保存失败');exit; } } public function actionOutputExcel() { //$beginYesterday=mktime(0,0,0,date('m')-1,1,date('Y')); //$endYesterday=mktime(0,0,0,date('m'),1,date('Y'))-1; $beginYesterday = Yii::app()->request->getParam('export_start_book').' 00:00:00'; $endYesterday = Yii::app()->request->getParam('export_end_book').' 23:59:59'; $name="$beginYesterday-$endYesterday 出房记录汇总 "; $beginYesterday = strtotime($beginYesterday); $endYesterday = strtotime($endYesterday); $criteria = new EMongoCriteria(); //$criteria->booking_time('>=',$beginYesterday);//开始时间 //$criteria->booking_time('<=',$endYesterday);//结束时间 $criteria->auth('==',6); $employes = Employe::model()->findAll($criteria); $data = array(); $i = 0; foreach ($employes as $k => $v) { $criteria = new EMongoCriteria(); $criteria->order_time('>=',$beginYesterday);//开始时间 $criteria->order_time('<=',$endYesterday);//结束时间 $criteria->service_employer('==',new MOngoId($v->_id));//结束时间 $p_orders = POrder::model()->findAll($criteria); foreach ($p_orders as $order ) { $times = 0; if ($order->out_room_time != 0 && $order->in_room_time != 0) $times = ($order->out_room_time - $order->in_room_time)/3600;//小时 $data[$i]['out_room_time'] = $order->out_room_time?date('Y-m-d H:i:s',$order->out_room_time):'暂未完成'; $data[$i]['in_room_time'] = date('Y-m-d H:i:s',$order->in_room_time); $data[$i]['time'] = $times;//工作时长 $data[$i]['order_time'] = date('Y-m-d H:i:s',$order->order_time); $data[$i]['user_name'] = $v->user_name;//人员 $data[$i]['service_standards'] = POrder::$standards_options[intval($order->service_standards)]['name'];//服务内容 $data[$i]['status'] = POrder::$status_options[intval($order->status)]['name'];//订单状态 防止有人不点 sb $data[$i]['floor'] = $order->address['floor']; $data[$i++]['room'] = $order->address['room']; } } $res=Service::factory('ExcelToArrayService')->push($data,$name,'porder'); echo "导出成功"; } public function actionOutputExcel1() { $beginYesterday = Yii::app()->request->getParam('export_start_book').' 00:00:00'; $endYesterday = Yii::app()->request->getParam('export_end_book').' 23:59:59'; $name="$beginYesterday-$endYesterday 服务明细汇总"; $beginYesterday = strtotime(Yii::app()->request->getParam('export_start_book').' 00:00:00'); $endYesterday = strtotime(Yii::app()->request->getParam('export_end_book').' 23:59:59'); $criteria = new EMongoCriteria(); $criteria->order_time('>=',$beginYesterday);//开始时间 $criteria->order_time('<=',$endYesterday);//结束时间 $p_orders = POrder::model()->findAll($criteria); $i =0; $data = array(); $address = array(); foreach ($p_orders as $k => $order ) { $times = 0; $floor = intval($order->address['floor']); $room = intval($order->address['room']); //判断地址是否重复 if (!in_array($floor.'-'.$room,$address)) { $address[] = $floor.'-'.$room;//不重复加入数组 然后计算 这个地址被服务过的总数和时长 $data[$i]['floor'] = $floor; $data[$i]['room'] = $room; $data[$i]['total'] =0; $data[$i]['times'] =0; //计算 一个房间的数据 $tmp = POrder::model()->findAll($criteria); foreach ($tmp as $k => $v) { if (intval($floor) == intval($v->address['floor']) && intval($room) == intval($v->address['room'])) { $data[$i]['total'] += 1; if (!empty($v->out_room_time) && !empty($v->in_room_time))//只有当进房时间和出房时间都不为空时计算时长 $times = ($v->out_room_time - $v->in_room_time)/3600;//小时 $data[$i]['times'] += $times; } } $i++; } } $res=Service::factory('ExcelToArrayService')->push($data,$name,'total'); echo "导出成功"; } public function actionImportExcel() { $excelFile = __DIR__.'/1.xlsx';//获取文件名 Yii::$enableIncludePath = false; Yii::import('application.extensions.PHPExcel.PHPExcel', 1); $phpexcel = new PHPExcel; $excelReader = PHPExcel_IOFactory::createReader('Excel2007'); $phpexcel = $excelReader->load($excelFile)->getSheet(0);//载入文件并获取第一个sheet $total_line = $phpexcel->getHighestRow(); $total_column = $phpexcel->getHighestColumn(); for ($row = 2; $row <= $total_line; $row++) { $data = array(); for ($column = 'A'; $column <= $total_column; $column++) { $data[] = trim($phpexcel->getCell($column . $row)->getValue()); } var_dump($data); echo '
'; $order = new POrder(); $criteria = new EMongoCriteria(); $criteria->user_name('==',$service_employer); $userInfo = Employe::model()->find($criteria); //获取服务人员信息 if ($userInfo) { $order->service_employer = $userInfo->_id;//服务人员Id } else { CommonFn::requestAjax(false, '服务人员信息不存在');exit; } $order->order_time = intval($order_time);//服务日期 $order->address['floor'] = $floor;//楼号 $order->address['room'] = $room;//房号 $order->service_standards = $package;//服务标准 $order->status = 0;//已派单 $order->in_room_time = 0; $order->out_room_time = 0; $result = $order->save(); } } }