<?php
namespace app\adminVue\controller;

use app\BaseController;
use think\facade\Db;
use think\facade\Cache;
use think\facade\Session;
use think\Request;
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

class ComGet extends TokenCheck
{   
    // 分层审核问题列表
    public function getLayerIssueList(){
		$item = input('get.');
        $obj = Db::name('quality_layer_issue')->where('level',$item['level'])->where('status','>',0);
		if(isset($item['status'])){
			$obj = $obj->whereIn('status',$item['status']);
		}
		if(isset($item['view'])&&$item['view']==2){
			$obj = $obj->where('auditor|owner',session('admin')['id']);
		}
		if(isset($item['great'])&&$item['great']==1){
			$obj = $obj->where('great',1);
		}
		if(isset($item['startDate'])&&$item['startDate']!==''){
			$obj = $obj->where('audit_date','between',[strtotime($item['startDate']),strtotime($item['endDate'])]);
		}
		if(isset($item['auditDept'])&&$item['auditDept']>0){
			$obj = $obj->where('auditDpt',$item['auditDept']);
		}
		if(isset($item['dueDept'])&&$item['dueDept']>0){
			$obj = $obj->where('dpt',$item['dueDept']);
		}
		$data = $obj->order('audit_date desc,auditor')->pages($item['limit']);
		$record_info = Db::name('quality_layer_record')->whereIn('id',array_column($data['lists'],'record_id'))->cates('id');
		$check_info = Db::name('quality_layer_check_list')->whereIn('id',array_column($record_info,'check_id'))->cates('id');
		$check_list_info = Db::name('quality_layer_check_list')->where('mid',1)->column('content','id');
		$plan_info = Db::name('quality_layer_planning')->whereIn('id',array_column($record_info,'plan_id'))->cates('id');
		$aid_info = Db::name('admin_user')->column('truename','id');
		$tid_info = Db::name('team_list')->column('team','id');
		$img_list = Db::name('img_list')->where('mid',4)->whereIn('mark',array_column($data['lists'],'id'))->lists();
		$dpt_info = Db::name('admin_org')->where('mid',0)->column('title','id');
		$img = [];
		foreach ($img_list as $k => $v) {
			if(isset($img[$v['mark']][$v['status']]['num'])==false){
				$img[$v['mark']][$v['status']]['num'] = 0;
				$img[$v['mark']][$v['status']]['list'] = [];
			}
			array_push($img[$v['mark']][$v['status']]['list'],$v['img']);
		}
		// print_r($img);
		foreach ($data['lists'] as $k => $v) {
			$data['lists'][$k]['level'] = $plan_info[$record_info[$v['record_id']]['plan_id']]['level'];
			$data['lists'][$k]['type'] = $check_list_info[$plan_info[$record_info[$v['record_id']]['plan_id']]['area']];
			$data['lists'][$k]['location'] = $v['tid']>0?$tid_info[$v['tid']]:($v['area']==''||$v['area']==null?'':$v['area']);
			$data['lists'][$k]['audit_date'] = date('Y-m-d',$v['audit_date']);
			$data['lists'][$k]['auditor_dpt'] = $dpt_info[$v['auditDpt']];
			$data['lists'][$k]['check_title'] = $record_info[$v['record_id']]['check_id']>0?$check_info[$record_info[$v['record_id']]['check_id']]['title']:'其他';
			$data['lists'][$k]['check_content'] = $record_info[$v['record_id']]['check_id']>0?$check_info[$record_info[$v['record_id']]['check_id']]['content']:'其他现场发现问题';
			$data['lists'][$k]['issue'] = htmlspecialchars_decode($v['issue']);
			$data['lists'][$k]['root_case'] = htmlspecialchars_decode($v['root_case']);
			$data['lists'][$k]['action'] = htmlspecialchars_decode($v['action']);
			$data['lists'][$k]['due_date'] = $v['due_date']>0?date('Y-m-d',$v['due_date']):'';
			$data['lists'][$k]['dpt_name'] = $v['dpt']>0?$dpt_info[$v['dpt']]:'';
			$data['lists'][$k]['owner_name'] = $v['owner']>0?$aid_info[$v['owner']]:'';
			$data['lists'][$k]['auditor_name'] = $aid_info[$v['auditor']];
			$data['lists'][$k]['issue_img'] = isset($img[$v['id']][1]['list'])?$img[$v['id']][1]['list']:'';
			$data['lists'][$k]['feedback_img'] = isset($img[$v['id']][2]['list'])?$img[$v['id']][2]['list']:'';
		}
        exit($this->lay_table($data));
    }
	//分层审核问题导出
	public function layerIssueListExport(){
		$item = input('get.');
        $obj = Db::name('quality_layer_issue')->where('status','>',0)->whereBetween('audit_date',[strtotime(input('get.start')),strtotime(input('get.end'))]);
		if($item['level']<4){
			$obj = $obj->where('level',$item['level']);
		}
		$data = $obj->lists();
		$record_info = Db::name('quality_layer_record')->whereIn('id',array_column($data,'record_id'))->cates('id');
		$check_info = Db::name('quality_layer_check_list')->whereIn('id',array_column($record_info,'check_id'))->cates('id');
		$check_list_info = Db::name('quality_layer_check_list')->where('mid',1)->column('content','id');
		$plan_info = Db::name('quality_layer_planning')->whereIn('id',array_column($record_info,'plan_id'))->cates('id');
		$aid_info = Db::name('admin_user')->column('truename','id');
		$tid_info = Db::name('team_list')->column('team','id');
		$record_info = Db::name('quality_layer_record')->whereIn('id',array_column($data,'record_id'))->cates('id');
		$check_info = Db::name('quality_layer_check_list')->whereIn('id',array_column($record_info,'check_id'))->cates('id');
		$check_list_info = Db::name('quality_layer_check_list')->where('mid',1)->column('content','id');
		$plan_info = Db::name('quality_layer_planning')->whereIn('id',array_column($record_info,'plan_id'))->cates('id');
		$aid_info = Db::name('admin_user')->cates('id');
		$tid_info = Db::name('team_list')->column('team','id');
		$dpt_info = Db::name('admin_org')->where('mid',0)->cache('orgName',600)->column('title','id');
		$list = [];
		foreach ($data as $k => $v) {
			$res['序号'] = $v['id'];
			$res['level'] = 'Level'.$v['level'];
			$res['计划下发'] = $aid_info[$plan_info[$record_info[$v['record_id']]['plan_id']]['planner']]['truename'];
			$res['下发日期'] = date('Y-m-d',$plan_info[$record_info[$v['record_id']]['plan_id']]['update']);
			$res['审核期限'] = date('Y-m-d',$plan_info[$record_info[$v['record_id']]['plan_id']]['start']).'-'.date('Y-m-d',$plan_info[$record_info[$v['record_id']]['plan_id']]['end']);
			$res['审核日期'] = date('Y-m-d',$v['audit_date']);
			$res['审核部门'] = $dpt_info[$aid_info[$v['auditor']]['dpt']];
			$res['审核人'] = $aid_info[$v['auditor']]['truename'];
			$res['审核类型'] = $check_list_info[$plan_info[$record_info[$v['record_id']]['plan_id']]['area']];
			$res['审核区域'] = $v['tid']>0?$tid_info[$v['tid']]:($v['area']==''||$v['area']==null?'':$v['area']);
			$res['审核条款'] = $record_info[$v['record_id']]['check_id']>0?$check_info[$record_info[$v['record_id']]['check_id']]['title']:'其他';
			$res['条款内容'] = $record_info[$v['record_id']]['check_id']>0?$check_info[$record_info[$v['record_id']]['check_id']]['content']:'其他现场发现问题';
			$res['问题描述'] = htmlspecialchars_decode($v['issue']);
			$res['责任部门'] = $v['owner']>0?$dpt_info[$aid_info[$v['owner']]['dpt']]:'';
			$res['责任人'] = $v['owner']>0?$aid_info[$v['owner']]['truename']:'';
			$res['原因分析'] = htmlspecialchars_decode($v['root_case']);
			$res['整改措施'] = htmlspecialchars_decode($v['action']);
			$res['完成日期'] = $v['due_date']>0?date('Y-m-d',$v['due_date']):'';
			switch ($v['status']) {
				case '1':
					$res['状态'] = '待回复';
				break;
				case '2':
					$res['状态'] = '进行中';
				break;
				case '3':
					$res['状态'] = '已退回';
				break;
				case '4':
					$res['状态'] = '待确认';
				break;
				case '5':
					$res['状态'] = '已完成';
				break;
			}
			$res['重点跟踪'] = $v['great']==1?'Yes':'';
			array_push($list,$res);
		}
        exit(json_encode(array('code'=>0,'data'=>$list)));
    }
	//分层审核计划列表
	public function getLayerPlanningList(){
		$item = input('get.');
		$obj = Db::name('quality_layer_planning');
		if(isset($item['level'])){
			$obj = $obj->where('level',$item['level']);
		}
		if(isset($item['area'])&&$item['area']<>''){
			$obj = $obj->where('area',$item['area']);
		}
		if(isset($item['view'])&&$item['view']==2){
			$obj = $obj->where('planner|auditor',session('admin')['id']);
		}
		$data = $obj->order('id desc')->pages($item['limit']);
		$user_info = Db::name('admin_user')->cache('adminName',600)->column('truename','id');
		$area_info = Db::name('quality_layer_check_list')->where('mid',1)->column('content','id');
		foreach ($data['lists'] as $k => $v) {
			$data['lists'][$k]['area'] = $area_info[$v['area']];
			$data['lists'][$k]['planner_name'] = $user_info[$v['planner']];
			$data['lists'][$k]['auditor_name'] = $user_info[$v['auditor']];
			$data['lists'][$k]['audit_date'] = date('Y-m-d',$v['start']).' ~ '.date('Y-m-d',$v['end']);
			$data['lists'][$k]['detail'] = $v['content'];
			$data['lists'][$k]['num'] = count(json_decode($v['check_list']));
			$checked = explode('-',$v['record']);
			$data['lists'][$k]['check_ok'] = $checked[0];
			$data['lists'][$k]['check_nok'] = isset($checked[1])?$checked[1]:'';
			$data['lists'][$k]['check_unsuit'] = isset($checked[2])?$checked[2]:'';
			if($v['status']<2&&time()>$v['end']+86399){
				$data['lists'][$k]['status'] = 3;
			}
		}
		exit($this->lay_table($data));
	}
	//分层审核计划详情
	public function getLayerPlanningDetail(){
		$planning = Db::name('quality_layer_planning')->find(input('get.plan_id'));
		$list = json_decode($planning['check_list']);
		$data = Db::name('quality_layer_check_list')->whereIn('id',$list)->lists();
		$id_list1 = array_unique(array_column($data,'mark'));
		$id_list2 = Db::name('quality_layer_check_list')->whereIn('id',$id_list1)->column('mark');
		if($id_list2){
			$id_list3 = Db::name('quality_layer_check_list')->whereIn('id',$id_list2)->column('mark');
		}else{
			$id_list3 = [];
		}
		if($id_list3){
			$id_list4 = Db::name('quality_layer_check_list')->whereIn('id',$id_list3)->column('mark');
		}else{
			$id_list4 = [];
		}
		if($id_list4){
			$id_list5 = Db::name('quality_layer_check_list')->whereIn('id',$id_list4)->column('mark');
		}else{
			$id_list5 = [];
		}
		$info = Db::name('quality_layer_check_list')->whereIn('id',array_unique(array_merge($id_list1,$id_list2,$id_list3,$id_list4,$id_list5)))->cates('id');
		$status_info = Db::name('quality_layer_record')->where('plan_id',input('get.plan_id'))->where('status',1)->cates('check_id');
		foreach ($data as $k => $v) {
			if($v['mid']==3){
				$data[$k]['detail'] = $info[$v['mark']]['content'];
				$data[$k]['item'] = $info[$v['mark']]['content'];
				$data[$k]['type'] = $info[$info[$v['mark']]['mark']]['content'];
			}else if($v['mid']==4) {
				$data[$k]['detail'] = '';
				$data[$k]['item'] = $info[$v['mark']]['content'];
				$data[$k]['type'] = $info[$info[$info[$v['mark']]['mark']]['mark']]['content'].'-'.$info[$info[$v['mark']]['mark']]['content'];
			}else{
				$data[$k]['detail'] = $info[$v['mark']]['content'];
				$data[$k]['item'] = $info[$info[$v['mark']]['mark']]['content'];
				$data[$k]['type'] = $info[$info[$info[$info[$v['mark']]['mark']]['mark']]['mark']]['content'].'-'.$info[$info[$info[$v['mark']]['mark']]['mark']]['content'];
			}
			$data[$k]['status'] = isset($status_info[$v['id']])?$status_info[$v['id']]['record']:0;
			$data[$k]['record_id'] = isset($status_info[$v['id']])?$status_info[$v['id']]['id']:0;
			$data[$k]['desc'] = isset($status_info[$v['id']])?$status_info[$v['id']]['desc']:0;
		}
		exit(json_encode($data));
	}
	//现场问题清单
	public function getOnsiteIssueList(){
		$item = input('get.');
		$obj = Db::name('onsite_issue_list');
        if(isset($item['view'])&&$item['view']==1){
			$obj = $obj->where('aid|owner',session('admin')['id']);
        }
		if(isset($item['status'])&&$item['status']>0){
			if($item['status']==1){
				$obj = $obj->whereIn('status',[1,2]);
			}else{
				$obj = $obj->where('status',$item['status']);
			}
			
        }
        $data = $obj->order('issue_date desc')->pages($item['limit']);
        $aid_info = Db::name('admin_user')->cache('adminName',600)->column('truename','id');
        $tid_info = Db::name('team_list')->cates('id');
        $family_info = Db::name('team_base')->where('mid',3)->column('title','id');
        $dpt_info = Db::name('admin_org')->where('mid',0)->cache('orgName',600)->column('title','id');
        $poid_info = Db::name('team_plan_position')->whereIn('id',array_column($data['lists'],'poid'))->column('position','id');
        $project_info = Db::name('team_base')->where('mid',1)->column('title','id');
        $issue_type = Db::name('onsite_base')->where('mid',6)->column('content','id');
        $img_list = Db::name('img_list')->where('mid',5)->where('status','>',0)->whereIn('mark',array_column($data['lists'],'id'))->lists();
        $img = [];
        foreach ($img_list as $k => $v) {
            if(isset($img[$v['mark']])==false){
                $img[$v['mark']] = [];
            }
            array_push($img[$v['mark']],$v['img']);
        }
        foreach ($data['lists'] as $k => $v) {
            $data['lists'][$k]['project'] = $project_info[$tid_info[$v['tid']]['project']];
            $data['lists'][$k]['team'] = $tid_info[$v['tid']]['team'];
            $data['lists'][$k]['aid_name'] = $aid_info[$v['aid']];
            $data['lists'][$k]['family_name'] = $v['family']>0?$family_info[$v['family']]:'';
            $data['lists'][$k]['position'] = $v['poid']>0?$poid_info[$v['poid']]:'';
            $data['lists'][$k]['dpt_name'] = $dpt_info[$v['dpt']];
            $data['lists'][$k]['owner_name'] = $aid_info[$v['owner']];
            $data['lists'][$k]['due_date'] = $v['due_date']>0?date('Y-m-d',$v['due_date']):'';
            $data['lists'][$k]['issue_date'] = date('Y-m-d',$v['issue_date']);
            $data['lists'][$k]['issue_img'] = isset($img[$v['id']])?$img[$v['id']]:'';
            $data['lists'][$k]['issue_type'] = $v['issue_type']>0?$issue_type[$v['issue_type']]:'';
            $data['lists'][$k]['end_date'] = $v['end_date']>0?date('Y-m-d',$v['end_date']):'';
        }
		exit($this->lay_table($data));
	}
	//QC巡检新增及更新
    public function qcAuditUpdate(){
        $data = input('post.');
        if($data['id']>0){
            $data = array_intersect_key($data,['id'=>0,'type'=>0,'defect'=>0,'owner'=>0,'issue_desc'=>0]);
            Db::name('quality_onsite_audit_list')->save($data);
            $process['item_id'] = $data['id'];
            $process['mid'] = 1;
            $process['process'] = '更新';
            $process['time'] = time();
            Db::name('common_process_list')->insert($process);
            exit(json_encode(array('code'=>0,'msg'=>'修改成功！','id'=>$process['item_id'])));
        }else{
            unset($data['id']);
            $data['auditor'] = session('admin')['id'];
            $data['audit_date'] = strtotime($data['audit_date']);
            $process['item_id'] = Db::name('quality_onsite_audit_list')->insertGetId($data);
            $process['mid'] = 1;
            $process['process'] = '创建';
            $process['time'] = time();
            Db::name('common_process_list')->insert($process);
            exit(json_encode(array('code'=>0,'msg'=>'新增成功！','id'=>$process['item_id'])));
        }
    }
    //QC巡检反馈
    public function qcAuditFeedback(){
        $data = input('post.');
        $data['due_date'] = strtotime($data['due_date']);
        $data['status'] = 3;
        Db::name('quality_onsite_audit_list')->save($data);
        $process['item_id'] = $data['id'];
        $process['mid'] = 1;
        $process['process'] = '反馈';
        $process['time'] = time();
        Db::name('common_process_list')->insert($process);
        exit(json_encode(array('code'=>0,'msg'=>'反馈完成！')));
    }
    //QC巡检确认
    public function qcAuditFeedbackConfirm(){
        $process['item_id'] = input('post.id');
        $process['mid'] = 1;
        $process['time'] = time();
        if(input('?post.rej')){
            Db::name('quality_onsite_audit_list')->where('id',input('post.id'))->update(['status'=>2,'mark'=>input('post.rej')]);
            $process['process'] = '驳回';
            $process['status'] = 2;
            $process['mark'] = input('post.rej');
        }else{
            Db::name('quality_onsite_audit_list')->where('id',input('post.id'))->update(['status'=>4]);
            $process['process'] = '确认';
        }
        Db::name('common_process_list')->insert($process);
        exit(json_encode(array('code'=>0,'msg'=>input('?post.rej')?'驳回完成！':'确认完成！')));
    }
	//分层审核问题详情
	public function getLayerIssueDetail(){
		$data = Db::name('quality_layer_issue')->where('record_id',input('get.record_id'))->find();
		$data['owner_name'] = Db::name('admin_user')->where('id',$data['owner'])->value('truename');
		$data['team'] = $data['tid']>0?Db::name('team_list')->where('id',$data['tid'])->value('team'):''; 
		$data['issue_img'] = Db::name('img_list')->where(array('mid'=>4,'mark'=>$data['id'],'status'=>1))->column('img');
		foreach ($data['issue_img'] as $k => $v) {
			$data['issue_img'][$k] = $v;
		}
		exit(json_encode(array('code'=>0,'data'=>$data)));
	}
	//值班记录清单
	public function getDutyList(){
		// $aid_info = Db::name('admin_user')->cates('id');
		// $list = Db::name('common_manager_duty_list')->where('owner','>',0)->field('id,owner')->lists();
		// foreach ($list as $k => $v) {
		// 	Db::name('common_manager_duty_list')->where('id',$v['id'])->update(['dpt'=>$aid_info[$v['owner']]['dpt']]);
		// }
		$item = input('get.');
		$obj = Db::name('common_manager_duty_list');
        if(isset($item['view'])){
            if($item['view']==1){
                $obj = $obj->where('auditor|owner',session('admin')['id']);
            }
        }
        if(isset($item['status'])){
			$obj = $obj->where('status',$item['status']);
		}
		if(isset($item['great'])&&$item['great']>0){
			$obj = $obj->where('highlight',$item['great']);
		}
		if(isset($item['auditDate'])&&$item['auditDate']!==''){
			$date = explode("~",$item['auditDate']);
			if(count($date)==2){
				$obj = $obj->where('duty_date','between',[strtotime($date[0]),strtotime($date[1])]);
			}
		}
		if(isset($item['dueDept'])&&$item['dueDept']>0){
			$obj = $obj->where('dpt',$item['dueDept']);
		}
        $data = $obj->order('id desc')->pages($item['limit']);
        $aid_info = Db::name('admin_user')->cates('id');
        $project_info = Db::name('team_base')->whereIn('mid',[1,2])->column('title','id');
        $dpt_info = Db::name('admin_org')->where('mid',0)->cache('orgName',600)->column('title','id');
        $files = Db::name('img_list')->whereIn('mid',[30,31])->whereIn('mark',array_column($data['lists'],'id'))->where('status','>',0)->lists();
        foreach ($files as $k => $v) {
            if(isset($res[$v['mark']][$v['mid']])==false){
                $res[$v['mark']][$v['mid']] = [];
            }
            array_push($res[$v['mark']][$v['mid']],$v['img']);
        }
        foreach ($data['lists'] as $k => $v) {
            $data['lists'][$k]['area_name'] = $v['type']==1?($project_info[$v['project']].' - '.$project_info[$v['line']]):$v['area'];
            $data['lists'][$k]['owner_name'] = $v['owner']>0?$aid_info[$v['owner']]['truename']:'';
            $data['lists'][$k]['auditor_name'] = $v['auditor']>0?$aid_info[$v['auditor']]['truename']:'';
            $data['lists'][$k]['item_name'] = $v['item']==1?'值班问题':($v['item']==2?'部门Highlight':'其他问题');
            $data['lists'][$k]['dpt_name'] = $v['owner']>0?$dpt_info[$aid_info[$v['owner']]['dpt']]:'';
            $data['lists'][$k]['due_date'] = $v['due_date']>0?date('Y-m-d',$v['due_date']):'';
            $data['lists'][$k]['create_time'] = date('Y-m-d',$v['create_time']);
            $data['lists'][$k]['issue_img'] = isset($res[$v['id']][30])?$res[$v['id']][30]:'';
            $data['lists'][$k]['feedback_img'] = isset($res[$v['id']][31])?$res[$v['id']][31]:'';
            $data['lists'][$k]['feedback_file'] = isset($res[$v['id']][32])?$res[$v['id']][32]:'';
        }
		exit($this->lay_table($data));
	}
	//美国件清单列表
	public function getCooList(){
		$item = input('get.');
		$obj = Db::name('common_usa_coo');
		if(isset($item['status'])&&$item['status']>1){
			$obj = $obj->where('status',$item['status']);
		}
		if(isset($item['view'])&&$item['view']>0){
			$obj = $obj->where('replace',$item['view']);
		}
        if(isset($item['kw'])&&$item['kw']!==''){
			$obj = $obj->where('old_dpn|new_dpn|new_cpd','like','%'.$item['kw'].'%');
		}
		if(isset($item['enough'])){
			$obj = $obj->where('enough',$item['enough']);
		}
		if(isset($item['type'])&&$item['type']>0){
			$obj = $obj->where('type',$item['type']);
		}
		if(isset($item['oldVender'])&&$item['oldVender']!==''){
			$obj = $obj->where('old_supplier','like','%'.$item['oldVender'].'%');
		}
		if(isset($item['newVender'])&&$item['newVender']!==''){
			$obj = $obj->where('new_supplier','like','%'.$item['newVender'].'%');
		}
        $data = $obj->pages($item['limit']);
        $aid_info = Db::name('admin_user')->cates('id');
		$type_info = Db::name('design_base')->where('mid',11)->column('title','content');
        foreach ($data['lists'] as $k => $v) {
            $data['lists'][$k]['type'] = $type_info[$v['type']];
        }
		exit($this->lay_table($data));
	}
	//美国件类型接口
	public function getCooTypeList(){
		$type = Db::name('design_base')->where('mid',11)->field('title,content');
		exit(json_encode(array('code'=>0,'data'=>$type)));
	}
	//美国件步骤操作记录详情
	public function getCooStepDetail(){
		$data = Db::name('common_usa_coo_step')->where(input('get.'))->lists();
		$aid_info = Db::name('admin_user')->column('truename','id');
		foreach ($data as $k => $v) {
			$data[$k]['owner'] = $aid_info[$v['owner']];
			$data[$k]['update'] = date('Y-m-d H:i:s',$v['update']);
		}
		exit(json_encode(array('code'=>0,'data'=>$data)));
	}
	//无纸化签核列表
	public function getPaperList(){
		$item = input('get.');
		$obj = Db::name('onsite_paperless_list');
		if($item['view']==1){
			$obj = $obj->where('owner',session('admin')['id'])->where('status','>=',0);
			if($item['status'] == 2){
				$obj = $obj->where('status',3);
			}else{
				$obj = $obj->where('status','<>',3);
			}
		}else{
			if($item['apvStatus'] == 1){
				$obj = $obj->where('step',session('admin')['id'])->where('status','>',0);
			}else{
				$all_id = Db::name('onsite_paperless_step')->where(['type'=>1,'aid'=>session('admin')['id']])->column('p_id');
				$obj = $obj->whereIn('id',$all_id);
			}
		}
		if(isset($item['kw'])==true&&$item['kw']!==''){
			$obj = $obj->where('title','like','%'.$item['kw'].'%');
		}
		if(isset($item['owner'])==true&&$item['owner']>0){
			$obj = $obj->where('owner',$item['owner']);
		}
		$data = $obj->order('id desc')->pages($item['limit']);
		$aid_info = Db::name('admin_user')->cache('adminName',600)->column('truename','id');
		$files = Db::name('img_list')->whereIn('mid',[15,16])->whereIn('mark',array_column($data['lists'],'id'))->lists();
		foreach ($files as $k => $v) {
			if(isset($res[$v['mark']][$v['mid']])==false){
				$res[$v['mark']][$v['mid']] = [];
			}
			array_push($res[$v['mark']][$v['mid']],'http://localhost'.$v['img']);
		}
		$step = Db::name('onsite_paperless_step')->whereIn('p_id',array_column($data['lists'],'id'))->where('type',1)->lists();
		foreach ($step as $k => $v) {
			$orders[$v['p_id']][$v['order']] = $v['aid'];
		}
		foreach ($data['lists'] as $k => $v) {
			$data['lists'][$k]['owner_name'] = $aid_info[$v['owner']];
			$data['lists'][$k]['step_name'] = $v['step']>0?$aid_info[$v['step']]:'';
			$data['lists'][$k]['create_time'] = date('Y-m-d',$v['create_time']);
			$data['lists'][$k]['content'] = htmlspecialchars_decode($v['content']);
			$data['lists'][$k]['img'] = isset($res[$v['id']][15])?$res[$v['id']][15]:'';
			$data['lists'][$k]['files'] = isset($res[$v['id']][16])?$res[$v['id']][16]:'';
			$data['lists'][$k]['orders'] = '';
			if(isset($orders[$v['id']])){
				ksort($orders[$v['id']]);
				$order = array_values($orders[$v['id']]);
				foreach ($order as $ke => $val) {
					$order[$ke] = $aid_info[$val];
				}
				$data['lists'][$k]['orders'] = $order;
			}
		}
		exit($this->lay_table($data));
	}
	//无纸化签核审批列表
	public function getSignList(){
		$step = Db::name('onsite_paperless_step')->where('p_id',input('get.id'))->cates('order');
		$sign = Db::name('onsite_paperless_sign')->where('p_id',input('get.id'))->lists();
		$aid_info = Db::name('admin_user')->field('id,truename,dpt')->cates('id');
		$dpt_info = Db::name('admin_org')->where('mid',0)->column('title','id');
		$order = 0;
		$data = [];
		if($sign){
			foreach ($sign as $k => $v) {
				$data[$k] = array_intersect_key($v,['order'=>0,'sign'=>0,'mark'=>0,'aid'=>0]);
				$data[$k]['aid_name'] = $aid_info[$v['aid']]['truename'];
				$data[$k]['update'] = date('Y-m-d H:i:s',$v['update']);
				$data[$k]['dpt'] = $dpt_info[$aid_info[$v['aid']]['dpt']];
				$order = $v['order'];
			}
		}
		foreach ($step as $k => $v) {
			if($v['order'] > $order && $v['type'] === 1){
				$res['order'] = $v['order'];
				$res['aid_name'] = $aid_info[$v['aid']]['truename'];
				$res['aid'] = $v['aid'];
				$res['dpt'] = $dpt_info[$aid_info[$v['aid']]['dpt']];
				array_push($data,$res);
			}
		}
		exit(json_encode(array('code'=>0,'data'=>$data)));
	}
	
}
