|
|
@@ -39,7 +39,7 @@ class OwnerStoreOutFeeReportService implements SettlementBillReportInterface
|
|
|
$end = Carbon::parse($this->reportDate)->endOfMonth()->toDateString();
|
|
|
$details =
|
|
|
DB::table('owner_store_out_fee_details')
|
|
|
- ->leftJoin('owner_fee_details', 'owner_store_out_fee_details.owner_fee_detail_id', '=', 'owner_fee_details.id')
|
|
|
+ ->leftJoin('owner_fee_details ', 'owner_store_out_fee_details.owner_fee_detail_id', '=', 'owner_fee_details.id')
|
|
|
->leftJoin('owner_price_operations', 'owner_store_out_fee_details.owner_price_operation_id', '=', 'owner_price_operations.id')
|
|
|
->selectRaw("
|
|
|
DATE_FORMAT(owner_store_out_fee_details.created_at,'%Y-%m') as counting_month,
|
|
|
@@ -50,14 +50,14 @@ class OwnerStoreOutFeeReportService implements SettlementBillReportInterface
|
|
|
owner_store_out_fee_details.owner_fee_detail_id,
|
|
|
owner_store_out_fee_details.owner_price_operation_id,
|
|
|
owner_store_out_fee_details.step,
|
|
|
- sum(owner_fee_details.work_fee) as work_fee,
|
|
|
owner_price_operations.name
|
|
|
")
|
|
|
->whereBetween('owner_store_out_fee_details.created_at', [$start, $end])
|
|
|
- ->groupBy('counting_month',
|
|
|
+ ->groupBy(
|
|
|
+ 'counting_month',
|
|
|
'owner_store_out_fee_details.owner_id',
|
|
|
'owner_store_out_fee_details.step',
|
|
|
- 'owner_price_operations.id'
|
|
|
+ 'owner_store_out_fee_details.owner_price_operation_id',
|
|
|
)
|
|
|
->get();
|
|
|
$reports = [];
|
|
|
@@ -76,9 +76,12 @@ class OwnerStoreOutFeeReportService implements SettlementBillReportInterface
|
|
|
'unit_id' => $detail->unit_id,
|
|
|
'unit_price' => $detail->unit_price,
|
|
|
'amount' => $detail->amounts,
|
|
|
- 'fee' => $detail->work_fee,
|
|
|
];
|
|
|
}
|
|
|
+
|
|
|
+ //保证幂等性 插入前删除该月的统计数据
|
|
|
+ OwnerStoreOutFeeReport::query()->where('counting_month', $counting_month)->delete();
|
|
|
+
|
|
|
foreach (array_chunk($reports, 1000) as $reports_chunked) {
|
|
|
OwnerStoreOutFeeReport::query()->insertOrIgnore($reports_chunked);
|
|
|
}
|
|
|
@@ -104,6 +107,7 @@ class OwnerStoreOutFeeReportService implements SettlementBillReportInterface
|
|
|
function get(array $kvPairs)
|
|
|
{
|
|
|
$this->archiveService = app('OwnerBillReportArchiveService');
|
|
|
+ list($start, $end) = $this->getStartAndEnd($kvPairs['counting_month']);
|
|
|
if ($this->archiveService->isArchived($kvPairs['counting_month'], $kvPairs['owner_id'], $kvPairs['type']) == 1) {
|
|
|
//查询存档数据
|
|
|
$archived = $this->archiveService->get($kvPairs);
|
|
|
@@ -118,22 +122,32 @@ class OwnerStoreOutFeeReportService implements SettlementBillReportInterface
|
|
|
->orderBy('owner_price_operation_id')
|
|
|
->get();
|
|
|
|
|
|
- $work_name_fee_total = OwnerStoreOutFeeReport::query()
|
|
|
- ->leftJoin('owner_price_operations', 'owner_store_out_fee_reports.owner_price_operation_id', '=', 'owner_price_operations.id')
|
|
|
+
|
|
|
+ $work_name_fee_total = \App\OwnerFeeDetail::query()
|
|
|
+ ->leftJoin('owner_price_operations', 'owner_fee_details.owner_price_operation_id', '=', 'owner_price_operations.id')
|
|
|
->selectRaw("
|
|
|
- sum(owner_store_out_fee_reports.fee) as fee,
|
|
|
- owner_price_operations.name,
|
|
|
- owner_price_operations.id
|
|
|
+ sum(owner_fee_details.work_fee) as fee,
|
|
|
+ owner_price_operations.name,
|
|
|
+ owner_price_operations.id
|
|
|
")
|
|
|
- ->where('owner_id', $kvPairs['owner_id'])
|
|
|
- ->where('counting_month', $kvPairs['counting_month'])
|
|
|
+ ->whereBetween('owner_fee_details.created_at', [$start, $end])
|
|
|
+ ->where('owner_fee_details.owner_id', $kvPairs['owner_id'])
|
|
|
->groupBy('owner_price_operations.name')
|
|
|
->get();
|
|
|
|
|
|
- $fee_total = OwnerStoreOutFeeReport::query()
|
|
|
- ->where('owner_id', $kvPairs['owner_id'])
|
|
|
- ->where('counting_month', $kvPairs['counting_month'])
|
|
|
- ->sum('fee');
|
|
|
+// $work_name_fee_total = OwnerStoreOutFeeReport::query()
|
|
|
+// ->leftJoin('owner_price_operations', 'owner_store_out_fee_reports.owner_price_operation_id', '=', 'owner_price_operations.id')
|
|
|
+// ->selectRaw("
|
|
|
+// sum(owner_store_out_fee_reports.fee) as fee,
|
|
|
+// owner_price_operations.name,
|
|
|
+// owner_price_operations.id
|
|
|
+// ")
|
|
|
+// ->where('owner_id', $kvPairs['owner_id'])
|
|
|
+// ->where('counting_month', $kvPairs['counting_month'])
|
|
|
+// ->groupBy('owner_price_operations.name')
|
|
|
+// ->get();
|
|
|
+
|
|
|
+ $fee_total = $work_name_fee_total->sum('fee');
|
|
|
}
|
|
|
return array($reports, $work_name_fee_total, $fee_total);
|
|
|
}
|