Przeglądaj źródła

修改业务bug

gogs 2 miesięcy temu
rodzic
commit
009a9e723f
1 zmienionych plików z 21 dodań i 3 usunięć
  1. 21 3
      app/Service/ExpenseClaimsService.php

+ 21 - 3
app/Service/ExpenseClaimsService.php

@@ -7,6 +7,7 @@ use App\Model\Device;
 use App\Model\Employee;
 use App\Model\ExpenseClaims;
 use App\Model\ExpenseClaimsDetails;
+use App\Model\Fee;
 use App\Model\Item;
 use App\Model\ItemDetails;
 use App\Model\RuleSet;
@@ -186,22 +187,39 @@ class ExpenseClaimsService extends Service
         $customer['crt_name'] = Employee::where('id',$customer['crt_id'])->value('title');
         $customer['crt_time'] = $customer['crt_time'] ? date("Y-m-d H:i:s",$customer['crt_time']): '';
         $customer['month'] = $this->UtcTime($customer['month']);
-        $details = $this->getDetail($data['id']);
+        $details = $this->getDetail($data,$user);
         $customer["details"] = $details;
 
         return [true, $customer];
     }
 
-    private function getDetail($id){
+    private function getDetail($data,$user){
         $data = ExpenseClaimsDetails::where('del_time',0)
-            ->where('expense_claims_id', $id)
+            ->where('expense_claims_id', $data['id'])
             ->select('*')
             ->get()->toArray();
+        $item_ids = collect($data)->pluck('item_id')->unique()->values()->all();
+        $employee_ids = collect($data)->pluck('employee_id')->unique()->values()->all();
+        $fee_ids = collect($data)->pluck('fee_id')->unique()->values()->all();
+
+        $item = Item::Clear($user, $data);
+        $item_key_list = $item->wherein('id',$item_ids)->pluck('title','id');
+
+        $item = Employee::Clear($user, $data);
+        $employee_key_list = $item->wherein('id',$employee_ids)->pluck('title','id');
+
+        $item = Fee::Clear($user, $data);
+        $fee_key_list = $item->wherein('id',$fee_ids)->pluck('title','id');
+
+
         foreach ($data as &$v) {
             // 1. 假设数据库里的 claim_date 是 Unix 时间戳(整数)
             // 2. createFromTimestamp 第二个参数设为 'UTC' 确保时间轴对齐
             // 3. toIso8601ZuluString() 会自动生成 T 和 Z 以及 .000 毫秒
             $v['claim_date'] = $this->UtcTime( $v['claim_date']);
+            $v['item_title'] = $item_key_list[$v['item_id']] ?? "";
+            $v['employee_title'] = $employee_key_list[$v['employee_id']] ?? "";
+            $v['fee_title'] = $fee_key_list[$v['fee_id']] ?? "";
         }
         return $data;
     }