<?php
/**
 * Created by PhpStorm.
 * User: my
 * Date: 2021/4/12
 * Time: 16:04
 */

namespace app\admin\controller;
use think\App;
use think\Db;

class Statistics extends Auth{

    public function __construct(App $app) {
        parent::__construct($app);
    }

    /**
     * 订单统计
     *
     * @author wst
     * @date   2021/4/12 16:05
     */
    public function OrderTotal(){

        $data  = (new Wyorders())->OrderTotal(cur_org_id());
        $this->assign('data',$data);
        $this->assign('meta_title','订单统计');
        return $this->fetch();


    }
    /**
     * 完成工时统计
     *
     * @author wst
     * @date   2021/4/12 16:05
     */
    public function duration(){

        $month = request()->get('month')?request()->get('month'):date('Y-m');
        $data  = (new \app\model\Todo())->duration(cur_org_id(),$month);
        $this->assign('data',$data);
        $this->assign('month',$month);
        $this->assign('meta_title','完成工时统计');
        return $this->fetch();

    }
    /**
     * 巡更工作量统计
     *
     * @author wst
     * @date   2021/4/12 18:13
     */
    public function PatrolWork(){
        $data  = (new \app\model\PatrolAddr())->PatrolWork(cur_org_id(),1);
        $this->assign('data',$data);
        $this->assign('meta_title','巡检巡查工作量统计');
        return $this->fetch();
    }
    /**
     * 设备台账工作量统计
     *
     * @author wst
     * @date   2021/4/12 18:13
     */
    public function DeviceWork(){
        $data  = (new \app\common\model\Device())->DeviceWork(cur_org_id());
        $this->assign('data',$data);
        $this->assign('meta_title','设备维保工作量统计');
        return $this->fetch();
    }
    /**
     * 日常工作工作量统计
     *
     * @author wst
     * @date   2021/4/12 18:13
     */
    public function DailyWork(){
        $data  = (new \app\common\model\Daily())->DailyWork(cur_org_id());
        $this->assign('data',$data);
        $this->assign('meta_title','日常工作量统计');
        return $this->fetch();
    }
    /**
     * 巡更人员工作量统计
     *
     * @author wst
     * @date   2021/4/12 18:13
     */
    public function WorkerPatrol(){
        $search['start'] = request()->get('start');
        $search['end'] = request()->get('end');
        if(empty($search['start'])){ // 未传时间默认近7天的
            $search['start'] = date('Y-m-d',time()-(6*24*60*60));
            $search['end'] = date('Y-m-d');
        }
        $data  = (new \app\model\PatrolTask())->WorkerPatrol(cur_org_id(),$search,1);
        $this->assign('data',$data);
        $this->assign('month',$search);
        $this->assign('meta_title','巡检巡查人员工作量统计');
        return $this->fetch();
    }

    //预约统计
    public function ServiceCount(){
        $type=input('type');
        $start=input('start');
        $end=input('end');
        if($type == 1){
            $meta_title = '餐饮预约统计';
        }elseif ($type == 2){
            $meta_title = '美发预约统计';
        }elseif ($type == 3){
            $meta_title = '洗衣预约统计';
        }elseif ($type == 4){
            $meta_title = '医疗预约统计';
        }elseif ($type == 5){
            $meta_title = '活动室预约统计';
        }
        //获取服务id
        $serviceId = Db::name('service')->where('org_id',$this->org_id)->where('type',$type)->value('id');
        if(!$serviceId){
            $data = [];
            $this->assign('data',$data);
        }

        if(!$start && !$end){
            $end =  date('Y-m-d H:i:s');
            $start =  date('Y-m-d H:i:s',strtotime("$start -1 month"));
        }

        if($start >= $end){
            $this->error('开始时间不能大于结束时间');
        }

        if($type == 1 || $type == 2){
            $map[] = ['service_id','=',$serviceId];
            $cateList  = Db::name('service_cate')->where($map)->order('id asc')->select()->toArray();
            $map[] = ['del','=',0];
            $itemList  = Db::name('service_item')->where($map)->order('id asc')->select()->toArray();
            $this->assign('itemList',$itemList);
            $this->assign('cateList',$cateList);

            if($start && $end){
                $where[] = ['sb.create_time','>=',$start];
                $where[] = ['sb.create_time','<=',$end];
            }
            $where[] = ['sb.service_id','=',$serviceId];
            $where[] = ['sb.org_id','=',$this->org_id];
            $data = [];

            foreach ($itemList as $k=>$v){
                $data[$k]['title']= $v['title'];
                foreach ($cateList as $kk=>$vv){
                    $bookList = Db::name('service_book')
                        ->alias('sb')
                        ->field('sb.*')
                        ->join('service_book_cate sbc','sbc.service_book_id=sb.id')
                        ->where('sb.service_item_id',$v['id'])
                        ->where('sbc.service_cate_id',$vv['id'])
                        ->where($where)
                        ->select()
                        ->toArray();

                    $total = 0;
                    foreach ($bookList as $kay=>$val){
                        $total +=$val['nums'];
                    }
                    $data[$k]['list'][$kk] = $total;
                }
            }
            $count = [];
            foreach ($cateList as $k=>$v){
                $bookList = Db::name('service_book')
                    ->alias('sb')
                    ->field('sb.*')
                    ->join('service_book_cate sbc','sbc.service_book_id=sb.id')
                    ->where('sbc.service_cate_id',$v['id'])
                    ->where($where)
                    ->select()
                    ->toArray();
                $countNum = 0;
                foreach ($bookList as $kk=>$vv){
                    $countNum +=$vv['nums'];
                }
                $count[$k]['count'] = $countNum;
            }

            $this->assign('count',$count);
        }

        if($type == 3){
            $where[] = ['service_id','=',$serviceId];
            $where[] = ['org_id','=',$this->org_id];
            if($start && $end){
                $where[] = ['create_time','>=',$start];
                $where[] = ['create_time','<=',$end];
            }
            $data = [];
            $bookList = Db::name('service_book')->where($where)->select()->toArray();
            $total = 0;
            foreach ($bookList as $k=>$v){
                $total +=$v['nums'];

            }
            $data['k'] = 1;
            $data['count'] = $total;
        }

        if($type == 4 || $type == 5){
            $map[] = ['service_id','=',$serviceId];
            $map[] = ['del','=',0];
            $itemList  = Db::name('service_item')->where($map)->order('id asc')->select()->toArray();
            $this->assign('itemList',$itemList);

            $where[] = ['create_time','>=',$start];
            $where[] = ['create_time','<=',$end];
            $where[] = ['service_id','=',$serviceId];
            $where[] = ['org_id','=',$this->org_id];
            $data = [];

            foreach ($itemList as $k=>$v){
                $data[$k]['id']= $v['id'];
                $data[$k]['title']= $v['title'];

                $bookList = Db::name('service_book')
                    ->where('service_item_id',$v['id'])
                    ->where($where)
                    ->select()
                    ->toArray();
                $total = 0;
                foreach ($bookList as $kay=>$val){
                    $total +=$val['nums'];
                }
                $data[$k]['count'] = $total;
            }
            $countNum = 0;
            foreach ($data as $kay =>$val){
                $countNum += $val['count'];
            }
            $this->assign('countNum',$countNum);
        }


        $this->assign('start',$start);
        $this->assign('end',$end);
        $this->assign('data',$data);
        $this->assign('type',$type);
        $this->assign('meta_title',$meta_title);
        return $this->fetch();
    }
    public function serviceCountDetails(){
        $month = input('month');
        $itemId = input('itemId',0);
        $serviceId = input('serviceId',0);
        if(!$month && !$itemId){
            $this->error('参数错误');
        }
        $startMonth = $month.'-1 00:00:00';
        $endMonth = $month.'-31 23:59:59';
        $sWeek = date('Y-m-d', (time() - ((date('w') == 0 ? 7 : date('w')) - 1) * 24 * 3600));
        $eWeek = date('Y-m-d', (time() + (7 - (date('w') == 0 ? 7 : date('w'))) * 24 * 3600));
        $startWeek = $sWeek.' 00:00:00';
        $endWeek = $eWeek.' 23:59:59';
        $day = date('Y-m-d');
        $startDay= $day.' 00:00:00';
        $endDay= $day.' 23:59:59';
        $cateList = Db::name('service_cate')->where('service_id',$serviceId)->where('enable',1)->select()->toArray();
        foreach ($cateList as $k=>$v){
            $bookCate = Db::name('service_book_cate')
                ->where('service_book_cate_id',$v['id'])
                ->select()
                ->toArray();
            $ids = [];
            foreach ($bookCate as $kay=>$val){
                $ids[] = $val['service_book_id'];
            }
            $newIds = array_unique($ids);

            $bookList = Db::name('service_book')
                ->whereIn('id',$newIds)
                ->where('service_item_id',$itemId)
                ->where('service_id',$serviceId)
                ->where('org_id',$this->org_id)
                ->whereTime('create_time', 'between', [$startMonth, $endMonth])
                ->select()->toArray();
            $nums = 0;
            foreach ($bookList as $kk=>$vv){
                $nums +=$vv['nums'];
            }

            $bookList1 = Db::name('service_book')
                ->whereIn('id',$newIds)
                ->where('service_item_id',$itemId)
                ->where('service_id',$serviceId)
                ->where('org_id',$this->org_id)
                ->whereTime('create_time', 'between', [$startWeek, $endWeek])
                ->select()->toArray();
            $nums1 = 0;
            foreach ($bookList1 as $kk=>$vv){
                $nums1 +=$vv['nums'];
            }

            $bookList2 = Db::name('service_book')
                ->whereIn('id',$newIds)
                ->where('service_item_id',$itemId)
                ->where('service_id',$serviceId)
                ->where('org_id',$this->org_id)
                ->whereTime('create_time', 'between', [$startDay, $endDay])
                ->select()->toArray();
            $nums2 = 0;
            foreach ($bookList2 as $kk=>$vv){
                $nums2 +=$vv['nums'];
            }

            $cateList[$k]['count'] = $nums;
            $cateList[$k]['week'] = $nums1;
            $cateList[$k]['day'] = $nums2;

        }
        $this->assign('meta_title','餐厅统计');
        $this->assign('data',$cateList);
        return $this->fetch();

    }

