| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776 | <?php/** * 首页服务类 * @copyright 引擎力 * @author lc * @since 2021-06-23 */namespace App\Http\Services;use App\Http\Models\ProjectFlowMemo;use App\Http\Models\ProjectFlowMemoRelation;use App\Http\Models\User;class FlowService{    public function getFlowListByUserId($type, $siteId)    {        $user = auth()->user();        $projectFlowMemo = ProjectFlowMemo::query();        $projectFlowMemo1 = ProjectFlowMemo::query();        if ($type == 1) {            $userList = ProjectFlowMemoRelation::query()->where('user_id', $user->id)->pluck('memo_id');            $projectFlowMemo->whereIn('id', $userList);            $projectFlowMemo1->whereIn('id', $userList);        }        $flowList = $projectFlowMemo            ->where('site_id', $siteId)            ->with(['projectFlowMemoRelation'])            ->orderBy('id', 'asc')->get();        //各阶段角色负责人        $this->getRoleUser($flowList, User::query()->pluck('nickname', 'id'));        //总        $count = ProjectFlowMemo::query()->where('site_id', $siteId)->count() ?? 0;        //未完成的        $toBeCompletedCount = ProjectFlowMemo::query()->where('site_id', $siteId)->where('status', 0)->count() ?? 0;        //最后的上线时间        if (!empty($flowList->toArray())) {            $nodeDate = $flowList[count($flowList) - 1]['node_date'];            //延期的时间            if (date('Y-m-d') > $nodeDate) {                $diff = strtotime(date('Y-m-d')) - strtotime($nodeDate);                $newNodeDate = date('Y-m-d', (strtotime($nodeDate) + $diff));            }        }        //按阶段分类        $title = $projectFlowMemo1                ->where('site_id', $siteId)                ->groupBy('rank', 'level')                ->orderBy('level', 'asc')                ->pluck('rank', 'level')->toArray() ?? [];        $flowList = $flowList->groupBy('level')->toArray();        //统计阶段状态        $ids = $this->addUp($flowList);        //标题、阶段、是否完成        foreach ($title as $key => $value) {            $title[$key] = $value . ':' . $key . ':' . $ids[$key] ?? '';        }        //合并两个数组        $list = array_combine($title, $flowList);        //每个小阶段的起始和结束时间        [$taskLastDateStart, $taskLastDateEnd] = $this->getStageDate($list);        //这周一周日、下周一下周末        [$monday, $sunday, $nextMonday, $nextSunday] = $this->getThisMonDayAndNextMonday();        $thisWeekTaskList = $this->getWeekTaskList($siteId, $monday, $sunday, 'this');        $nextWeekTaskList = $this->getWeekTaskList($siteId, $nextMonday, $nextSunday, 'next');        return [$list, $count, $toBeCompletedCount, $nodeDate ?? '', $user, $taskLastDateStart, $taskLastDateEnd, $newNodeDate ?? '', $thisWeekTaskList, $nextWeekTaskList];    }    public function getWeekTaskList($siteId, $monday, $sunday, $type = 'this')    {        $task = ProjectFlowMemo::query()->with(['projectFlowMemoRelation'])            ->select('id', 'title', 'rank', 'memo', 'node_date','overdue_memo','planning_week','planning_next_week')            ->where('status', 0)            ->where('site_id', $siteId);        if ($type == 'this') {            $taskList = $task->where('node_date', '<', $sunday)->get();        } else {            $taskList = $task->whereBetween('node_date', [$monday, $sunday])->get();        }        foreach ($taskList as $value) {            $user = [];            foreach ($value->projectFlowMemoRelation as $item) {                $user[] = $item->user_id;            }            $value->user = $user;        }        foreach ($taskList as $item) {            $item->userNames = implode(',', User::query()->whereIn('id', $item->user)->pluck('nickname')->toArray());        }        return $taskList;    }    public function addUp($flowList)    {        //统计完成和没完成的阶段        $ids = [];        foreach ($flowList as $key => $value) {            $count1 = count($value);            $num = 0;            foreach ($value as $kk => $vv) {                if (!empty($vv['status'])) {                    $num++;                }            }            if ($num < $count1) {                $ids[$key] = '进行中';            }            if ($num == $count1) {                $ids[$key] = '完成';            }            if ($num == 0) {                $ids[$key] = '未完成';            }        }        return $ids;    }    public function getRoleUser(&$flowList, $userList)    {        //各阶段角色负责人        foreach ($flowList as $item) {            $roles = array_flip(explode(',', $item->roles));            foreach ($roles as $key => $role) {                $roles[$key] = [];                foreach ($item->projectFlowMemoRelation as $value) {                    if ($key == $value->roles_id && $item->id == $value->memo_id) {                        $value->nickname = $userList[$value->user_id] ?? '';                        $roles[$key] = $value;                    }                }            }            $item->roles = $roles;        }    }    public function getStageDate($list)    {        $taskLastDateStart = [];        $taskLastDateEnd = [];        //每个小阶段的起始和结束时间        foreach ($list as $key => $value) {            $lastDate = [];            foreach ($value as $kk => $vv) {                $lastDate[] = strtotime($vv['node_date']);            }            if (!empty($lastDate)) {                $string = explode(':', $key);                $taskLastDateStart[$string[1]] = date('Y-m-d', min($lastDate));                $taskLastDateEnd[$string[1]] = date('Y-m-d', max($lastDate));            }        }        return [$taskLastDateStart, $taskLastDateEnd];    }    public function getThisMonDayAndNextMonday()    {        //当周一周日、下周一、周日        $week = date("w");        $monday = date("Y-m-d", strtotime("- " . ($week - 1) . " day "));        $sunday = date("Y-m-d", strtotime(7 - $week . " day "));        $nextMonday = date("Y-m-d", strtotime("+1 week", strtotime("-" . ($week - 1) . "day")));        $nextSunday = date("Y-m-d", strtotime("+1 week", strtotime(7 - $week . "day")));        return [$monday, $sunday, $nextMonday, $nextSunday];    }    /**     * 汇总项目流程里面的各阶段逾期时间     * @param $siteList     * @return mixed     */    public function getFlowListBySiteId($siteList)    {        foreach ($siteList as $key => $item) {            $siteList[$key]['cn_title'] = $item['cn_title'];//$this->substrFormat($item['cn_title'], 7);            $siteList[$key]['rank'] = $item['process_progress']['rank'] ?? 0;            $siteList[$key]['memo'] = $item['process_progress']['memo'] ?? '';            if (empty($item['project_flow_memo'])) {                $siteList[$key]['lv1'] = 0;                $siteList[$key]['lv2'] = 0;                $siteList[$key]['lv3'] = 0;                $siteList[$key]['lv4'] = 0;                $siteList[$key]['lv5'] = 0;                $siteList[$key]['lv6'] = 0;                $siteList[$key]['lv7'] = 0;                $siteList[$key]['lv8'] = 0;                $siteList[$key]['lv9'] = 0;                $siteList[$key]['lv10'] = 0;                $siteList[$key]['lv11'] = 0;                $siteList[$key]['lv12'] = 0;                $siteList[$key]['lv13'] = 0;                $siteList[$key]['lv14'] = 0;            } else {                $siteList[$key]['lv1'] = 1;                $siteList[$key]['lv2'] = 1;                $siteList[$key]['lv3'] = 1;                $siteList[$key]['lv4'] = 1;                $siteList[$key]['lv5'] = 1;                $siteList[$key]['lv6'] = 1;                $siteList[$key]['lv7'] = 1;                $siteList[$key]['lv8'] = 1;                $siteList[$key]['lv9'] = 1;                $siteList[$key]['lv10'] = 1;                $siteList[$key]['lv11'] = 1;                $siteList[$key]['lv12'] = 1;                $siteList[$key]['lv13'] = 1;                $siteList[$key]['lv14'] = 1;                $lv1count = 0;                $lv1complete = 0;                $lv1OverdueTime = [];                $lv1CompleteDate = [];                $lv1CompleteOverdueTime = [];                $lv1CompleteOverdueTime2 = [];                $lv2count = 0;                $lv2complete = 0;                $lv2OverdueTime = [];                $lv2CompleteDate = [];                $lv2CompleteOverdueTime = [];                $lv2CompleteOverdueTime2 = [];                $lv3count = 0;                $lv3complete = 0;                $lv3OverdueTime = [];                $lv3CompleteDate = [];                $lv3CompleteOverdueTime = [];                $lv3CompleteOverdueTime2 = [];                $lv4count = 0;                $lv4complete = 0;                $lv4OverdueTime = [];                $lv4CompleteDate = [];                $lv4CompleteOverdueTime = [];                $lv4CompleteOverdueTime2 = [];                $lv5count = 0;                $lv5complete = 0;                $lv5OverdueTime = [];                $lv5CompleteDate = [];                $lv5CompleteOverdueTime = [];                $lv5CompleteOverdueTime2 = [];                $lv6count = 0;                $lv6complete = 0;                $lv6OverdueTime = [];                $lv6CompleteDate = [];                $lv6CompleteOverdueTime = [];                $lv6CompleteOverdueTime2 = [];                $lv7count = 0;                $lv7complete = 0;                $lv7OverdueTime = [];                $lv7CompleteDate = [];                $lv7CompleteOverdueTime = [];                $lv7CompleteOverdueTime2 = [];                $lv8count = 0;                $lv8complete = 0;                $lv8OverdueTime = [];                $lv8CompleteDate = [];                $lv8CompleteOverdueTime = [];                $lv8CompleteOverdueTime2 = [];                $lv9count = 0;                $lv9complete = 0;                $lv9OverdueTime = [];                $lv9CompleteDate = [];                $lv9CompleteOverdueTime = [];                $lv9CompleteOverdueTime2 = [];                $lv10count = 0;                $lv10complete = 0;                $lv10OverdueTime = [];                $lv10CompleteDate = [];                $lv10CompleteOverdueTime = [];                $lv10CompleteOverdueTime2 = [];                $lv11count = 0;                $lv11complete = 0;                $lv11OverdueTime = [];                $lv11CompleteDate = [];                $lv11CompleteOverdueTime = [];                $lv11CompleteOverdueTime2 = [];                $lv12count = 0;                $lv12complete = 0;                $lv12OverdueTime = [];                $lv12CompleteDate = [];                $lv12CompleteOverdueTime = [];                $lv12CompleteOverdueTime2 = [];                $lv13count = 0;                $lv13complete = 0;                $lv13OverdueTime = [];                $lv13CompleteDate = [];                $lv13CompleteOverdueTime = [];                $lv13CompleteOverdueTime2 = [];                $lv14count = 0;                $lv14complete = 0;                $lv14OverdueTime = [];                $lv14CompleteDate = [];                $lv14CompleteOverdueTime = [];                $lv14CompleteOverdueTime2 = [];                foreach ($item['project_flow_memo'] as $value) {                    if ($value['level'] == 1) {                        if (!empty($value['status'])) {                            $lv1complete++;                            $lv1CompleteDate[] = $value['status'];                            $lv1CompleteOverdueTime[] = strtotime($value['node_date']);                            $lv1CompleteOverdueTime2[strtotime($value['node_date'])] = strtotime(substr($value['status'], 0, 10));                        } else {                            $lv1OverdueTime[] = strtotime($value['node_date']);                        }                        $lv1count++;                    }                    if ($value['level'] == 2) {                        if (!empty($value['status'])) {                            $lv2complete++;                            $lv2CompleteDate[] = $value['status'];                            $lv2CompleteOverdueTime[] = strtotime($value['node_date']);                            $lv2CompleteOverdueTime2[strtotime($value['node_date'])] = strtotime(substr($value['status'], 0, 10));                        } else {                            $lv2OverdueTime[] = strtotime($value['node_date']);                        }                        $lv2count++;                    }                    if ($value['level'] == 3) {                        if (!empty($value['status'])) {                            $lv3complete++;                            $lv3CompleteDate[] = $value['status'];                            $lv3CompleteOverdueTime[] = strtotime($value['node_date']);                            $lv3CompleteOverdueTime2[strtotime($value['node_date'])] = strtotime(substr($value['status'], 0, 10));                        } else {                            $lv3OverdueTime[] = strtotime($value['node_date']);                        }                        $lv3count++;                    }                    if ($value['level'] == 4) {                        if (!empty($value['status'])) {                            $lv4complete++;                            $lv4CompleteDate[] = $value['status'];                            $lv4CompleteOverdueTime[] = strtotime($value['node_date']);                            $lv4CompleteOverdueTime2[strtotime($value['node_date'])] = strtotime(substr($value['status'], 0, 10));                        } else {                            $lv4OverdueTime[] = strtotime($value['node_date']);                        }                        $lv4count++;                    }                    if ($value['level'] == 5) {                        if (!empty($value['status'])) {                            $lv5complete++;                            $lv5CompleteDate[] = $value['status'];                            $lv5CompleteOverdueTime[] = strtotime($value['node_date']);                            $lv5CompleteOverdueTime2[strtotime($value['node_date'])] = strtotime(substr($value['status'], 0, 10));                        } else {                            $lv5OverdueTime[] = strtotime($value['node_date']);                        }                        $lv5count++;                    }                    if ($value['level'] == 6) {                        if (!empty($value['status'])) {                            $lv6complete++;                            $lv6CompleteDate[] = $value['status'];                            $lv6CompleteOverdueTime[] = strtotime($value['node_date']);                            $lv6CompleteOverdueTime2[strtotime($value['node_date'])] = strtotime(substr($value['status'], 0, 10));                        } else {                            $lv6OverdueTime[] = strtotime($value['node_date']);                        }                        $lv6count++;                    }                    if ($value['level'] == 7) {                        if (!empty($value['status'])) {                            $lv7complete++;                            $lv7CompleteDate[] = $value['status'];                            $lv7CompleteOverdueTime[] = strtotime($value['node_date']);                            $lv7CompleteOverdueTime2[strtotime($value['node_date'])] = strtotime(substr($value['status'], 0, 10));                        } else {                            $lv7OverdueTime[] = strtotime($value['node_date']);                        }                        $lv7count++;                    }                    if ($value['level'] == 8) {                        if (!empty($value['status'])) {                            $lv8complete++;                            $lv8CompleteDate[] = $value['status'];                            $lv8CompleteOverdueTime[] = strtotime($value['node_date']);                            $lv8CompleteOverdueTime2[strtotime($value['node_date'])] = strtotime(substr($value['status'], 0, 10));                        } else {                            $lv8OverdueTime[] = strtotime($value['node_date']);                        }                        $lv8count++;                    }                    if ($value['level'] == 9) {                        if (!empty($value['status'])) {                            $lv9complete++;                            $lv9CompleteDate[] = $value['status'];                            $lv9CompleteOverdueTime[] = strtotime($value['node_date']);                            $lv9CompleteOverdueTime2[strtotime($value['node_date'])] = strtotime(substr($value['status'], 0, 10));                        } else {                            $lv9OverdueTime[] = strtotime($value['node_date']);                        }                        $lv9count++;                    }                    if ($value['level'] == 10) {                        if (!empty($value['status'])) {                            $lv10complete++;                            $lv10CompleteDate[] = $value['status'];                            $lv10CompleteOverdueTime[] = strtotime($value['node_date']);                            $lv10CompleteOverdueTime2[strtotime($value['node_date'])] = strtotime(substr($value['status'], 0, 10));                        } else {                            $lv10OverdueTime[] = strtotime($value['node_date']);                        }                        $lv10count++;                    }                    if ($value['level'] == 11) {                        if (!empty($value['status'])) {                            $lv11complete++;                            $lv11CompleteDate[] = $value['status'];                            $lv11CompleteOverdueTime[] = strtotime($value['node_date']);                            $lv11CompleteOverdueTime2[strtotime($value['node_date'])] = strtotime(substr($value['status'], 0, 10));                        } else {                            $lv11OverdueTime[] = strtotime($value['node_date']);                        }                        $lv11count++;                    }                    if ($value['level'] == 12) {                        if (!empty($value['status'])) {                            $lv12complete++;                            $lv12CompleteDate[] = $value['status'];                            $lv12CompleteOverdueTime[] = strtotime($value['node_date']);                            $lv12CompleteOverdueTime2[strtotime($value['node_date'])] = strtotime(substr($value['status'], 0, 10));                        } else {                            $lv12OverdueTime[] = strtotime($value['node_date']);                        }                        $lv12count++;                    }                    if ($value['level'] == 13) {                        if (!empty($value['status'])) {                            $lv13complete++;                            $lv13CompleteDate[] = $value['status'];                            $lv13CompleteOverdueTime[] = strtotime($value['node_date']);                            $lv13CompleteOverdueTime2[strtotime($value['node_date'])] = strtotime(substr($value['status'], 0, 10));                        } else {                            $lv13OverdueTime[] = strtotime($value['node_date']);                        }                        $lv13count++;                    }                    if ($value['level'] == 14) {                        if (!empty($value['status'])) {                            $lv14complete++;                            $lv14CompleteDate[] = $value['status'];                            $lv14CompleteOverdueTime[] = strtotime($value['node_date']);                            $lv14CompleteOverdueTime2[strtotime($value['node_date'])] = strtotime(substr($value['status'], 0, 10));                        } else {                            $lv14OverdueTime[] = strtotime($value['node_date']);                        }                        $lv14count++;                    }                    if (!empty($value['level']) && $value['level'] == 1 && empty($value['status'])) {                        $siteList[$key]['lv1'] = 0;                    }                    if (!empty($value['level']) && $value['level'] == 2 && empty($value['status'])) {                        $siteList[$key]['lv2'] = 0;                    }                    if (!empty($value['level']) && $value['level'] == 3 && empty($value['status'])) {                        $siteList[$key]['lv3'] = 0;                    }                    if (!empty($value['level']) && $value['level'] == 4 && empty($value['status'])) {                        $siteList[$key]['lv4'] = 0;                    }                    if (!empty($value['level']) && $value['level'] == 5 && empty($value['status'])) {                        $siteList[$key]['lv5'] = 0;                    }                    if (!empty($value['level']) && $value['level'] == 6 && empty($value['status'])) {                        $siteList[$key]['lv6'] = 0;                    }                    if (!empty($value['level']) && $value['level'] == 7 && empty($value['status'])) {                        $siteList[$key]['lv7'] = 0;                    }                    if (!empty($value['level']) && $value['level'] == 8 && empty($value['status'])) {                        $siteList[$key]['lv8'] = 0;                    }                    if (!empty($value['level']) && $value['level'] == 9 && empty($value['status'])) {                        $siteList[$key]['lv9'] = 0;                    }                    if (!empty($value['level']) && $value['level'] == 10 && empty($value['status'])) {                        $siteList[$key]['lv10'] = 0;                    }                    if (!empty($value['level']) && $value['level'] == 11 && empty($value['status'])) {                        $siteList[$key]['lv11'] = 0;                    }                    if (!empty($value['level']) && $value['level'] == 12 && empty($value['status'])) {                        $siteList[$key]['lv12'] = 0;                    }                    if (!empty($value['level']) && $value['level'] == 13 && empty($value['status'])) {                        $siteList[$key]['lv13'] = 0;                    }                    if (!empty($value['level']) && $value['level'] == 14 && empty($value['status'])) {                        $siteList[$key]['lv14'] = 0;                    }                }            }            $siteList[$key]['lv1count'] = $lv1count ?? 0;            $siteList[$key]['lv1complete'] = $lv1complete ?? 0;            if (!empty($lv1CompleteDate)) {                $siteList[$key]['lv1completeDate'] = substr(max($lv1CompleteDate), 0, 10);            }            if (!empty($lv1OverdueTime)) {                if (strtotime(date('Y-m-d 00:00:00')) > max($lv1OverdueTime)) {                    $siteList[$key]['lv1OverdueTime'] = (strtotime(date('Y-m-d 00:00:00')) - max($lv1OverdueTime)) / 3600 / 24;;                }            }            if (!empty($lv1CompleteOverdueTime) && !empty($lv1CompleteOverdueTime2)) {                //完成时间小于节点时间                if ($lv1CompleteOverdueTime2[max($lv1CompleteOverdueTime)] > max($lv1CompleteOverdueTime)) {                    $siteList[$key]['lv1CompleteOverdueTime'] = ($lv1CompleteOverdueTime2[max($lv1CompleteOverdueTime)] - max($lv1CompleteOverdueTime)) / 3600 / 24;                }            }            $siteList[$key]['lv2count'] = $lv2count ?? 0;            $siteList[$key]['lv2complete'] = $lv2complete ?? 0;            if (!empty($lv2CompleteDate)) {                $siteList[$key]['lv2completeDate'] = substr(max($lv2CompleteDate), 0, 10);            }            if (!empty($lv2OverdueTime)) {                if (strtotime(date('Y-m-d 00:00:00')) > max($lv2OverdueTime)) {                    $siteList[$key]['lv2OverdueTime'] = (strtotime(date('Y-m-d 00:00:00')) - max($lv2OverdueTime)) / 3600 / 24;;                }            }            if (!empty($lv2CompleteOverdueTime) && !empty($lv2CompleteOverdueTime2)) {                //完成时间小于节点时间                if ($lv2CompleteOverdueTime2[max($lv2CompleteOverdueTime)] > max($lv2CompleteOverdueTime)) {                    $siteList[$key]['lv2CompleteOverdueTime'] = ($lv2CompleteOverdueTime2[max($lv2CompleteOverdueTime)] - max($lv2CompleteOverdueTime)) / 3600 / 24;                }            }            $siteList[$key]['lv3count'] = $lv3count ?? 0;            $siteList[$key]['lv3complete'] = $lv3complete ?? 0;            if (!empty($lv3CompleteDate)) {                $siteList[$key]['lv3completeDate'] = substr(max($lv3CompleteDate), 0, 10);            }            if (!empty($lv3OverdueTime)) {                if (strtotime(date('Y-m-d 00:00:00')) > max($lv3OverdueTime)) {                    $siteList[$key]['lv3OverdueTime'] = (strtotime(date('Y-m-d 00:00:00')) - max($lv3OverdueTime)) / 3600 / 24;;                }            }            if (!empty($lv3CompleteOverdueTime) && !empty($lv3CompleteOverdueTime2)) {                //完成时间小于节点时间                if ($lv3CompleteOverdueTime2[max($lv3CompleteOverdueTime)] > max($lv3CompleteOverdueTime)) {                    $siteList[$key]['lv3CompleteOverdueTime'] = ($lv3CompleteOverdueTime2[max($lv3CompleteOverdueTime)] - max($lv3CompleteOverdueTime)) / 3600 / 24;                }            }            $siteList[$key]['lv4count'] = $lv4count ?? 0;            $siteList[$key]['lv4complete'] = $lv4complete ?? 0;            if (!empty($lv4CompleteDate)) {                $siteList[$key]['lv4completeDate'] = substr(max($lv4CompleteDate), 0, 10);            }            if (!empty($lv4OverdueTime)) {                if (strtotime(date('Y-m-d 00:00:00')) > max($lv4OverdueTime)) {                    $siteList[$key]['lv4OverdueTime'] = (strtotime(date('Y-m-d 00:00:00')) - max($lv4OverdueTime)) / 3600 / 24;;                }            }            if (!empty($lv4CompleteOverdueTime) && !empty($lv4CompleteOverdueTime2)) {                //完成时间小于节点时间                if ($lv4CompleteOverdueTime2[max($lv4CompleteOverdueTime)] > max($lv4CompleteOverdueTime)) {                    $siteList[$key]['lv4CompleteOverdueTime'] = ($lv4CompleteOverdueTime2[max($lv4CompleteOverdueTime)] - max($lv4CompleteOverdueTime)) / 3600 / 24;                }            }            $siteList[$key]['lv5count'] = $lv5count ?? 0;            $siteList[$key]['lv5complete'] = $lv5complete ?? 0;            if (!empty($lv5CompleteDate)) {                $siteList[$key]['lv5completeDate'] = substr(max($lv5CompleteDate), 0, 10);            }            if (!empty($lv5OverdueTime)) {                if (strtotime(date('Y-m-d 00:00:00')) > max($lv5OverdueTime)) {                    $siteList[$key]['lv5OverdueTime'] = (strtotime(date('Y-m-d 00:00:00')) - max($lv5OverdueTime)) / 3600 / 24;;                }            }            if (!empty($lv5CompleteOverdueTime) && !empty($lv5CompleteOverdueTime2)) {                //完成时间小于节点时间                if ($lv5CompleteOverdueTime2[max($lv5CompleteOverdueTime)] > max($lv5CompleteOverdueTime)) {                    $siteList[$key]['lv5CompleteOverdueTime'] = ($lv5CompleteOverdueTime2[max($lv5CompleteOverdueTime)] - max($lv5CompleteOverdueTime)) / 3600 / 24;                }            }            $siteList[$key]['lv6count'] = $lv6count ?? 0;            $siteList[$key]['lv6complete'] = $lv6complete ?? 0;            if (!empty($lv6CompleteDate)) {                $siteList[$key]['lv6completeDate'] = substr(max($lv6CompleteDate), 0, 10);            }            if (!empty($lv6OverdueTime)) {                if (strtotime(date('Y-m-d 00:00:00')) > max($lv6OverdueTime)) {                    $siteList[$key]['lv6OverdueTime'] = (strtotime(date('Y-m-d 00:00:00')) - max($lv6OverdueTime)) / 3600 / 24;;                }            }            if (!empty($lv6CompleteOverdueTime) && !empty($lv6CompleteOverdueTime2)) {                //完成时间小于节点时间                if ($lv6CompleteOverdueTime2[max($lv6CompleteOverdueTime)] > max($lv6CompleteOverdueTime)) {                    $siteList[$key]['lv6CompleteOverdueTime'] = ($lv6CompleteOverdueTime2[max($lv6CompleteOverdueTime)] - max($lv6CompleteOverdueTime)) / 3600 / 24;                }            }            $siteList[$key]['lv7count'] = $lv7count ?? 0;            $siteList[$key]['lv7complete'] = $lv7complete ?? 0;            if (!empty($lv7CompleteDate)) {                $siteList[$key]['lv7completeDate'] = substr(max($lv7CompleteDate), 0, 10);            }            if (!empty($lv7OverdueTime)) {                if (strtotime(date('Y-m-d 00:00:00')) > max($lv7OverdueTime)) {                    $siteList[$key]['lv7OverdueTime'] = (strtotime(date('Y-m-d 00:00:00')) - max($lv7OverdueTime)) / 3600 / 24;;                }            }            if (!empty($lv7CompleteOverdueTime) && !empty($lv7CompleteOverdueTime2)) {                //完成时间小于节点时间                if ($lv7CompleteOverdueTime2[max($lv7CompleteOverdueTime)] > max($lv7CompleteOverdueTime)) {                    $siteList[$key]['lv7CompleteOverdueTime'] = ($lv7CompleteOverdueTime2[max($lv7CompleteOverdueTime)] - max($lv7CompleteOverdueTime)) / 3600 / 24;                }            }            $siteList[$key]['lv8count'] = $lv8count ?? 0;            $siteList[$key]['lv8complete'] = $lv8complete ?? 0;            if (!empty($lv8CompleteDate)) {                $siteList[$key]['lv8completeDate'] = substr(max($lv8CompleteDate), 0, 10);            }            if (!empty($lv8OverdueTime)) {                if (strtotime(date('Y-m-d 00:00:00')) > max($lv8OverdueTime)) {                    $siteList[$key]['lv8OverdueTime'] = (strtotime(date('Y-m-d 00:00:00')) - max($lv8OverdueTime)) / 3600 / 24;;                }            }            if (!empty($lv8CompleteOverdueTime) && !empty($lv8CompleteOverdueTime2)) {                //完成时间小于节点时间                if ($lv8CompleteOverdueTime2[max($lv8CompleteOverdueTime)] > max($lv8CompleteOverdueTime)) {                    $siteList[$key]['lv8CompleteOverdueTime'] = ($lv8CompleteOverdueTime2[max($lv8CompleteOverdueTime)] - max($lv8CompleteOverdueTime)) / 3600 / 24;                }            }            $siteList[$key]['lv9count'] = $lv9count ?? 0;            $siteList[$key]['lv9complete'] = $lv9complete ?? 0;            if (!empty($lv9CompleteDate)) {                $siteList[$key]['lv9completeDate'] = substr(max($lv9CompleteDate), 0, 10);            }            if (!empty($lv9OverdueTime)) {                if (strtotime(date('Y-m-d 00:00:00')) > max($lv9OverdueTime)) {                    $siteList[$key]['lv9OverdueTime'] = (strtotime(date('Y-m-d 00:00:00')) - max($lv9OverdueTime)) / 3600 / 24;;                }            }            if (!empty($lv9CompleteOverdueTime) && !empty($lv9CompleteOverdueTime2)) {                //完成时间小于节点时间                if ($lv9CompleteOverdueTime2[max($lv9CompleteOverdueTime)] > max($lv9CompleteOverdueTime)) {                    $siteList[$key]['lv9CompleteOverdueTime'] = ($lv9CompleteOverdueTime2[max($lv9CompleteOverdueTime)] - max($lv9CompleteOverdueTime)) / 3600 / 24;                }            }            $siteList[$key]['lv10count'] = $lv10count ?? 0;            $siteList[$key]['lv10complete'] = $lv10complete ?? 0;            if (!empty($lv10CompleteDate)) {                $siteList[$key]['lv10completeDate'] = substr(max($lv10CompleteDate), 0, 10);            }            if (!empty($lv10OverdueTime)) {                if (strtotime(date('Y-m-d 00:00:00')) > max($lv10OverdueTime)) {                    $siteList[$key]['lv10OverdueTime'] = (strtotime(date('Y-m-d 00:00:00')) - max($lv10OverdueTime)) / 3600 / 24;;                }            }            if (!empty($lv10CompleteOverdueTime) && !empty($lv10CompleteOverdueTime2)) {                //完成时间小于节点时间                if ($lv10CompleteOverdueTime2[max($lv10CompleteOverdueTime)] > max($lv10CompleteOverdueTime)) {                    $siteList[$key]['lv10CompleteOverdueTime'] = ($lv10CompleteOverdueTime2[max($lv10CompleteOverdueTime)] - max($lv10CompleteOverdueTime)) / 3600 / 24;                }            }            $siteList[$key]['lv11count'] = $lv11count ?? 0;            $siteList[$key]['lv11complete'] = $lv11complete ?? 0;            if (!empty($lv11CompleteDate)) {                $siteList[$key]['lv11completeDate'] = substr(max($lv11CompleteDate), 0, 10);            }            if (!empty($lv11OverdueTime)) {                if (strtotime(date('Y-m-d 00:00:00')) > max($lv11OverdueTime)) {                    $siteList[$key]['lv11OverdueTime'] = (strtotime(date('Y-m-d 00:00:00')) - max($lv11OverdueTime)) / 3600 / 24;;                }            }            if (!empty($lv11CompleteOverdueTime) && !empty($lv11CompleteOverdueTime2)) {                //完成时间小于节点时间                if ($lv11CompleteOverdueTime2[max($lv11CompleteOverdueTime)] > max($lv11CompleteOverdueTime)) {                    $siteList[$key]['lv11CompleteOverdueTime'] = ($lv11CompleteOverdueTime2[max($lv11CompleteOverdueTime)] - max($lv11CompleteOverdueTime)) / 3600 / 24;                }            }            $siteList[$key]['lv12count'] = $lv12count ?? 0;            $siteList[$key]['lv12complete'] = $lv12complete ?? 0;            if (!empty($lv12CompleteDate)) {                $siteList[$key]['lv12completeDate'] = substr(max($lv12CompleteDate), 0, 10);            }            if (!empty($lv12OverdueTime)) {                if (strtotime(date('Y-m-d 00:00:00')) > max($lv12OverdueTime)) {                    $siteList[$key]['lv12OverdueTime'] = (strtotime(date('Y-m-d 00:00:00')) - max($lv12OverdueTime)) / 3600 / 24;;                }            }            if (!empty($lv12CompleteOverdueTime) && !empty($lv12CompleteOverdueTime2)) {                //完成时间小于节点时间                if ($lv12CompleteOverdueTime2[max($lv12CompleteOverdueTime)] > max($lv12CompleteOverdueTime)) {                    $siteList[$key]['lv12CompleteOverdueTime'] = ($lv12CompleteOverdueTime2[max($lv12CompleteOverdueTime)] - max($lv12CompleteOverdueTime)) / 3600 / 24;                }            }            $siteList[$key]['lv13count'] = $lv13count ?? 0;            $siteList[$key]['lv13complete'] = $lv13complete ?? 0;            if (!empty($lv13CompleteDate)) {                $siteList[$key]['lv13completeDate'] = substr(max($lv13CompleteDate), 0, 10);            }            if (!empty($lv13OverdueTime)) {                if (strtotime(date('Y-m-d 00:00:00')) > max($lv13OverdueTime)) {                    $siteList[$key]['lv13OverdueTime'] = (strtotime(date('Y-m-d 00:00:00')) - max($lv13OverdueTime)) / 3600 / 24;;                }            }            if (!empty($lv13CompleteOverdueTime) && !empty($lv13CompleteOverdueTime2)) {                //完成时间小于节点时间                if ($lv13CompleteOverdueTime2[max($lv13CompleteOverdueTime)] > max($lv13CompleteOverdueTime)) {                    $siteList[$key]['lv13CompleteOverdueTime'] = ($lv13CompleteOverdueTime2[max($lv13CompleteOverdueTime)] - max($lv13CompleteOverdueTime)) / 3600 / 24;                }            }            $siteList[$key]['lv14count'] = $lv14count ?? 0;            $siteList[$key]['lv14complete'] = $lv14complete ?? 0;            if (!empty($lv14CompleteDate)) {                $siteList[$key]['lv14completeDate'] = substr(max($lv14CompleteDate), 0, 10);            }            if (!empty($lv14OverdueTime)) {                if (strtotime(date('Y-m-d 00:00:00')) > max($lv14OverdueTime)) {                    $siteList[$key]['lv14OverdueTime'] = (strtotime(date('Y-m-d 00:00:00')) - max($lv14OverdueTime)) / 3600 / 24;;                }            }            if (!empty($lv14CompleteOverdueTime) && !empty($lv14CompleteOverdueTime2)) {                //完成时间小于节点时间                if ($lv14CompleteOverdueTime2[max($lv14CompleteOverdueTime)] > max($lv14CompleteOverdueTime)) {                    $siteList[$key]['lv14CompleteOverdueTime'] = ($lv14CompleteOverdueTime2[max($lv14CompleteOverdueTime)] - max($lv14CompleteOverdueTime)) / 3600 / 24;                }            }        }        return $siteList;    }}
 |