|
|
@@ -529,8 +529,9 @@ class StatisticService extends StatisticCommonService
|
|
|
$item_key_list[$key][$rootId]['entrust1_amount'] += $item['amount']*100;
|
|
|
} elseif ($item['entrust_type'] == 2) {
|
|
|
$item_key_list[$key][$rootId]['entrust2_amount'] += $item['amount']*100;
|
|
|
+ }else{
|
|
|
+ $item_key_list[$key][$rootId]['total_amount'] += $item['amount']*100;
|
|
|
}
|
|
|
- $item_key_list[$key][$rootId]['total_amount'] += $item['amount']*100;
|
|
|
//这边需要拿到头部所有的一级费用类型
|
|
|
if (!isset($type_list[$rootId])) {
|
|
|
$type_list[$rootId] = [
|
|
|
@@ -969,23 +970,35 @@ class StatisticService extends StatisticCommonService
|
|
|
if(! empty($data['state'])) $model->where('state', $data['state']);
|
|
|
|
|
|
$list = $model->get()->toArray();
|
|
|
- $list = $this->fillEnterpriseRdStatistic($list, $data, $user);
|
|
|
+ if(empty($list)) return [true,[]];
|
|
|
+ $datetime = $list[0]['start_time'];
|
|
|
+ $list = $this->fillEnterpriseRdStatistic($list, $data, $user,$datetime);
|
|
|
|
|
|
return [true, $list];
|
|
|
}
|
|
|
|
|
|
- private function fillEnterpriseRdStatistic($list, $data, $user){
|
|
|
+ private function fillEnterpriseRdStatistic($list, $data, $user,$time){
|
|
|
//项目实际支出 项目费用单
|
|
|
- $expense = ExpenseClaimsDetails::Clear($user, $data);
|
|
|
- $expense_map = $expense->where('del_time', 0)
|
|
|
- ->whereIn('item_id', array_unique(array_column($list,'id')))
|
|
|
- ->selectRaw('item_id, SUM(amount) as total_amount')
|
|
|
- ->groupBy('item_id')
|
|
|
- ->pluck('total_amount', 'item_id') // 这一步直接生成 item_id => total_amount 结构
|
|
|
- ->toArray();
|
|
|
-
|
|
|
+// $expense = ExpenseClaimsDetails::Clear($user, $data);
|
|
|
+// $expense_map = $expense->where('del_time', 0)
|
|
|
+// ->whereIn('item_id', array_unique(array_column($list,'id')))
|
|
|
+// ->selectRaw('item_id, SUM(amount) as total_amount')
|
|
|
+// ->groupBy('item_id')
|
|
|
+// ->pluck('total_amount', 'item_id') // 这一步直接生成 item_id => total_amount 结构
|
|
|
+// ->toArray();
|
|
|
+ $attendance = $this->employeeAttendanceMonthStatistic(["year"=>date("Y-m-d",$time), "s" => "/api/employeeAttendanceMonthStatistic"],$user);
|
|
|
+ $attendance_key_list = [];
|
|
|
+ foreach ($attendance[1]['list'] as $v){
|
|
|
+ $attendance_key_list[$v['code']] = $v['employee_salary']*100+$v['device_depreciation']*100;
|
|
|
+ foreach ($v['fee_list'] as $vv){
|
|
|
+ $attendance_key_list[$v['code']] += $vv['total_amount']*100;
|
|
|
+ $attendance_key_list[$v['code']] += $vv['entrust1_amount']*100;
|
|
|
+ $attendance_key_list[$v['code']] += $vv['entrust2_amount']*100;
|
|
|
+ }
|
|
|
+ }
|
|
|
+// dd($attendance_key_list);
|
|
|
foreach ($list as $key => $value){
|
|
|
- $list[$key]['actual_expenditure'] = $expense_map[$value['id']] ?? 0;
|
|
|
+ $list[$key]['actual_expenditure'] = round($attendance_key_list[$value['code']]/100,2) ?? 0;
|
|
|
$start_time = $value['start_time'] ? date('Y-m-d', $value['start_time']) : '';
|
|
|
$end_time = $value['end_time'] ? date('Y-m-d', $value['end_time']) : '';
|
|
|
$list[$key]['time_range'] = $start_time . ' ' . $end_time;
|