    public function userWork()
    {
        if(request()->isAjax()){
            //分页参数
            $length = input('rows',10,'intval');   //每页条数
            $page = input('page',1,'intval');      //第几页
            $start = ($page - 1) * $length;     //分页开始位置
            //排序
            $sortRow = input('sidx','id','trim');      //排序列
            $sort = input('sord','desc','trim');        //排序方式
            $order = $sortRow.' '.$sort;

            $title = input('title','','trim');
            if($title){
                $map[] = ['u.nickname','like','%'.$title.'%'];
            }
            $map= empty($map) ? true: $map;
            $ret = Db::name('user')
                ->alias('u')
                ->field('u.id,u.nickname')
                ->join('user_org uo', 'uo.user_id=u.id')
                ->where('uo.org_id', $this->org_id)
                ->where('u.enable', 1)
                ->where('u.del', 0)
                ->where($map)
                ->limit($start,$length)
                ->order($order)
                ->select()
                ->toArray();
            foreach ($ret as $k => $v) {
                //获取本月开始时间结束时间
                $smonth = date('Y-m') . '-1 00:00:00';
                $emonth = date('Y-m') . '-31 23:59:59';
                $where[] = ['update_time','>=',$smonth];
                $where[] = ['update_time','<=',$emonth];
                $userWork = Db::name('user_work')
                    ->where('user_id', $v['id'])
                    ->where($where)
                    ->whereNotNull('start_time')
                    ->whereNotNull('end_time')
                    ->select()
                    ->toArray();
                $num = 0;
                foreach ($userWork as $kk => $vv) {
                    $stime = strtotime($vv['start_time']);
                    $etime = strtotime($vv['end_time']);
                    $newTime = $etime - $stime;
                    $num += $newTime;
                }
                $ret[$k]['month'] = $num;

                //获取本周开始时间 结束时间
                $sweek = date('Y-m-d', (time() - ((date('w') == 0 ? 7 : date('w')) - 1) * 24 * 3600)) . ' 00:00:00';
                $eweek = date('Y-m-d', (time() + (7 - (date('w') == 0 ? 7 : date('w'))) * 24 * 3600)) . ' 23:59:59';
                $where2[] = ['update_time','>=',$sweek];
                $where2[] = ['update_time','<=',$eweek];
                $userWork2 = Db::name('user_work')
                    ->where('user_id', $v['id'])
                    ->where($where2)
                    ->whereNotNull('start_time')
                    ->whereNotNull('end_time')
                    ->select()->toArray();
                $num2 = 0;
                foreach ($userWork2 as $kk => $vv) {
                    $stime = strtotime($vv['start_time']);
                    $etime = strtotime($vv['end_time']);
                    $newTime = $etime - $stime;
                    $num2 += $newTime;
                }
                $ret[$k]['week'] = $num2;

                //获取今天开始时间 结束时间
                $sday = date('Y-m-d') . ' 00:00:00';
                $eday = date('Y-m-d') . ' 23:59:59';
                $where3[] = ['update_time','>=',$sday];
                $where3[] = ['update_time','<=',$eday];
                $userWork3 = Db::name('user_work')
                    ->where('user_id', $v['id'])
                    ->where($where3)
                    ->whereNotNull('start_time')
                    ->whereNotNull('end_time')
                    ->select()->toArray();
                $num3 = 0;
                foreach ($userWork3 as $kk => $vv) {
                    $stime = strtotime($vv['start_time']);
                    $etime = strtotime($vv['end_time']);
                    $newTime = $etime - $stime;
                    $num3 += $newTime;
                }
                $ret[$k]['day'] = $num3;
            }

            //数据返回
            $totalCount =  Db::name('user')
                ->alias('u')
                ->field('u.id,u.nickname')
                ->join('user_org uo', 'uo.user_id=u.id')
                ->where('uo.org_id', $this->org_id)
                ->where('u.enable', 1)
                ->where('u.del', 0)
                ->where($map)
                ->count();;
            $totalPage = ceil($totalCount/$length);
            $result['page'] = $page;
            $result['total'] = $totalPage;
            $result['records'] = $totalCount;
            $result['rows'] = $ret;
            return json($result);
        }else{
            $this->assign('meta_title','用户工作时长统计');
            return $this->fetch();
        }
    }
    //耗材统计
    public function mateItems(){
        $month = input('month','','trim');
        if($month){
            $smonth = $month.'-01 :00:00:00';
            $emonth = $month.'-31 :23:59:59';
            $where[] =  ['t.done_time','>=',$smonth];
            $where[] =  ['t.done_time','<=',$emonth];
        }else{
            //本月
            $month = date('Y-m');
            $sdate = date('Y-m').'-01 :00:00:00';
            $edate = date('Y-m').'-31 :23:59:59';
            $where[] =  ['t.done_time','>=',$sdate];
            $where[] =  ['t.done_time','<=',$edate];
            //本周
            $sweek = date('Y-m-d', (time() - ((date('w') == 0 ? 7 : date('w')) - 1) * 24 * 3600)) . ' 00:00:00';
            $eweek = date('Y-m-d', (time() + (7 - (date('w') == 0 ? 7 : date('w'))) * 24 * 3600)) . ' 23:59:59';
            $where2[] =  ['t.done_time','>=',$sweek];
            $where2[] =  ['t.done_time','<=',$eweek];
            //当天
            $sday = date('Y-m-d') . ' 00:00:00';
            $eday = date('Y-m-d') . ' 23:59:59';
            $where3[] =  ['t.done_time','>=',$sday];
            $where3[] =  ['t.done_time','<=',$eday];
        }

        $map[] = ['enable','=',1];
        $map[] = ['org_id','=',$this->org_id];
        $map= empty($map) ? true: $map;
        $ret = Db::name('dep')->where($map)->select()->toArray();
        foreach ($ret as $k=>$v){
            //本月
            $todo = Db::name('todo')
                ->alias('t')
                ->field('t.id,t.to_user_id,t.mate_price')
                ->join('user_dep ud','ud.user_id=t.to_user_id')
                ->where('ud.dep_id',$v['id'])
                ->where('t.todo_mode',3)
                ->where('t.del',0)
                ->where('t.org_id',$this->org_id)
                ->where($where)
                ->select()
                ->toArray();
            $total = 0;
            foreach ($todo as $kk=>$vv){
                $total +=$vv['mate_price'];
            }
            $ret[$k]['month'] = $total;
            //本周
            $ret[$k]['week'] = 0;
            if(!empty($where2)){
                $todo = Db::name('todo')
                    ->alias('t')
                    ->field('t.id,t.to_user_id,t.mate_price')
                    ->join('user_dep ud','ud.user_id=t.to_user_id')
                    ->where('ud.dep_id',$v['id'])
                    ->where('t.todo_mode',3)
                    ->where('t.del',0)
                    ->where('t.org_id',$this->org_id)
                    ->where($where2)
                    ->select()
                    ->toArray();
                $total2 = 0;
                foreach ($todo as $kk=>$vv){
                    $total2 +=$vv['mate_price'];
                }
                $ret[$k]['week'] = $total2;
            }
            $ret[$k]['day'] = 0;
            if(!empty($where3)){
                //当天
                $todo = Db::name('todo')
                    ->alias('t')
                    ->field('t.id,t.to_user_id,t.mate_price')
                    ->join('user_dep ud','ud.user_id=t.to_user_id')
                    ->where('ud.dep_id',$v['id'])
                    ->where('t.todo_mode',3)
                    ->where('t.del',0)
                    ->where('t.org_id',$this->org_id)
                    ->where($where3)
                    ->select()
                    ->toArray();
                $total3 = 0;
                foreach ($todo as $kk=>$vv){
                    $total3 +=$vv['mate_price'];
                }
                $ret[$k]['day'] = $total3;
            }
        }
        $this->assign('data',$ret);
        $this->assign('month',$month);
        $this->assign('meta_title','耗材统计列表');
        return $this->fetch();
    }
    public function mateItemsDetails($id,$month){
        $sdate = $month.'-1 00:00:00';
        $edate = $month.'-31 23:59:59';
        $map[] = ['t.done_time','>=',$sdate];
        $map[] = ['t.done_time','<=',$edate];
        if(request()->isAjax()){
            //分页参数
            $length = input('rows',10,'intval');   //每页条数
            $page = input('page',1,'intval');      //第几页
            $start = ($page - 1) * $length;     //分页开始位置
            //排序
            $sortRow = input('sidx','id','trim');      //排序列
            $sort = input('sord','desc','trim');        //排序方式
            $order = $sortRow.' '.$sort;

            $ret = Db::name('todo')
                ->alias('t')
                ->field('t.to_user_id,tmi.*')
                ->join('user_dep ud','ud.user_id=t.to_user_id')
                ->join('todo_mate_item tmi','tmi.todo_id=t.id')
                ->where('ud.dep_id',$id)
                ->where('t.todo_mode',3)
                ->where('t.del',0)
                ->where('t.org_id',$this->org_id)
                ->where($map)
                ->limit($start,$length)
                ->order($order)
                ->select()
                ->toArray();
            foreach ($ret as $k=>$v){
                $ret[$k]['title']=Db::name('mate_items')
                    ->where('id',$v['items_id'])
                    ->value('title');
                $ret[$k]['nickname']=Db::name('user')
                    ->where('id',$v['to_user_id'])
                    ->value('nickname');
            }

            //数据返回
            $totalCount =  Db::name('todo')
                ->alias('t')
                ->field('tmi.*')
                ->join('user_dep ud','ud.user_id=t.to_user_id')
                ->join('todo_mate_item tmi','tmi.todo_id=t.id')
                ->where('ud.dep_id',$id)
                ->where('t.todo_mode',3)
                ->where('t.del',0)
                ->where('t.org_id',$this->org_id)
                ->where($map)
                ->count();

            $totalPage = ceil($totalCount/$length);
            $result['page'] = $page;
            $result['total'] = $totalPage;
            $result['records'] = $totalCount;
            $result['rows'] = $ret;
            return json($result);
        }else{
            $this->assign('meta_title','部门使用耗材列表');
            $this->assign('id',$id);
            $this->assign('month',$month);
            return $this->fetch();
        }
    }
    //报修科室使用材料统计
    public function cltj(){
        $cur = date('Y-m-d');
        $start = input('start', date('Y-m-d', strtotime('' . $cur . ' -1 week')));
        $end = input('end', date('Y-m-d'));
        $start1 = $start . ' 00:00:00';
        $end1 = $end . ' 23:59:59';
        $data = $this->cltjData($start1,$end1);

        $this->assign('data', $data);
        $this->assign('start', $start);
        $this->assign('end', $end);
        return $this->fetch();
    }

