AdminReformAController.php 5.9 KB
<?php
// +----------------------------------------------------------------------
// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013-2019 http://www.thinkcmf.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Powerless < wzxaini9@gmail.com>
// +----------------------------------------------------------------------

namespace app\portal\controller;

use api\home\controller\CommonController;
use cmf\controller\AdminBaseController;
use app\portal\model\InspectModel;
use think\Db;
use think\db\Query;

//甲方改造列表
class AdminReformAController extends AdminBaseController
{

    //改造列表
    public function index(){
        $param = $this->request->param();
        $res = Db::name('reform')
            ->alias('r')
            ->join('user u','r.uid = u.id','LEFT')
            ->join('project p','r.project_id = p.id','LEFT')
            ->where(['r.party'=>0])
            ->where(function (Query $query) {
                $param = $this->request->param();
                //查询登录乙方账号的所有项目
                $common = new AdminCommonController();
                $p_ids = $common->getProjectByCompanyB();
                if(!empty($p_ids)){
                    $query->whereIn('r.project_id',$p_ids);
                }

                if (!empty($param['name'])) {
                    $keyword = $param['name'];
                    $query->where('p.name', 'like', "%$keyword%");
                }
                $startTime = empty($param['start_time']) ? 0 : strtotime($param['start_time']);
                $endTime   = empty($param['end_time']) ? 0 : strtotime($param['end_time'])+86400;
                if (!empty($startTime)) {
                    $query->where('r.create_time', '>=', $startTime);
                }
                if (!empty($endTime)) {
                    $query->where('r.create_time', '<=', $endTime);
                }

            })
            ->field('r.id,p.name project_name,r.create_time,r.status,u.user_login,r.number,r.title')
            ->order('r.id desc')
            ->paginate(10,false,['query'=>request()->param()]);
        $data = $res->toArray();
        $data = $data['data'];
        $page = $res->render();

        $common = new AdminCommonController();
        $status = $common->getRepairStatus();

        //渲染
        $this->assign('start_time', isset($param['start_time']) ? $param['start_time'] : '');
        $this->assign('end_time', isset($param['end_time']) ? $param['end_time'] : '');
        $this->assign('list',$data);
        $this->assign('page',$page);
        $this->assign('state',$status);
        return $this->fetch();
    }

    //编辑页面
    public function edit(){
        $id = $this->request->param('id');
        $res = Db::name('reform')
            ->alias('r')
            ->join('user u','r.uid = u.id','LEFT')
            ->join('project p','r.project_id = p.id','LEFT')
            ->where(['r.id'=>$id])
            ->field('r.id,p.name project_name,r.create_time,u.user_login,r.number,r.h_uid,r.images,r.reform_images,r.confirm_uid,r.confirm_images,r.reform_description,r.description,r.finish_time')
            ->find();

        $common = new AdminCommonController();
        //获取乙方确认姓名
        $user = $common->getUserById(['id'=>$res['h_uid']]);
        if($user){
            $res['h_user_login'] = $user['user_login'];
        }else{
            $res['h_user_login'] = '';
        }

        //提交图片凭证
        if($res['images']){
            $res['images'] = $common->absolutionUrl($res['images']);
        }

        //甲乙方共同完善图片
        if($res['reform_images']){
            $res['reform_images'] = $common->absolutionUrl($res['reform_images']);
        }

        //获取甲方验收人
        $user = $common->getUserById(['id'=>$res['confirm_uid']]);
        if($user){
            $res['c_user_login'] = $user['user_login'];
        }else{
            $res['c_user_login'] = '';
        }

        //确认完成图片
        if($res['confirm_images']){
            $res['confirm_images'] = $common->absolutionUrl($res['confirm_images']);
        }
        $res['finish_time'] = empty($res['finish_time'])?'':date('Y-m-d',$res['finish_time']);
        $this->assign('post',$res);
        return $this->fetch();
    }

    //导出数据
    public function exportData(){
        $param = $this->request->param();

        $adminCommon = new AdminCommonController();
        $adminExcel = new AdminExcelDataController();

        $res_ins = $adminCommon->exportRepairList('reform',$param,0,'r.*,p.name project_name');

        $arr_url = [];
        $arr_time = [];
        foreach($res_ins as $key=>$value){
            $arr = $adminCommon->repairExportData($value,'reform',0);
            $arr['status'] = $adminCommon->getRepairStatus()[$value['status']];
            //获取文件路径
            $url = $adminExcel->repairExcelData($arr,'reform',0);
            //按日导出
            $arr_url[$key] = $url;
            $arr_time[$key] = $arr['time'].'报表.xls';
        }

        $xlsName = '甲方改造报表';
        //解决zip中文文件名
        $xlsName = $adminCommon->iconv_to_utf8($xlsName);
        $filename = ROOT_PATH . 'public/upload/export/' . $xlsName . '.zip';
        $adminCommon->zip($arr_url,$filename,$arr_time);
    }

    //检查是否有数据
    public function checkData(){
        $param = $this->request->param();
        $adminCommon = new AdminCommonController();
        $res_ins = $adminCommon->exportRepairList('reform',$param,0,'r.id');
        if($res_ins){
            $adminCommon->apiResponse(1);
        }else{
            $adminCommon->apiResponse(0,'暂无数据');
        }
    }
}