|
|
@@ -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;
|