作者 李宇航

合并分支 'lyh-server' 到 'master'

超过120小时未处理的工单



查看合并请求 !2701
@@ -22,7 +22,7 @@ class AsideTicketController extends BaseController @@ -22,7 +22,7 @@ class AsideTicketController extends BaseController
22 * 22 *
23 * @return \Illuminate\Http\Response 23 * @return \Illuminate\Http\Response
24 */ 24 */
25 - public function indexs(AsideTicketListRequest $request) 25 + public function index(AsideTicketListRequest $request)
26 { 26 {
27 $validated = $request->validated(); 27 $validated = $request->validated();
28 $query = Tickets::with([ 28 $query = Tickets::with([
@@ -142,119 +142,6 @@ class AsideTicketController extends BaseController @@ -142,119 +142,6 @@ class AsideTicketController extends BaseController
142 $this->response('success', Code::SUCCESS, $lists); 142 $this->response('success', Code::SUCCESS, $lists);
143 } 143 }
144 144
145 - public function index(AsideTicketListRequest $request)  
146 - {  
147 - $validated = $request->validated();  
148 -  
149 - $query = Tickets::with([  
150 - 'logs.engineer',  
151 - 'project.pm',  
152 - 'project.projectV6' // 根据实际字段替换  
153 - ])  
154 - ->when(!empty($validated['engineer_id']), function ($query) use ($validated) {  
155 - $engineerId = $validated['engineer_id'];  
156 - return $query->where(function ($q) use ($engineerId) {  
157 - $q->where('submit_user_id', $engineerId)  
158 - ->orWhereHas('logs', function ($q1) use ($engineerId) {  
159 - $q1->where('engineer_id', $engineerId);  
160 - });  
161 - });  
162 - })  
163 - ->when($request->input('project_id') !== null, function ($query) use ($request) {  
164 - $projectId = $request->input('project_id');  
165 - return $query->whereHas('project', function ($q) use ($projectId) {  
166 - $q->where('uuid', $projectId);  
167 - });  
168 - })  
169 - ->when($request->input('status') !== null, function ($query) use ($request) {  
170 - $status = $request->input('status');  
171 - if ($status == '-1') {  
172 - $newTime = date("Y-m-d H:i:s", strtotime("-120 hours"));  
173 - return $query->where('status', 0)->where('plan_end_at','<',$newTime);  
174 - } else {  
175 - return $query->where('status', $status);  
176 - }  
177 - })  
178 - ->when($request->input('timeout') !== null, function ($query) use ($request) {  
179 - $timeout = $request->input('timeout');  
180 - switch ($timeout) {  
181 - case 1: $newTime = date("Y-m-d H:i:s", strtotime("-24 hours")); break;  
182 - case 2: $newTime = date("Y-m-d H:i:s", strtotime("-48 hours")); break;  
183 - case 3: $newTime = date("Y-m-d H:i:s", strtotime("-72 hours")); break;  
184 - default: $newTime = date("Y-m-d H:i:s"); break;  
185 - }  
186 - return $query->where('status', 0)->where('plan_end_at','<',$newTime);  
187 - })  
188 - ->when($request->input('star') !== null, function ($query) use ($request) {  
189 - return $query->where('star', $request->input('star'));  
190 - })  
191 - ->when($request->input('search'), function ($query) use ($request) {  
192 - $search = $request->input('search');  
193 - return $query->where(function ($q) use ($search) {  
194 - $q->where('title', 'like', '%' . $search . '%')  
195 - ->orWhereHas('project', function ($q1) use ($search) {  
196 - $q1->where('title', 'like', '%' . $search . '%')  
197 - ->orWhere('company_name', 'like', '%' . $search . '%');  
198 - });  
199 - });  
200 - })  
201 - ->when($request->input('project_status') !== null, function ($query) use ($request) {  
202 - return $query->whereHas('project', function ($q) use ($request) {  
203 - $q->where('status', $request->input('project_status'));  
204 - });  
205 - })  
206 - ->when($request->input('project_cate') !== null, function ($query) use ($request) {  
207 - return $query->whereHas('project', function ($q) use ($request) {  
208 - $q->where('project_cate', $request->input('project_cate'));  
209 - });  
210 - });  
211 -  
212 - // 用户部门搜索  
213 - if(isset($this->param['dept_id']) && !empty($this->param['dept_id'])){  
214 - $manageHrModel = new ManageHr();  
215 - $manageIdArr = $manageHrModel->selectField(['dept_id'=>$this->param['dept_id'],'status'=>1],'manage_id');  
216 - $query->whereHas('logs', function ($q) use ($manageIdArr) {  
217 - $q->whereIn('engineer_id', $manageIdArr);  
218 - });  
219 - }  
220 - if(!empty($this->param['start_at']) && !empty($this->param['end_at'])){  
221 - $query->whereBetween('created_at',[$this->param['start_at'],$this->param['end_at']]);  
222 - }  
223 - // 排序  
224 - $sortField = $request->input('sort_field', 'plan_end_at');  
225 - $sortOrder = strtolower($request->input('sort_order', 'asc'));  
226 - $query->orderBy('status', 'asc');  
227 - $query->orderBy($sortField, $sortOrder);  
228 - if ($sortField != 'plan_end_at') $query->orderBy('plan_end_at', 'asc');  
229 - // 先统计总条数  
230 - $total = (clone $query)->count();  
231 - // 再查询数据  
232 - $listsData = $query->offset(($this->page - 1) * $this->row)  
233 - ->limit($this->row)  
234 - ->get()  
235 - ->toArray();  
236 - // 计算超时小时数  
237 - foreach ($listsData as $key => $item){  
238 - if($item['status'] == 0){  
239 - $end = date('Y-m-d H:i:s');  
240 - $start = $item['plan_end_at'];  
241 - if($start < $end){  
242 - $item['plan_ent_time'] = diffInHours($start,$end);  
243 - }  
244 - }  
245 - $listsData[$key] = $item;  
246 - }  
247 - // 还原分页结构  
248 - $lists = [  
249 - 'total' => $total,  
250 - 'per_page' => $this->row,  
251 - 'current_page' => $this->page,  
252 - 'last_page' => ceil($total / $this->row),  
253 - 'list' => $listsData,  
254 - ];  
255 - $this->response('success', Code::SUCCESS, $lists);  
256 - }  
257 -  
258 /** 145 /**
259 * @param $search 146 * @param $search
260 * @return void 147 * @return void