<?php /** * Created by PhpStorm. * User: ruidiudiu * Date: 2018/11/23 * Time: 11:34 */ namespace app\portal\controller; use app\portal\model\EquipmentModel; use app\portal\model\OrderModel; use cmf\controller\AdminBaseController; use think\Db; /** * Class AdminAllStatisticsController * @package app\portal\controller * @adminMenuRoot( * 'name' =>'整体统计', * 'action' =>'index', * 'parent' =>'', * 'display'=> true, * 'order' => 1, * 'icon' =>'th', * 'remark' =>'整体统计' * ) */ class AdminAllStatisticsController extends AdminBaseController{ public function index(){ $Order=new OrderModel(); $data=$Order->alias('a') ->field('a.*,b.serial_number,b.hospital,count(a.eq_name) as num,sum(a.time) as sumTime') ->join('equipment b','a.eq_name=b.name') ->group('a.eq_name') ->order('start_time','desc') ->paginate(10)->each(function ($item){ $item['average']=round($item['sumTime']/$item['num']); //计费故障次数 $item['fault_time']=Db::name('fault')->where(['eq_name'=>$item['eq_name'],'fault_type'=>1])->count(); //锁故障次数 $item['fault_lock']=Db::name('fault')->where(['eq_name'=>$item['eq_name'],'fault_type'=>5])->count(); //床故障次数 $item['fault_bed']=Db::name('fault')->where(['eq_name'=>$item['eq_name'],'fault_type'=>['in',[2,3,4]]])->count(); //其他故障次数 $item['fault_other']=Db::name('fault')->where(['eq_name'=>$item['eq_name'],'fault_type'=>6])->count(); //故障总数 $item['fault']=Db::name('fault')->where(['eq_name'=>$item['eq_name']])->count(); return $item; }); $this->assign('data',$data); return $this->fetch(); } }