$siteId, 'week' => $week]; $nowPlanList = FlowPlan::query()->where($where)->get(); $nextWeek = date('YW', strtotime('+1 week')); $nextWhere = ['site_id' => $siteId, 'week' => $nextWeek]; $nextPlanList = FlowPlan::query()->where($nextWhere)->get(); $historyList = FlowPlan::query()->where([['site_id', '=', $siteId], ['week', '<', $week]])->get()->groupBy('week')->toArray(); foreach ($historyList as $key => $value) { foreach ($value as $kk => $vv) { $value[$kk]['user_ids'] = explode(',', $vv['user_ids']) ?? ''; } $historyList[$key] = $value; } $roleScope = array_keys(FlowInfoTpl::RoleScope); unset($roleScope[1]); //删除客户 $userList = User::query()->select(['id', 'nickname', 'role_id'])->whereIn('role_id', $roleScope) ->get()->toArray(); $site = Site::query()->select(['cn_title'])->find($siteId); $userList[] = ['id' => -1, 'role_id' => -1, 'nickname' => $site->cn_title ?? '站点名称']; foreach ($nowPlanList as $key => $value) { $nowPlanList[$key]->user_ids = explode(',', $value->user_ids) ?? ''; } foreach ($nextPlanList as $key => $value) { $nextPlanList[$key]->user_ids = explode(',', $value->user_ids) ?? ''; } return view('admin.flow.plan', [ 'siteId' => $siteId, 'nowPlanList' => $nowPlanList, 'nextPlanList' => $nextPlanList, 'historyList' => $historyList, 'userList' => $userList, ]); } //规划保存 public function planSave(Request $request, $siteId) { $isNext = $request->input('isNext'); $dataList = $request->input('dataList') ?? []; $isMove = $request->input('isMove'); $week = date('YW'); if ($isNext) { $week = date('YW', strtotime('+1 week')); } if ($isMove) { $week = date('YW', strtotime('+1 week')); FlowPlan::query()->where(['id' => $isMove])->update(array('week' => $week)); return response()->json(['message' => '操作成功']); } $where = ['site_id' => $siteId, 'week' => $week]; $requestIds = array_column($dataList, 'id'); $ids = FlowPlan::query()->where($where)->pluck('id')->toArray(); $delIds = array_diff($ids, $requestIds); if ($delIds) { FlowPlan::query()->whereIn('id', $delIds)->delete(); } foreach ($dataList as $item) { if (!empty($item['user_ids'])) { $userIds = implode(',', $item['user_ids']); } if (!empty($item['id'])) { FlowPlan::query()->where(['id' => $item['id']])->delete(); } FlowPlan::query()->create([ 'site_id' => $siteId, 'done_date' => $item['done_date'] ?? null, 'title' => $item['title'] ?? '', 'username' => $item['username'] ?? '', 'remark' => $item['remark'] ?? '', 'user_ids' => $userIds ?? '', 'week' => $week ]); } return response()->json(['message' => '操作成功']); } //流程编辑 public function planEdit(Request $request) { $planId = $request->input('planId'); $title = $request->input('title'); $doneDate = $request->input('doneDate'); $username = $request->input('username'); $remark = $request->input('remark'); FlowPlan::query()->where(['id' => $planId])->update([ 'title' => $title, 'done_date' => $doneDate, 'username' => $username, 'remark' => $remark, ]); return response()->json(['message' => '操作成功']); } //流程历史删除 public function planHistoryDel(Request $request) { $planId = $request->input('planId'); FlowPlan::query()->where(['id' => $planId])->delete(); return response()->json(['message' => '操作成功']); } public function historyUpdate(Request $request, $id) { if (!$request->ajax()) { $flowPlan = FlowPlan::query()->where(['id' => $id])->first(); $flowPlan->user_ids = explode(',', $flowPlan->user_ids) ?? ''; $roleScope = array_keys(FlowInfoTpl::RoleScope); unset($roleScope[1]); //删除客户 $site = Site::query()->where('id', $flowPlan->site_id)->first(); $userList = User::query()->select(['id', 'nickname', 'role_id'])->whereIn('role_id', $roleScope) ->get()->toArray(); $userList[] = ['id' => -1, 'role_id' => -1, 'nickname' => $site->cn_title ?? '站点名称']; return view('admin.flow.history_update', [ 'flowPlan' => $flowPlan, 'userList' => $userList, ]); } $request = $request->all(); $update = [ 'done_date' => $request['done_date'] ?? date('Y-m-d'), 'username' => $request['username'] ?? '', 'title' => $request['title'] ?? '', 'remark' => $request['remark'] ?? '', 'user_ids' => implode(',', $request['user_ids']) ?? '', ]; FlowPlan::query()->where('id', $request['id'])->update($update); return response()->json(['message' => '操作成功']); } public function extension($siteId) { $stageList = FlowStage::query()->where(['site_id' => $siteId])->get(); foreach ($stageList as $item) { $extension = explode(',', $item->extension); $item->client_cause = 0; if (in_array(1, $extension)) { $item->client_cause = 1; } $item->collection_cause = 0; if (in_array(2, $extension)) { $item->collection_cause = 1; } $item->plan_cause = 0; if (in_array(3, $extension)) { $item->plan_cause = 1; } $item->design_cause = 0; if (in_array(4, $extension)) { $item->design_cause = 1; } $item->project_progress_cause = 0; if (in_array(5, $extension)) { $item->project_progress_cause = 1; } $item->memo_cause = 0; if (in_array(6, $extension)) { $item->memo_cause = 1; } if ($item->expected_date) { $item->expected_date = date('Y-m-d', strtotime($item->expected_date)); } if ($item->complete_date) { $item->complete_date = date('Y-m-d', strtotime($item->complete_date)); } } return view('admin.flow.extension', [ 'siteId' => $siteId, 'stageList' => $stageList, ]); } }