diff --git a/application/common/Model/TaskStages.php b/application/common/Model/TaskStages.php index 295c155..f45f035 100755 --- a/application/common/Model/TaskStages.php +++ b/application/common/Model/TaskStages.php @@ -36,7 +36,7 @@ class TaskStages extends CommonModel * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException */ - public function tasks($stageCode, $deleted = 0, $done = -1, $title = '', $pri = [], $executor = [], $creator = [], $joiner = [], $status = [], $endTime = [], $beginTime = [], $createTime = [], $doneTime = [],$data=[]) + public function tasks($stageCode, $deleted = 0, $done = -1, $title = '', $pri = [], $executor = [], $creator = [], $joiner = [], $status = [], $endTime = [], $beginTime = [], $createTime = [], $doneTime = [], $data = []) { $where = ['pcode' => '', 'deleted' => $deleted]; if ($done != -1) { @@ -46,7 +46,8 @@ class TaskStages extends CommonModel if (is_array($stageCode)) { $taskModel = $taskModel->whereIn('t.stage_code', $stageCode); } else { - $taskModel = $taskModel->where('t.stage_code', $stageCode); + if (isset($data['type']) && $data['type'] != 'all') + $taskModel = $taskModel->where('t.stage_code', $stageCode); } if ($title) { $taskModel = $taskModel->whereLike('t.name', "%$title%"); @@ -71,18 +72,20 @@ class TaskStages extends CommonModel } //todo 查询范围问题 $joinTaskMember = false; - $member=new MemberAccount(); - $member_code=getCurrentMember()['code']; - $find=$member->where('member_code',$member_code)->find(); - if(isset($data['type']) &&$data['type']=='copied_list'){ - $taskModel = $taskModel->whereRaw('find_in_set(:id,t.copied_list) ', ['id' => $member_code]); - }else{ - if($find &&$find['is_liaison_man']==0){ + $member = new MemberAccount(); + $member_code = getCurrentMember()['code']; + $find = $member->where('member_code', $member_code)->find(); + if (isset($data['type'])) { + if ($data['type'] == 'copied_list') { + $taskModel = $taskModel->whereRaw('find_in_set(:id,t.copied_list) ', ['id' => $member_code]); + } + } else { + if ($find && $find['is_liaison_man'] == 0) { $joinTaskMember = true; - $type=ProjectAuth::where('id',$find['authorize'])->value('type'); - if($type=='admin'){ - $taskModel = $taskModel->where('t.create_by',$member_code); - }else{ + $type = ProjectAuth::where('id', $find['authorize'])->value('type'); + if ($type == 'admin') { + $taskModel = $taskModel->where('t.create_by', $member_code); + } else { $taskModel = $taskModel->leftJoin('task_member tm', 't.code = tm.task_code')->where('tm.member_code', $member_code)->where('tm.is_executor', 1); } } @@ -99,7 +102,7 @@ class TaskStages extends CommonModel !$joinTaskMember && $taskModel->leftJoin('task_member tm', 't.code = tm.task_code'); $taskModel = $taskModel->whereIn('tm.member_code', $joiner); } - $list = $taskModel->order('t.create_time desc')->field('id', true)->select(); + $list = $taskModel->order('t.create_time desc')->field('id', true)->page($data['page'], 10)->select(); if ($list) { $taskMemberList = []; foreach ($list as &$task) { @@ -113,6 +116,30 @@ class TaskStages extends CommonModel $taskMemberList[$assign_to] = $task['executor']; } } + $task['exchange_info'] = []; + $arr = ''; + if ($task['exchange_list'] && $task['transferred']) { + $arr = $task['exchange_list'] . ',' . $task['transferred']; + } elseif ($task['exchange_list']) { + $arr = $task['exchange_list']; + } elseif ($task['transferred']) { + $arr = $task['transferred']; + } + $arr = array_unique(explode(',', $arr)); + $arr2 = explode(',', $task['copied_list']); + $task['exchange_info'] = MemberAccount::whereIn('member_code', $arr)->field('member_code,name,avatar')->select(); + $task['copied_info'] = MemberAccount::whereIn('member_code', $arr2)->field('member_code,name,avatar')->select(); + $endTime = strtotime($task['end_time']); + $createTime = strtotime($task['create_time']); + $task['timeout']=0; + $task['department_name']=Department::where('code',$task['department'])->value('name'); + if ($endTime > $createTime) { + $timeDifference = abs($endTime - $createTime); + // 计算天数 + $days = $timeDifference / 86400; + $task['timeout']=$days.'天'; + + } } } return $list; @@ -123,7 +150,7 @@ class TaskStages extends CommonModel $taskModel = new Task(); $list1 = $taskModel->where('stage_code', $stageCode)->where('done', 0)->where('deleted', 0)->order('sort asc,end_time desc, id asc')->select(); $list2 = $taskModel->where('stage_code', $stageCode)->where('done', 1)->where('deleted', 0)->order('sort asc,end_time desc, id asc')->select(); - $list = array_merge($list1?$list1->toArray():[],$list2?$list2->toArray():[]); + $list = array_merge($list1 ? $list1->toArray() : [], $list2 ? $list2->toArray() : []); if ($list) { foreach ($list as $key => &$item) { $item = $taskModel->read($item['code']); diff --git a/application/project/controller/TaskStages.php b/application/project/controller/TaskStages.php index 645bd55..5b43e36 100755 --- a/application/project/controller/TaskStages.php +++ b/application/project/controller/TaskStages.php @@ -67,6 +67,7 @@ class TaskStages extends BasicApi $where = []; $code = Request::post('stageCode'); $type = Request::post('type'); + $page = Request::post('page',1); $done = Request::param('done', -1); $title = Request::param('title', ''); $pri = json_decode(Request::post('pri', '')); @@ -84,6 +85,7 @@ class TaskStages extends BasicApi } $where[] = ['stage_code', '=', $code]; $data = ['type'=>$type]; + $data = ['page'=>$page]; $list = $this->model->tasks($code, 0, $done, $title, $pri, $executor, $creator, $joiner, $status, $endTime, $beginTime, $createTime, $doneTime,$data); // $list = \app\common\Model\Task::alias('t')->join('member m','t.assign_to = m.code')->field()->where(['stage_code'=>$code])->select();