    public function cltjData($start,$end){
        $orgId = $this->orgId;
        $ret = Db::name('order_repair')
            ->alias('a')
            ->join('orders b','a.order_id=b.id')
            ->where('b.org_id',$orgId)
            ->where('a.address_id','>',0)
            ->field('a.address_id')
            ->distinct(true)
            ->select();
        $map = [];
        if(!empty($start)){
            $map[] = ['t.done_time','>=',$start];
        }
        if(!empty($end)){
            $map[] = ['t.done_time','<',$end];
        }

        $map[] = ['t.del','=',0];
        $map[] = ['t.org_id','=',$orgId];

        foreach ($ret as $k=>$v){
            $map1 = [];
            $todo = Db::name('todo_mate_item')
                ->alias('tmi')
                ->join('todo_mate tm','tm.id = tmi.todo_mate_id')
                ->join('todo t','tm.todo_id = t.id')
                ->join('orders o','o.id = t.order_id')
                ->join('order_repair r','o.id = r.order_id')
                ->where('r.address_id',$v['address_id'])
                ->where($map)
                ->sum('tmi.total_money');
            $num =$todo?round($todo,2):0;
            if($num<=0){
                unset($ret[$k]);
            }else{
                $ret[$k]['month'] = $num;
                if(!empty($start)){
                    $map1[] = ['t.done_time','>=',$start];
                }
                if(!empty($end)){
                    $map1[] = ['t.done_time','<',$end];
                }

                $map1[] = ['t.del','=',0];
                $map1[] = ['t.org_id','=',$orgId];
                $map1[] = ['r.address_id','=',$v['address_id']];
                $lists =Db::name('todo_mate_item')
                    ->alias('tmi')
                    ->join('todo_mate tm','tm.id = tmi.todo_mate_id')
                    ->join('todo t','tm.todo_id = t.id')
                    ->join('orders o','o.id = t.order_id')
                    ->join('user u','u.id = t.to_user_id')
                    ->join('order_repair r','o.id = r.order_id')
                    ->join('mate_goods ma','ma.id = tmi.items_id')
                    ->field('tmi.*,u.real_name,ma.title')
                    ->where($map1)
                    ->select();
                if(empty($lists)){
                    unset($ret[$k]);
                    continue;
                }
                $ret[$k]['rows'] = count($lists);
                $ret[$k]['items'] = $lists;

                $ret[$k]['title'] =Db::name('address')
                    ->where('id',$v['address_id'])
                    ->value('title');
            }
        }
        return $ret;

    }

