cqp 1 месяц назад
Родитель
Сommit
09137de7b7
2 измененных файлов с 9 добавлено и 5 удалено
  1. 6 2
      app/Service/ExportFileService.php
  2. 3 3
      app/Service/StatisticsService.php

+ 6 - 2
app/Service/ExportFileService.php

@@ -9,6 +9,7 @@ use App\Model\Device;
 use App\Model\Employee;
 use App\Model\EmployeeRole;
 use App\Model\Item;
+use App\Model\ItemDetails;
 use App\Model\RevenueCost;
 use Maatwebsite\Excel\Facades\Excel;
 
@@ -266,6 +267,9 @@ class ExportFileService extends Service
 
         $item_total = Item::where('del_time', 0)->where('is_use', 1)->select('code', 'id','start_time','end_time')->get()->toArray();
 
+        $time_array = ItemDetails::where('del_time',0)
+            ->pluck('total_hours', 'device_id')
+            ->all();
         // 生成起止时间行
         $timeRow = $this->getItemTimeRow($column, $item_total);
 
@@ -274,7 +278,7 @@ class ExportFileService extends Service
 
         $month = date("Y.m", $timeRange[0]);
         // --- 1. 处理全月汇总 Sheet ---
-        $summaryData = $service->statisticsDeviceFillExportData($rawData, $timeRange, $device, $item_total,true);
+        $summaryData = $service->statisticsDeviceFillExportData($rawData, $timeRange, $device, $item_total,true,$time_array);
         // 格式化数据:只取 header 中定义的列,并按顺序排列
         $finalExportData[$month . '合计'] = $this->formatSheetData($header, $column, $summaryData);
 
@@ -288,7 +292,7 @@ class ExportFileService extends Service
         foreach ($dataByDay as $date => $dayRows) {
             $dayTimestamp = strtotime($date);
             // 这里调用你的填充逻辑
-            $dayResult = $service->statisticsDeviceFillExportData($dayRows, [$dayTimestamp], $device, $item_total);
+            $dayResult = $service->statisticsDeviceFillExportData($dayRows, [$dayTimestamp], $device, $item_total,false, $time_array);
             // 格式化并存入结果集
             $finalExportData[date('Y.m.d',$dayTimestamp)] = $this->formatSheetData($header, $column, $dayResult);
         }

+ 3 - 3
app/Service/StatisticsService.php

@@ -279,7 +279,7 @@ class StatisticsService extends Service
             $rd_total_hours = $device_map[$value['id']] ?? 0;
             $rd_total_hours = bcdiv($rd_total_hours,60,2);
             $device[$key]['rd_total_hours'] = $rd_total_hours;
-            $device[$key]['set_total_hours'] = $rd_total_hours;
+//            $device[$key]['set_total_hours'] = $rd_total_hours;
             //每个项目的工时
             $every_item_hours = $device_map_2[$value['id']] ?? [];
 
@@ -521,7 +521,7 @@ class StatisticsService extends Service
         return $device;
     }
 
-    public function statisticsDeviceFillExportData($data, $ergs, $device, $item_total, $is_count = false) {
+    public function statisticsDeviceFillExportData($data, $ergs, $device, $item_total, $is_count = false, $set_map = []) {
         $device_map = $device_map_2 = [];
         foreach ($data as $value) {
             $device_map[$value['data_id']] = bcadd($device_map[$value['data_id']] ?? 0, $value['total_hours'], 2);
@@ -539,7 +539,7 @@ class StatisticsService extends Service
 
             $rd_total_hours = bcdiv($device_map[$value['id']] ?? 0, 60, 2);
             $device[$key]['rd_total_hours'] = $rd_total_hours;
-            $device[$key]['set_total_hours'] = $rd_total_hours;
+            $device[$key]['set_total_hours'] = $set_map[$value['id']] ?? 0;
 
             $every_item_hours = $device_map_2[$value['id']] ?? [];
             $details = $tmp;