|
@@ -92,14 +92,43 @@ class ExportFileService extends Service
|
|
|
return [true, $return];
|
|
|
}
|
|
|
|
|
|
- private function fillData($data, $column, &$return){
|
|
|
+// private function fillData($data, $column, &$return){
|
|
|
+// foreach ($data as $value) {
|
|
|
+// $tmp = [];
|
|
|
+// foreach ($column as $c_v){
|
|
|
+// $tmp[$c_v] = $value[$c_v] ?? "";
|
|
|
+// }
|
|
|
+// $return[] = $tmp;
|
|
|
+// }
|
|
|
+// }
|
|
|
+
|
|
|
+ private function fillData($data, $column, &$return)
|
|
|
+ {
|
|
|
+ // 预先创建包含默认值的键数组
|
|
|
+ $default = array_fill_keys($column, '');
|
|
|
+
|
|
|
foreach ($data as $value) {
|
|
|
- $tmp = [];
|
|
|
- foreach ($column as $c_v){
|
|
|
- $tmp[$c_v] = $value[$c_v] ?? "";
|
|
|
+ // 提取交集,并用默认值补充缺失的键
|
|
|
+ $return[] = array_merge($default, array_intersect_key($value, $default));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private function fillTotalData($data, $column, &$return){
|
|
|
+ $tmp = [];
|
|
|
+ foreach ($column as $value){
|
|
|
+ $key = $value['key'];
|
|
|
+ if(! empty($value['sum']) && isset($data[$value['key']])){
|
|
|
+ $decimals = $col['decimals'] ?? 2;
|
|
|
+// $tmp[$value['key']] = $data[$value['key']];
|
|
|
+
|
|
|
+ // 用 number_format 格式化输出(保持字符串形式,避免科学计数)
|
|
|
+ $tmp[$key] = number_format((float)$data[$key], $decimals, '.', '');
|
|
|
+ }else{
|
|
|
+ $tmp[$value['key']] = "";
|
|
|
}
|
|
|
- $return[] = $tmp;
|
|
|
}
|
|
|
+
|
|
|
+ $return[] = $tmp;
|
|
|
}
|
|
|
|
|
|
public function one($ergs,$user){
|
|
@@ -157,6 +186,7 @@ class ExportFileService extends Service
|
|
|
|
|
|
// 导出数据
|
|
|
$return = [];
|
|
|
+ $service = new StatisticsService();
|
|
|
$header_default = config("header.68") ?? [];
|
|
|
$column = array_column($header_default,'key');
|
|
|
$header = array_column($header_default,'value');
|
|
@@ -165,19 +195,23 @@ class ExportFileService extends Service
|
|
|
->whereIn('id', $id)
|
|
|
->select(RevenueCostTotal::$field)
|
|
|
->orderBy('id','desc')
|
|
|
- ->chunkById(500,function ($data) use(&$return,$column){
|
|
|
+ ->chunkById(500,function ($data) use(&$return, $service, $column){
|
|
|
$data = Collect($data)->map(function ($object) {
|
|
|
return (array)$object;
|
|
|
})->toArray();
|
|
|
$list['data'] = $data;
|
|
|
|
|
|
//订单数据
|
|
|
- $service = new StatisticsService();
|
|
|
$list = $service->statisticsRevenueCostFillData($list);
|
|
|
-
|
|
|
+ //返回数据
|
|
|
$this->fillData($list['data'], $column, $return);
|
|
|
});
|
|
|
|
|
|
+ //合计
|
|
|
+ $total = $this->countTotal($return, $header_default);
|
|
|
+ //填充合计
|
|
|
+ $this->fillTotalData($total, $header_default, $return);
|
|
|
+
|
|
|
return $this->saveExportData($return,$header);
|
|
|
}
|
|
|
|
|
@@ -186,6 +220,7 @@ class ExportFileService extends Service
|
|
|
|
|
|
// 导出数据
|
|
|
$return = [];
|
|
|
+ $service = new StatisticsService();
|
|
|
$header_default = config("header.69") ?? [];
|
|
|
$column = array_column($header_default,'key');
|
|
|
$header = array_column($header_default,'value');
|
|
@@ -194,19 +229,23 @@ class ExportFileService extends Service
|
|
|
->whereIn('id', $id)
|
|
|
->select(RevenueCost::$field_xhd)
|
|
|
->orderBy('id','desc')
|
|
|
- ->chunkById(500,function ($data) use(&$return, $column){
|
|
|
+ ->chunkById(500,function ($data) use(&$return, $column, $service){
|
|
|
$data = Collect($data)->map(function ($object) {
|
|
|
return (array)$object;
|
|
|
})->toArray();
|
|
|
$list['data'] = $data;
|
|
|
|
|
|
//订单数据
|
|
|
- $service = new StatisticsService();
|
|
|
$list = $service->statisticsRevenueCostOneAndTwoFillData($list);
|
|
|
|
|
|
$this->fillData($list['data'], $column, $return);
|
|
|
});
|
|
|
|
|
|
+ //合计
|
|
|
+ $total = $this->countTotal($return, $header_default);
|
|
|
+ //填充合计
|
|
|
+ $this->fillTotalData($total, $header_default, $return);
|
|
|
+
|
|
|
return $this->saveExportData($return,$header);
|
|
|
}
|
|
|
|
|
@@ -215,6 +254,7 @@ class ExportFileService extends Service
|
|
|
|
|
|
// 导出数据
|
|
|
$return = [];
|
|
|
+ $service = new StatisticsService();
|
|
|
$header_default = config("header.70") ?? [];
|
|
|
$column = array_column($header_default,'key');
|
|
|
$header = array_column($header_default,'value');
|
|
@@ -223,19 +263,23 @@ class ExportFileService extends Service
|
|
|
->whereIn('id', $id)
|
|
|
->select(RevenueCost::$field_xsfp)
|
|
|
->orderBy('id','desc')
|
|
|
- ->chunkById(500,function ($data) use(&$return, $column){
|
|
|
+ ->chunkById(500,function ($data) use(&$return, $column, $service){
|
|
|
$data = Collect($data)->map(function ($object) {
|
|
|
return (array)$object;
|
|
|
})->toArray();
|
|
|
$list['data'] = $data;
|
|
|
|
|
|
//订单数据
|
|
|
- $service = new StatisticsService();
|
|
|
$list = $service->statisticsRevenueCostOneAndTwoFillData($list);
|
|
|
|
|
|
$this->fillData($list['data'], $column, $return);
|
|
|
});
|
|
|
|
|
|
+ //合计
|
|
|
+ $total = $this->countTotal($return, $header_default);
|
|
|
+ //填充合计
|
|
|
+ $this->fillTotalData($total, $header_default, $return);
|
|
|
+
|
|
|
return $this->saveExportData($return,$header);
|
|
|
}
|
|
|
|
|
@@ -249,6 +293,7 @@ class ExportFileService extends Service
|
|
|
|
|
|
// 导出数据
|
|
|
$return = [];
|
|
|
+ $service = new StatisticsService();
|
|
|
$header_default = config("header.71") ?? [];
|
|
|
$column = array_column($header_default,'key');
|
|
|
$header = array_column($header_default,'value');
|
|
@@ -259,19 +304,23 @@ class ExportFileService extends Service
|
|
|
->select($field)
|
|
|
->groupby('order_id')
|
|
|
->orderBy('id','desc')
|
|
|
- ->chunkById(500,function ($data) use(&$return, $column){
|
|
|
+ ->chunkById(500,function ($data) use(&$return, $column, $service){
|
|
|
$data = Collect($data)->map(function ($object) {
|
|
|
return (array)$object;
|
|
|
})->toArray();
|
|
|
$list['data'] = $data;
|
|
|
|
|
|
//订单数据
|
|
|
- $service = new StatisticsService();
|
|
|
$list = $service->statisticsRevenueCostThreeFillData($list);
|
|
|
|
|
|
$this->fillData($list['data'], $column, $return);
|
|
|
},'order_id');
|
|
|
|
|
|
+ //合计
|
|
|
+ $total = $this->countTotal($return, $header_default);
|
|
|
+ //填充合计
|
|
|
+ $this->fillTotalData($total, $header_default, $return);
|
|
|
+
|
|
|
return $this->saveExportData($return,$header);
|
|
|
}
|
|
|
|