vali 6 rokov pred
rodič
commit
ae40ca94df
1 zmenil súbory, kde vykonal 30 pridanie a 7 odobranie
  1. 30 7
      application/admin/controller/Report.php

+ 30 - 7
application/admin/controller/Report.php

@@ -103,10 +103,11 @@ class Report extends Base
 
     public function attendancereport()
     {
+
         $goups = (new GroupsModel)->where(['status' => 1])->select();
-        $serday1 = date("Y-m-d",strtotime('-8 day'));
-        $serday2 = date("Y-m-d",strtotime('-1 day'));
-        $defday = $serday1.','.$serday2;
+        $serday1 = date("Y-m-d", strtotime('-7 day'));
+        $serday2 = date("Y-m-d", strtotime('-1 day'));
+        $defday = $serday1 . ',' . $serday2;
 
         if (request()->isAjax()) {
 
@@ -120,7 +121,7 @@ class Report extends Base
             }
             list($zone, $sgroup) = explode('|', $param);
             if (empty($zone)) {
-                $zoneArray1 = [$serday1,$serday2];
+                $zoneArray1 = [$serday1, $serday2];
             } else {
                 $zonesarr = explode(',', $zone);
                 $dd = $this->Date_segmentation($zonesarr['0'], $zonesarr['1']);
@@ -150,10 +151,12 @@ class Report extends Base
         return $this->fetch();
     }
 
-    function reportDataFormat($onoffdata, $timesdata, $uobjarr, $dataArray, $limit, $offset)
+    function reportDataFormat($onoffdata, $timesdata, $uobjarr, $dataArray, $limit, $offset, $returnAll = 0)
     {
         $allData = [];
         $all_last = [];
+        $stnulldata = ['0' => 0, '1' => 0, '2' => 0, '3' => 0, 'all' => 0, 's1p' => 0, 's2p' => 0, 's3p' => 0];
+
         foreach ($dataArray as $day) {
             foreach ($uobjarr as $uid => $user) {
                 $kfuid = 'KF' . $uid;
@@ -163,19 +166,39 @@ class Report extends Base
                     $allData[$day][$kfuid] = ['of0' => '', 'of1' => ''];
                 }
 
+                $uinfo_now = ['uname' => $uobjarr[$uid]->user_name, 'account' => $uobjarr[$uid]->user_account, 'day' => $day, 'uid' => $uid];
                 if (isset($timesdata[$day][$kfuid])) {
-                    $all_last[] = array_merge($timesdata[$day][$kfuid], $allData[$day][$kfuid], ['uname' => $uobjarr[$uid]->user_name, 'account' => $uobjarr[$uid]->user_account, 'day' => $day]);
+                    $all_last[] = array_merge($timesdata[$day][$kfuid], $allData[$day][$kfuid], $uinfo_now);
                 } else {
-                    $all_last[] = array_merge(['0' => 0, '1' => 0, '2' => 0, '3' => 0, 'all' => 0, 's1p' => 0, 'sp2' => 0, 'sp3' => 0], $allData[$day][$kfuid], ['uname' => $uobjarr[$uid]->user_name, 'account' => $uobjarr[$uid]->user_account, 'day' => $day]);
+                    $all_last[] = array_merge($stnulldata, $allData[$day][$kfuid], $uinfo_now);
                 }
             }
         }
 
+        usort($all_last, function ($a, $b) {
+            return $a == $b ? 0 : ($a > $b ? 1 : -1);
+        });
+
+        foreach ($all_last as $key => $val) {
+            $all_last[$key]['1'] = secendToHourMinit($all_last[$key]['1']);
+            $all_last[$key]['2'] = secendToHourMinit($all_last[$key]['2']);
+            $all_last[$key]['3'] = secendToHourMinit($all_last[$key]['3']);
+            $all_last[$key]['s1p'] = perDisplay($all_last[$key]['s1p']);
+            $all_last[$key]['s2p'] = perDisplay($all_last[$key]['s2p']);
+            $all_last[$key]['s3p'] = perDisplay($all_last[$key]['s3p']);
+        }
+
+        //导出数据
+        if ($returnAll) {
+            return $all_last;
+        }
+
         $len = count($all_last);
         $return = ['rows' => [], 'total' => $len];
         if ($offset >= $len) {
             return $return;
         }
+
         $begin = $offset;
         $end = ($offset + $limit);
         $end = ($end > $len) ? $len - 1 : $end;