123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Administrator
- * Date: 2020/4/30 0030
- * Time: 15:57
- */
- namespace App\Http\Controllers\Admin\Flow;
- use App\Http\Controllers\Controller;
- use App\Http\Models\FlowInfoTpl;
- use App\Http\Models\FlowPlan;
- use App\Http\Models\FlowStage;
- use App\Http\Models\Site;
- use App\Http\Models\User;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\DB;
- /**
- * 项目管理 详情下 流程规划
- * Class PlanController
- * @package App\Http\Controllers\Admin\Flow
- */
- class PlanController extends Controller
- {
- public function index($siteId)
- {
- $week = date('YW');
- $where = ['site_id' => $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,
- ]);
- }
- }
|