Просмотр исходного кода

自动获取开工时间优化

unknown 3 месяцев назад
Родитель
Сommit
bf940e2ae3
1 измененных файлов с 38 добавлено и 17 удалено
  1. 38 17
      application/api/controller/Facility.php

+ 38 - 17
application/api/controller/Facility.php

@@ -1820,24 +1820,45 @@ class Facility extends Api
         $data['累计产量'] = $params['production_all'];
         $data['班组编号'] = $params['sczl_bzdh'];
         $data['班组ID'] = $params['team_id'];
-        // 获取当前时间
+//        // 获取当前时间
+//        $current_time = time();
+//        // 设置时间范围
+//        $start_time1 = strtotime(date('Y-m-d') . ' 08:30:00');
+//        $end_time1 = strtotime(date('Y-m-d') . ' 20:30:00');
+//        $end_time2 = strtotime(date('Y-m-d') . ' 24:00:00');
+//        $start_time3 = strtotime(date('Y-m-d', strtotime('+1 day')) . ' 08:30:00');
+//        $start_time4 = strtotime(date('Y-m-d', strtotime('+1 day')) . ' 00:00:00');
+//        // 判断当前时间属于哪个时间范围
+//        if ($current_time >= $start_time1 && $current_time <= $end_time1) {
+//            $data['开工时间'] = date('Y-m-d') . ' 08:30:00';
+//        } elseif ($current_time > $end_time1 && $current_time <= $end_time2) {
+//            $data['开工时间'] = date('Y-m-d') . ' 20:30:00';
+//        } elseif ($current_time > $end_time1 && $current_time <= $start_time3) {
+//            $data['开工时间'] = date('Y-m-d', strtotime('+1 day')) . ' 08:30:00';
+//        }elseif ($current_time > $start_time4 && $current_time <= $start_time3){
+//            $data['开工时间'] = date('Y-m-d') . ' 20:30:00';
+//        }
         $current_time = time();
-        // 设置时间范围
-        $start_time1 = strtotime(date('Y-m-d') . ' 08:30:00');
-        $end_time1 = strtotime(date('Y-m-d') . ' 20:30:00');
-        $end_time2 = strtotime(date('Y-m-d') . ' 24:00:00');
-        $start_time3 = strtotime(date('Y-m-d', strtotime('+1 day')) . ' 08:30:00');
-        $start_time4 = strtotime(date('Y-m-d', strtotime('+1 day')) . ' 00:00:00');
-        // 判断当前时间属于哪个时间范围
-        if ($current_time >= $start_time1 && $current_time <= $end_time1) {
-            $data['开工时间'] = date('Y-m-d') . ' 08:30:00';
-        } elseif ($current_time > $end_time1 && $current_time <= $end_time2) {
-            $data['开工时间'] = date('Y-m-d') . ' 20:30:00';
-
-        } elseif ($current_time > $end_time1 && $current_time <= $start_time3) {
-            $data['开工时间'] = date('Y-m-d', strtotime('+1 day')) . ' 08:30:00';
-        }elseif ($current_time > $start_time4 && $current_time <= $start_time3){
-            $data['开工时间'] = date('Y-m-d') . ' 20:30:00';
+        $today = date('Y-m-d');
+        $tomorrow = date('Y-m-d', strtotime('+1 day'));
+
+        $morning_start = strtotime("$today 08:30:00");
+        $evening_start = strtotime("$today 20:30:00");
+        $next_morning = strtotime("$tomorrow 08:30:00");
+
+        // 逻辑判断
+        if ($current_time < $morning_start) {
+            // 当天8:30之前,使用前一天的20:30
+            $data['开工时间'] = date('Y-m-d', strtotime('-1 day')) . ' 20:30:00';
+        } elseif ($current_time <= $evening_start) {
+            // 8:30-20:30之间,使用当天8:30
+            $data['开工时间'] = "$today 08:30:00";
+        } elseif ($current_time < $next_morning) {
+            // 20:30到次日8:30之间,使用当天20:30
+            $data['开工时间'] = "$today 20:30:00";
+        } else {
+            // 次日8:30之后,使用次日8:30
+            $data['开工时间'] = "$tomorrow 08:30:00";
         }
         if (!empty($params['order']) && !empty($params['yjno'])){
             $option['Gy0_gdbh'] = $params['order'];