    //耗材统计导出
    public function cltjExport()
    {
        set_time_limit(0);
        ini_set("memory_limit", "1024M");
        $cur = date('Y-m-d');
        $start = input('start', date('Y-m-d', strtotime('' . $cur . ' -1 week')));
        $end = input('end', date('Y-m-d'));
        $start1 = $start . ' 00:00:00';
        $end1 = $end . ' 23:59:59';
        $data = $this->cltjData($start1,$end1);
        $title = '报修科室使用材料统计报表';
        header("Content-type: application/vnd.ms-excel");
        header("Content-Type: application/force-download");
        header("Content-Disposition: attachment; filename=".$title.".xls");
        header('Expires:0');
        header('Pragma:public');
        $res = '';
        $res.='<table style="border-top: 1px solid #ddd;border-left: 1px solid #ddd;border-spacing: 0;">';
        $res.='<tr style="background: #ffffff;">';

        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">科室名称</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">材料名称</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">数量</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">单价</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">总价</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">小计</th>';
        $res.='</tr>';

        foreach ($data as $k=>$v){
            $res.='<tr style="background: #ffffff;">';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd" rowspan="'.$v['rows'].'">'.$v['title'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v['items'][0]['title'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v['items'][0]['total'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v['items'][0]['money'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v['items'][0]['total_money'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd" rowspan="'.$v['rows'].'">'.$v['month'].'</td>';
            $res.='</tr>';
            if(count($v['items']) >=2){
                foreach ($v['items'] as $k1=>$v1){
                    if($k1>0){
                        $res.='<tr style="background: #ffffff;">';
                        $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v1['title'].'</td>';
                        $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v1['total'].'</td>';
                        $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v1['money'].'</td>';
                        $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v1['total_money'].'</td>';
                        $res.='</tr>';

                    }
                }
            }
        }
        echo $res;
    }

    //员工维修工作量
    public function finishTime(){
        $cur = date('Y-m-d');
        $start = input('start', date('Y-m-d', strtotime('' . $cur . ' -1 week')));
        $end = input('end', date('Y-m-d'));
        $start1 = $start . ' 00:00:00';
        $end1 = $end . ' 23:59:59';
        $data = $this->finishTimeData($start1,$end1);

        $this->assign('data', $data);
        $this->assign('start', $start);
        $this->assign('end', $end);
        return $this->fetch();
    }

    public function finishTimeData($start,$end) {

        $org_id = $this->orgId;
        $list = (new \app\common\model\WorkTypeMode())->getRolesUser(1,$this->orgId);

        $a = [];
        foreach ($list as $k=>$v){
            if($v['user']){
                foreach ($v['user'] as $k1=>$v1){
                    $a[] = $v1;
                }
            }
        }
        $accepted = $nFinish=0;
        $list = $a;
        $map = [];
        if(!empty($start)){
            $map[] = ['todo.create_yyyymmdd','>=',date('Ymd',strtotime($start))];
        }
        if(!empty($end)){
            $map[] = ['todo.create_yyyymmdd','<=',date('Ymd',strtotime($end))];
        }
        foreach ($list as $k=>$v){
            $hs = 0;
            $orderList = Db::name('todo')
                ->alias('todo')
                ->where('todo.org_id',$org_id)
                ->where('todo.todo_mode',3)
                ->where('todo.to_user_id',$v['id'])
                ->where('todo.work_type_mode',1)
                ->where($map)
                ->select();
            foreach ($orderList as $k1=>$v1){
                $hs += strtotime($v1['done_time'])-strtotime($v1['create_time']);
            }
            $hszj = $hs >0?round($hs/3600,2):0;
            $list[$k]['hszj'] = $hszj;
            $wc_time = Db::name('todo')
                ->alias('todo')
                ->where('todo.org_id',$org_id)
                ->where('todo.todo_mode',3)
                ->where('todo.to_user_id',$v['id'])
                ->where('todo.work_type_mode',1)
                ->where($map)
                ->sum('todo.wc_time');
            $total = $wc_time?round($wc_time/3600,2):0;
            $list[$k]['total'] = $total;
            $nums = Db::name('todo')
                ->alias('todo')
                ->where('todo.org_id',$org_id)
                ->where('todo.todo_mode',3)
                ->where('todo.to_user_id',$v['id'])
                ->where('todo.work_type_mode',1)
                ->where($map)
                ->count();
            $list[$k]['num'] =$nums;

            if($nums>0){
                $avg = round($total/$nums,2);
            }else{
                $avg = 0;
            }
            $list[$k]['avg'] = $avg;

            $dep = Db::name('user_dep')
                ->alias('a')
                ->join('dep o','a.dep_id=o.id')
                ->where('a.user_id',$v['id'])
                ->field('o.title')
                ->find();
            $list[$k]['dep'] = $dep?$dep['title']:'';
            // 已接工
            $list[$k]['accepted'] = Db::name('todo')
                ->alias('todo')
                ->where('todo.org_id',$org_id)
                ->where('todo.todo_mode','>',1)
                ->where('todo.to_user_id',$v['id'])
                ->where('todo.work_type_mode',1)
                ->where($map)
                ->count();
            $accepted += $list[$k]['accepted'];
            // 未完工

            $list[$k]['nFinish'] = Db::name('todo')
                ->alias('todo')
                ->where('todo.org_id',$org_id)
                ->where('todo.todo_mode','in',[2,4,5,6,7,8])
                ->where('todo.to_user_id',$v['id'])
                ->where('todo.work_type_mode',1)
                ->where($map)
                ->count();
            $nFinish += $list[$k]['nFinish'];
        }
        return $list;
    }

