| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- <?php
- namespace App\Service;
- use App\Model\Reminder;
- use App\Model\ReminderRecord;
- use Illuminate\Support\Facades\DB;
- class StatisticsService extends Service
- {
- public function valueStatisticsCommon($data,$user, $field = []){
- $alias_name = 'a';
- if(empty($field)) $field = Reminder::$a_field;
- $model = Reminder::Clear($user,$data, $alias_name);
- $model = $model->from("reminder as {$alias_name}")
- ->join('reminder_record as b', function ($join) use ($alias_name) {
- $join->on('b.reminder_id', '=', "{$alias_name}.id")
- ->where('b.del_time', 0);
- })
- ->join('reminder_record_details as c', function ($join) {
- $join->on('c.reminder_record_id', '=', 'b.id')
- ->where('c.del_time', 0);
- })
- ->where($alias_name . '.del_time',0)
- ->select($field)
- ->orderby($alias_name . '.id', 'desc');
- $alias = 'a.';
- if(! empty($data['order_number'])) $model->where($alias . 'order_number', 'LIKE', '%'.$data['order_number'].'%');
- if(! empty($data['order_no'])) $model->where($alias . 'order_no', 'LIKE', '%'.$data['order_no'].'%');
- if(! empty($data['product_title'])) $model->where($alias . 'product_title', 'LIKE', '%'.$data['product_title'].'%');
- if(! empty($data['product_code'])) $model->where($alias . 'product_code', 'LIKE', '%'.$data['product_code'].'%');
- if(! empty($data['id'])) $model->whereIn('b.id', $data['id']);
- if(isset($data['status'])) $model->where($alias . 'status', $data['status']);
- return $model;
- }
- public function valueStatistics($data,$user){
- $model = $this->valueStatisticsCommon($data, $user);
- $list = $this->limit($model,'',$data);
- $list = $this->valueStatisticsFillData($list);
- return [true, $list];
- }
- public function valueStatisticsFillData($data){
- if(empty($data['data'])) return $data;
- $emp_2 = (new CustomerSupplyService())->getEmployeeMap(array_unique(array_column($data['data'],'supply_id')),'detail');
- foreach ($data['data'] as $key => $value){
- $e = $emp_2[$value['supply_id']] ?? [];
- $data['data'][$key]['organization_title'] = $e['organization_title'] ?? "";
- $data['data'][$key]['supply_title'] = $e[$value['supply_id']] ?? '';
- $data['data'][$key]['tl_ways_title'] = ReminderRecord::$tl_way_name[$value['tl_ways']] ?? "";
- $data['data'][$key]['tl_result_title'] = ReminderRecord::$tl_result_name[$value['tl_result']] ?? "";
- $data['data'][$key]['status_title'] = Reminder::$status_name[$value['status']] ?? "";
- $data['data'][$key]['tl_arrived_time'] = $value['tl_arrived_time'] ? date("Y-m-d",$value['tl_arrived_time']): '';
- $data['data'][$key]['tl_time'] = $value['tl_time'] ? date("Y-m-d",$value['tl_time']): '';
- $data['data'][$key]['days'] = floor(abs($value['tl_time'] - $value['tl_arrived_time']) / 86400);
- }
- return $data;
- }
- }
|