    //excel导出
    public function finishTimeExport() {
        $meta_title = '维修人员工作时长';
        $cur = date('Y-m-d');
        $start = input('start', date('Y-m-d', strtotime('' . $cur . ' -1 week')));
        $end = input('end', date('Y-m-d'));
        $start1 = $start . ' 00:00:00';
        $end1 = $end . ' 23:59:59';
        $ret = $this->finishTimeData($start1,$end1);

        include_once env('root_path').'/extend/phpexcel/Classes/PHPExcel.php';
        //实例化PHPExcel类
        $objPHPExcel = new \PHPExcel();
        //激活当前的sheet表
        $objPHPExcel->setActiveSheetIndex(0);
        //设置表格头(即excel表格的第一行)
        $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', '姓名')
            ->setCellValue('B1', '班组名称')
            ->setCellValue('C1', '接工量')
            ->setCellValue('D1', '完工量')
            ->setCellValue('E1', '未完工量')
            ->setCellValue('F1', '维修耗时')
            ->setCellValue('G1', '工时总计');
        // 设置表格头水平居中
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('B1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('C1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('D1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('E1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('F1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('G1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('H1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        //设置列水平居中
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('B')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('C')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('D')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('E')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('F')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('G')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('H')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        //设置单元格宽度
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(10);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(20);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(20);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(20);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(20);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('F')->setWidth(50);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('G')->setWidth(20);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('H')->setWidth(20);
        //循环刚取出来的数组,将数据逐一添加到excel表格。
        for ($i = 0; $i < count($ret); $i++) {
            $objPHPExcel->getActiveSheet()->setCellValue('A' . ($i + 2), $ret[$i]['real_name']);
            $objPHPExcel->getActiveSheet()->setCellValue('B' . ($i + 2), $ret[$i]['dep']);
            $objPHPExcel->getActiveSheet()->setCellValue('C' . ($i + 2), $ret[$i]['accepted']);
            $objPHPExcel->getActiveSheet()->setCellValue('D' . ($i + 2), $ret[$i]['num']);
            $objPHPExcel->getActiveSheet()->setCellValue('E' . ($i + 2), $ret[$i]['nFinish']);

            $objPHPExcel->getActiveSheet()->setCellValue('F' . ($i + 2), $ret[$i]['hszj']);
            $objPHPExcel->getActiveSheet()->setCellValue('G' . ($i + 2), $ret[$i]['total']);
        }
        //设置保存的Excel表格名称
        $filename = '维修人员工作时长' . date('YmdHis', time()) . '.xls';
        //设置当前激活的sheet表格名称
        $objPHPExcel->getActiveSheet()->setTitle('维修人员工作时长');
        //设置浏览器窗口下载表格
        ob_end_clean();
        header("Content-Type: application/force-download");
        header("Content-Type: application/octet-stream");
        header("Content-Type: application/download");
        header('Content-Disposition:inline;filename="' . $filename);
        //生成excel文件
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        //下载文件在浏览器窗口
        return $objWriter->save('php://output');
    }


    //班组维修工作量
    public function bzwx(){
        $cur = date('Y-m-d');
        $start = input('start', date('Y-m-d', strtotime('' . $cur . ' -1 week')));
        $end = input('end', date('Y-m-d'));
        $title = input('title','');
        $start1 = $start . ' 00:00:00';
        $end1 = $end . ' 23:59:59';
        $data = $this->bzwxData($start1,$end1,$title);

        $this->assign('data', $data);
        $this->assign('start', $start);
        $this->assign('end', $end);
        $this->assign('title', $title);
        return $this->fetch();
    }

    public function bzwxData($start,$end,$title){
        $org_id = $this->orgId;

        $m = [];
        if(!empty($title)){
            $m[] =['title','like','%'.$title.'%'];
        }
        $list = Db::name('dep')
            ->where('del',0)
            ->where('enable',1)
            ->where('org_id',$org_id)
            ->select();
        $map = [];
        if(!empty($start)){
            $map[] = ['create_yyyymmdd','>=',date('Ymd',strtotime($start))];
        }
        if(!empty($end)){
            $map[] = ['create_yyyymmdd','<=',date('Ymd',strtotime($end))];
        }

        $accepted = $nFinish=0;
        foreach ($list as $k=>$v){
            $user = Db::name('user_dep')
                ->alias('b')
                ->join('user a','b.user_id=a.id')
                ->where('a.del',0)
                ->where('a.enable',1)
                ->where('b.dep_id',$v['id'])
                ->field('b.user_id')
                ->select();
            $ids = $user?array_column($user,'user_id'):[];
            $list[$k]['num'] =0;
            $list[$k]['accepted'] =0;
            $list[$k]['nFinish'] =0;
            if(!empty($ids)){
                $nums =Db::name('todo')
                    ->where('org_id',$org_id)
                    ->where('to_user_id','in',$ids)
                    ->where('work_type_mode',1)
                    ->where('todo_mode','in',[2,3,9])
                    ->where($map)
                    ->count();
                $list[$k]['num'] =$nums;

                // 已接工
                $list[$k]['accepted'] = Db::name('todo')
                    ->where('org_id',$org_id)
                    ->where('to_user_id','in',$ids)
                    ->where('work_type_mode',1)
                    ->where('todo_mode','>',1)
                    ->where($map)
                    ->count();
                $accepted += $list[$k]['accepted'];
                // 未完工
                $list[$k]['nFinish'] = Db::name('todo')
                    ->where('org_id',$org_id)
                    ->where('to_user_id','in',$ids)
                    ->where('work_type_mode',1)
                    ->where('todo_mode','in',[2,4,5,6,7])
                    ->where($map)
                    ->count();
                $nFinish += $list[$k]['nFinish'];
                if($nums==0 && $list[$k]['accepted']==0 && $list[$k]['nFinish']==0){
                    unset($list[$k]);
                }
            }else{
                unset($list[$k]);
            }

        }
        return $list;
    }

    //excel导出
    public function bzwxExport() {
        $meta_title = '班组维修工作量统计表';
        $cur = date('Y-m-d');
        $start = input('start', date('Y-m-d', strtotime('' . $cur . ' -1 week')));
        $end = input('end', date('Y-m-d'));
        $start1 = $start . ' 00:00:00';
        $end1 = $end . ' 23:59:59';
        $title = input('title','');
        $ret = $this->bzwxData($start1,$end1,$title);

        include_once env('root_path').'/extend/phpexcel/Classes/PHPExcel.php';
        //实例化PHPExcel类
        $objPHPExcel = new \PHPExcel();
        //激活当前的sheet表
        $objPHPExcel->setActiveSheetIndex(0);
        //设置表格头(即excel表格的第一行)
        $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', '班组名称')
            ->setCellValue('B1', '接工量')
            ->setCellValue('C1', '完工量')
            ->setCellValue('D1', '未完工量');
        // 设置表格头水平居中
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('B1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('C1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('D1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('E1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('F1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('G1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('H1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        //设置列水平居中
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('B')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('C')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('D')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('E')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('F')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('G')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('H')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        //设置单元格宽度
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(10);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(20);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(20);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(20);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(20);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('F')->setWidth(50);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('G')->setWidth(20);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('H')->setWidth(20);
        //循环刚取出来的数组,将数据逐一添加到excel表格。
        for ($i = 0; $i < count($ret); $i++) {
            $objPHPExcel->getActiveSheet()->setCellValue('A' . ($i + 2), $ret[$i]['title']);
            $objPHPExcel->getActiveSheet()->setCellValue('B' . ($i + 2), $ret[$i]['accepted']);
            $objPHPExcel->getActiveSheet()->setCellValue('C' . ($i + 2), $ret[$i]['num']);
            $objPHPExcel->getActiveSheet()->setCellValue('D' . ($i + 2), $ret[$i]['nFinish']);
        }
        //设置保存的Excel表格名称
        $filename = '班组维修工作量统计表' . date('YmdHis', time()) . '.xls';
        //设置当前激活的sheet表格名称
        $objPHPExcel->getActiveSheet()->setTitle('班组维修工作量统计表');
        //设置浏览器窗口下载表格
        ob_end_clean();
        header("Content-Type: application/force-download");
        header("Content-Type: application/octet-stream");
        header("Content-Type: application/download");
        header('Content-Disposition:inline;filename="' . $filename);
        //生成excel文件
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        //下载文件在浏览器窗口
        return $objWriter->save('php://output');
    }

    public function bxks(){
        $cur = date('Y-m-d');
        $start = input('start', date('Y-m-d', strtotime('' . $cur . ' -1 week')));
        $end = input('end', date('Y-m-d'));
        $title = input('title','');
        $start1 = $start . ' 00:00:00';
        $end1 = $end . ' 23:59:59';
        $data = $this->bxksData($start1,$end1,$title);

        $this->assign('data', $data);
        $this->assign('start', $start);
        $this->assign('end', $end);
        $this->assign('title', $title);
        return $this->fetch();
    }

    public function bxksData($start,$end,$title){
        $org_id = $this->orgId;
        $map = [];
        if(!empty($title)){
            $ks = Db::name('address')
                ->where('org_id',$org_id)
                ->where('del',0)
                ->where('enable',1)
                ->where('title','like','%'.$title.'%')
                ->select();
            if(empty($ks)){
                $map[] = ['a.address_id','=',-1];
            }else{
                $map[] = ['a.address_id','in',array_column($ks,'id')];
            }
        }
        $ret =Db::name('order_repair')
            ->alias('a')
            ->join('orders b','a.order_id=b.id')
            ->where('b.org_id',$org_id)
            ->where('a.address_id','>',0)
            ->where($map)
            ->field('a.address_id')
            ->distinct(true)
            ->select();
        if(!empty($start)){
            $map1[] = ['t.create_yyyymmdd','>=',date('Ymd',strtotime($start))];
        }
        if(!empty($end)){
            $map1[] = ['t.create_yyyymmdd','<=',date('Ymd',strtotime($end))];
        }

        $map1[] = ['t.del','=',0];
        $map1[] = ['t.org_id','=',$org_id];
        foreach ($ret as $k=>$v){
            $num = Db::name('order_repair')
                ->alias('a')
                ->join('orders t','a.order_id = t.id')
                ->where('a.address_id',$v['address_id'])
                ->where($map1)
                ->count();

            $ret[$k]['num'] = $num;

            $ret[$k]['title'] = Db::name('address')
                ->where('id',$v['address_id'])
                ->value('title');
        }
        return $ret;
    }

    //excel导出
    public function bxksExport() {
        $meta_title = '报修科室统计';
        $cur = date('Y-m-d');
        $start = input('start', date('Y-m-d', strtotime('' . $cur . ' -1 week')));
        $end = input('end', date('Y-m-d'));
        $start1 = $start . ' 00:00:00';
        $end1 = $end . ' 23:59:59';
        $title = input('title','');
        $ret = $this->bxksData($start1,$end1,$title);

        include_once env('root_path').'/extend/phpexcel/Classes/PHPExcel.php';
        //实例化PHPExcel类
        $objPHPExcel = new \PHPExcel();
        //激活当前的sheet表
        $objPHPExcel->setActiveSheetIndex(0);
        //设置表格头(即excel表格的第一行)
        $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', '科室名称')
            ->setCellValue('B1', '报修订单数量');
        // 设置表格头水平居中
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('B1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('C1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('D1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('E1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('F1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('G1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('H1')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        //设置列水平居中
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('B')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('C')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('D')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('E')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('F')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('G')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('H')->getAlignment()
            ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        //设置单元格宽度
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(10);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(20);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(20);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(20);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(20);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('F')->setWidth(50);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('G')->setWidth(20);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('H')->setWidth(20);
        //循环刚取出来的数组,将数据逐一添加到excel表格。
        for ($i = 0; $i < count($ret); $i++) {
            $objPHPExcel->getActiveSheet()->setCellValue('A' . ($i + 2), $ret[$i]['title']);
            $objPHPExcel->getActiveSheet()->setCellValue('B' . ($i + 2), $ret[$i]['num']);
        }
        //设置保存的Excel表格名称
        $filename = '报修科室统计' . date('YmdHis', time()) . '.xls';
        //设置当前激活的sheet表格名称
        $objPHPExcel->getActiveSheet()->setTitle('报修科室统计');
        //设置浏览器窗口下载表格
        ob_end_clean();
        header("Content-Type: application/force-download");
        header("Content-Type: application/octet-stream");
        header("Content-Type: application/download");
        header('Content-Disposition:inline;filename="' . $filename);
        //生成excel文件
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        //下载文件在浏览器窗口
        return $objWriter->save('php://output');
    }


    public function grcltj(){
        $cur = date('Y-m-d');
        $start = input('start', date('Y-m-d', strtotime('' . $cur . ' -1 week')));
        $end = input('end', date('Y-m-d'));
        $start1 = $start . ' 00:00:00';
        $end1 = $end . ' 23:59:59';
        $data = $this->grcltjData($start1,$end1);
        $this->assign('data', $data);
        $this->assign('start', $start);
        $this->assign('end', $end);
        return $this->fetch();
    }

    public function grcltjData($start,$end){
        $orgId = $this->orgId;
        $ret = Db::name('todo_mate')
            ->alias('a')
            ->join('todo b','a.todo_id=b.id')
            ->field('a.*')
            ->where('a.org_id',$orgId)
            ->where('a.type',0)
            ->where('b.del',0)
            ->group('a.user_id')
            ->select();
        $map = [];
        if(!empty($start)){
            $map[] = ['tmi.create_time','>=',$start];
        }
        if(!empty($end)){
            $map[] = ['tmi.create_time','<',$end];
        }

        $map[] = ['t.del','=',0];
        $map[] = ['tm.org_id','=',$orgId];

        foreach ($ret as $k=>$v){
            $map1 = [];
            $todo = Db::name('todo_mate_item')
                ->alias('tmi')
                ->join('todo_mate tm','tm.id = tmi.todo_mate_id')
                ->join('todo t','tm.todo_id = t.id')
                ->join('orders o','o.id = t.order_id')
                ->where('tmi.user_id',$v['user_id'])
                ->where($map)
                ->sum('tmi.total_money');
            $num =$todo?round($todo,2):0;
            if($num<=0){
                unset($ret[$k]);
            }else{
                $ret[$k]['month'] = $num;
                if(!empty($start)){
                    $map1[] = ['t.create_time','>=',$start];
                }
                if(!empty($end)){
                    $map1[] = ['t.create_time','<',$end];
                }

                $map1[] = ['t.del','=',0];
                $map1[] = ['t.org_id','=',$orgId];
                $map1[] = ['tm.user_id','=',$v['user_id']];
                $lists =Db::name('todo_mate_item')
                    ->alias('tmi')
                    ->join('todo_mate tm','tm.id = tmi.todo_mate_id')
                    ->join('todo t','tm.todo_id = t.id')
                    ->join('orders o','o.id = t.order_id')
                    ->join('user u','u.id = t.to_user_id')
                    ->join('mate_goods ma','ma.id = tmi.items_id')
                    ->field('tmi.*,u.real_name,ma.title')
                    ->where($map1)
                    ->select();
                if(empty($lists)){
                    unset($ret[$k]);
                    continue;
                }
                $ret[$k]['rows'] = count($lists);
                $ret[$k]['items'] = $lists;
                $ret[$k]['real_name'] = Db::name('user')
                ->where('id',$v['user_id'])
                ->value('real_name');
            }
        }
        return $ret;
    }

    public function grcltjExport()
    {
        set_time_limit(0);
        ini_set("memory_limit", "1024M");
        $cur = date('Y-m-d');
        $start = input('start', date('Y-m-d', strtotime('' . $cur . ' -1 week')));
        $end = input('end', date('Y-m-d'));
        $start1 = $start . ' 00:00:00';
        $end1 = $end . ' 23:59:59';
        $data = $this->grcltjData($start1,$end1);
        $title = '工人耗材用量统计';
        header("Content-type: application/vnd.ms-excel");
        header("Content-Type: application/force-download");
        header("Content-Disposition: attachment; filename=".$title.".xls");
        header('Expires:0');
        header('Pragma:public');
        $res = '';
        $res.='<table style="border-top: 1px solid #ddd;border-left: 1px solid #ddd;border-spacing: 0;">';
        $res.='<tr style="background: #ffffff;">';

        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">工人名称</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">材料名称</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">数量</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">单价</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">总价</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">使用时间</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">小计</th>';
        $res.='</tr>';

        foreach ($data as $k=>$v){
            $res.='<tr style="background: #ffffff;">';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd" rowspan="'.$v['rows'].'">'.$v['real_name'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v['items'][0]['title'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v['items'][0]['total'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v['items'][0]['money'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v['items'][0]['total_money'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v['items'][0]['create_time'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd" rowspan="'.$v['rows'].'">'.$v['month'].'</td>';
            $res.='</tr>';
            if(count($v['items']) >=2){
                foreach ($v['items'] as $k1=>$v1){
                    if($k1>0){
                        $res.='<tr style="background: #ffffff;">';
                        $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v1['title'].'</td>';
                        $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v1['total'].'</td>';
                        $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v1['money'].'</td>';
                        $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v1['total_money'].'</td>';
                        $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v1['create_time'].'</td>';
                        $res.='</tr>';

                    }
                }
            }
        }
        echo $res;
    }


    public function bxrcltj(){
        $cur = date('Y-m-d');
        $start = input('start', date('Y-m-d', strtotime('' . $cur . ' -1 week')));
        $end = input('end', date('Y-m-d'));
        $start1 = $start . ' 00:00:00';
        $end1 = $end . ' 23:59:59';
        $data = $this->bxrcltjData($start1,$end1);

        $this->assign('data', $data);
        $this->assign('start', $start);
        $this->assign('end', $end);
        return $this->fetch();
    }

    public function bxrcltjData($start,$end){
        $orgId = $this->orgId;

        $ret = Db::name('orders')
            ->alias('a')
            ->where('org_id',$orgId)
            ->where('del',0)
            ->where('finish_time','>=',$start)
            ->where('finish_time','<',$end)
            ->group('user_id')
            ->select();
        $map = [];
        if(!empty($start)){
            $map[] = ['t.done_time','>=',$start];
        }
        if(!empty($end)){
            $map[] = ['t.done_time','<',$end];
        }

        $map[] = ['t.del','=',0];
        $map[] = ['t.org_id','=',$orgId];

        foreach ($ret as $k=>$v){
            $map1 = [];
            $todo = Db::name('todo_mate_item')
                ->alias('tmi')
                ->join('todo_mate tm','tm.id = tmi.todo_mate_id')
                ->join('todo t','tm.todo_id = t.id')
                ->join('orders o','o.id = t.order_id')
                ->where('o.user_id',$v['user_id'])
                ->where($map)
                ->sum('tmi.total_money');
            $num =$todo?round($todo,2):0;
            if($num<=0){
                unset($ret[$k]);
            }else{
                $ret[$k]['month'] = $num;
                if(!empty($start)){
                    $map1[] = ['t.done_time','>=',$start];
                }
                if(!empty($end)){
                    $map1[] = ['t.done_time','<',$end];
                }

                $map1[] = ['t.del','=',0];
                $map1[] = ['t.org_id','=',$orgId];
                $map1[] = ['o.user_id','=',$v['user_id']];
                $lists =Db::name('todo_mate_item')
                    ->alias('tmi')
                    ->join('todo_mate tm','tm.id = tmi.todo_mate_id')
                    ->join('todo t','tm.todo_id = t.id')
                    ->join('orders o','o.id = t.order_id')
                    ->join('user u','u.id = t.to_user_id')
                    ->join('mate_goods ma','ma.id = tmi.items_id')
                    ->field('tmi.*,u.real_name,ma.title')
                    ->where($map1)
                    ->select();
                if(empty($lists)){
                    unset($ret[$k]);
                    continue;
                }
                $ret[$k]['rows'] = count($lists);
                $ret[$k]['items'] = $lists;

                $ret[$k]['title'] =Db::name('user')
                    ->where('id',$v['user_id'])
                    ->value('real_name');
            }
        }
        return $ret;

    }

    //耗材统计导出
    public function bxrcltjExport()
    {
        set_time_limit(0);
        ini_set("memory_limit", "1024M");
        $cur = date('Y-m-d');
        $start = input('start', date('Y-m-d', strtotime('' . $cur . ' -1 week')));
        $end = input('end', date('Y-m-d'));
        $start1 = $start . ' 00:00:00';
        $end1 = $end . ' 23:59:59';
        $data = $this->bxrcltjData($start1,$end1);
        $title = '报修人耗材统计报表';
        header("Content-type: application/vnd.ms-excel");
        header("Content-Type: application/force-download");
        header("Content-Disposition: attachment; filename=".$title.".xls");
        header('Expires:0');
        header('Pragma:public');
        $res = '';
        $res.='<table style="border-top: 1px solid #ddd;border-left: 1px solid #ddd;border-spacing: 0;">';
        $res.='<tr style="background: #ffffff;">';

        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">报修人</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">材料名称</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">数量</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">单价</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">使用人</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">使用时间</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">总价</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">小计</th>';
        $res.='</tr>';

        foreach ($data as $k=>$v){
            $res.='<tr style="background: #ffffff;">';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd" rowspan="'.$v['rows'].'">'.$v['title'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v['items'][0]['title'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v['items'][0]['total'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v['items'][0]['money'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v['items'][0]['real_name'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v['items'][0]['create_time'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v['items'][0]['total_money'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd" rowspan="'.$v['rows'].'">'.$v['month'].'</td>';
            $res.='</tr>';
            if(count($v['items']) >=2){
                foreach ($v['items'] as $k1=>$v1){
                    if($k1>0){
                        $res.='<tr style="background: #ffffff;">';
                        $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v1['title'].'</td>';
                        $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v1['total'].'</td>';
                        $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v1['money'].'</td>';
                        $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v1['real_name'].'</td>';
                        $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v1['create_time'].'</td>';
                        $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v1['total_money'].'</td>';
                        $res.='</tr>';

                    }
                }
            }
        }
        echo $res;
    }



    public function wlflcltj(){
        $cur = date('Y-m-d');
        $start = input('start', date('Y-m-d', strtotime('' . $cur . ' -1 week')));
        $end = input('end', date('Y-m-d'));
        $start1 = $start . ' 00:00:00';
        $end1 = $end . ' 23:59:59';
        $data = $this->wlflcltjData($start1,$end1);

        $this->assign('data', $data);
        $this->assign('start', $start);
        $this->assign('end', $end);
        return $this->fetch();
    }

    public function wlflcltjData($start,$end){
        $orgId = $this->orgId;

        $ret = Db::name('mate_cate')
            ->where('org_id',$orgId)
            ->where('del',0)
            ->where('enable',1)
            ->select();
        $map = [];
        if(!empty($start)){
            $map[] = ['t.done_time','>=',$start];
        }
        if(!empty($end)){
            $map[] = ['t.done_time','<',$end];
        }

        $map[] = ['t.del','=',0];
        $map[] = ['t.org_id','=',$orgId];

        foreach ($ret as $k=>$v){
            $map1 = [];
            $todo = Db::name('todo_mate_item')
                ->alias('tmi')
                ->join('todo_mate tm','tm.id = tmi.todo_mate_id')
                ->join('mate_goods mg','tmi.items_id=mg.id')
                ->join('mate_cate mc','mg.cate_id = mc.id')
                ->join('todo t','tm.todo_id = t.id')
                ->join('orders o','o.id = t.order_id')
                ->where('mc.id',$v['id'])
                ->where($map)
                ->sum('tmi.total_money');
            $num =$todo?round($todo,2):0;
            if($num<=0){
                unset($ret[$k]);
            }else{
                $ret[$k]['month'] = $num;
                if(!empty($start)){
                    $map1[] = ['t.done_time','>=',$start];
                }
                if(!empty($end)){
                    $map1[] = ['t.done_time','<',$end];
                }

                $map1[] = ['t.del','=',0];
                $map1[] = ['t.org_id','=',$orgId];
                $map1[] = ['mc.id','=',$v['id']];
                $lists =Db::name('todo_mate_item')
                    ->alias('tmi')
                    ->join('todo_mate tm','tm.id = tmi.todo_mate_id')
                    ->join('mate_goods mg','tmi.items_id=mg.id')
                    ->join('mate_cate mc','mg.cate_id = mc.id')
                    ->join('todo t','tm.todo_id = t.id')
                    ->join('orders o','o.id = t.order_id')
                    ->join('user u','u.id = t.to_user_id')
                    ->join('mate_goods ma','ma.id = tmi.items_id')
                    ->field('tmi.*,u.real_name,ma.title')
                    ->where($map1)
                    ->select();
                if(empty($lists)){
                    unset($ret[$k]);
                    continue;
                }
                $ret[$k]['rows'] = count($lists);
                $ret[$k]['items'] = $lists;
            }
        }
        return $ret;

    }

    //耗材统计导出
    public function wlflcltjExport()
    {
        set_time_limit(0);
        ini_set("memory_limit", "1024M");
        $cur = date('Y-m-d');
        $start = input('start', date('Y-m-d', strtotime('' . $cur . ' -1 week')));
        $end = input('end', date('Y-m-d'));
        $start1 = $start . ' 00:00:00';
        $end1 = $end . ' 23:59:59';
        $data = $this->wlflcltjData($start1,$end1);
        $title = '物料分类统计报表';
        header("Content-type: application/vnd.ms-excel");
        header("Content-Type: application/force-download");
        header("Content-Disposition: attachment; filename=".$title.".xls");
        header('Expires:0');
        header('Pragma:public');
        $res = '';
        $res.='<table style="border-top: 1px solid #ddd;border-left: 1px solid #ddd;border-spacing: 0;">';
        $res.='<tr style="background: #ffffff;">';

        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">分类名称</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">材料名称</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">数量</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">单价</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">使用人</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">使用时间</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">总价</th>';
        $res.='<th style="text-align: center;background: #ffffff;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">小计</th>';
        $res.='</tr>';

        foreach ($data as $k=>$v){
            $res.='<tr style="background: #ffffff;">';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd" rowspan="'.$v['rows'].'">'.$v['title'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v['items'][0]['title'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v['items'][0]['total'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v['items'][0]['money'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v['items'][0]['real_name'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v['items'][0]['create_time'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v['items'][0]['total_money'].'</td>';
            $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd" rowspan="'.$v['rows'].'">'.$v['month'].'</td>';
            $res.='</tr>';
            if(count($v['items']) >=2){
                foreach ($v['items'] as $k1=>$v1){
                    if($k1>0){
                        $res.='<tr style="background: #ffffff;">';
                        $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v1['title'].'</td>';
                        $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v1['total'].'</td>';
                        $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v1['money'].'</td>';
                        $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v1['real_name'].'</td>';
                        $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v1['create_time'].'</td>';
                        $res.='<td style="text-align: center;border-bottom: 1px solid #ddd;border-right: 1px solid #ddd">'.$v1['total_money'].'</td>';
                        $res.='</tr>';

                    }
                }
            }
        }
        echo $res;
    }
}