post(); if (!isset($param['id'])) { return $this->sendError('缺少必要参数: id'); } $opStories = db('work_story_info')->alias('os') ->join('work_story_state ps','os.story_state = ps.id','left') ->where('os.work_id', $param['id']) ->where('os.story_type', $param['story_type']) ->field('os.*, ps.desp as story_state_desp') ->select(); if(!$opStories){ return $this->sendSuccess($opStories); } if (empty($opStories)) { return $this->sendError('未找到相关故事信息'); } $result = []; $user = new User(); foreach ($opStories as $opStory) { $members = explode(',', $opStory['story_member']); $opStory['story_members'] = ''; $opStory['story_members'] = ''; if (count($members)>0) { $ret = db('system_user')->alias('u') ->join('hr_staff s','s.staff_id=u.user_id', 'left') ->where('u.user_type', 1) ->where('u.id', 'in', $members) ->column('s.staff_name'); $opStory['story_members'] = implode(',', $ret); //数组转字符串 } $opStory['story_managername'] = ''; $ret = db('system_user')->alias('u') ->join('hr_staff s','s.staff_id=u.user_id', 'left') ->where('u.user_type', 1) ->where('u.id', $opStory['story_manager']) ->find(); if (null != $ret) { $opStory['story_managername'] = $ret['staff_name']; } $result[] = $opStory; } return $this->sendSuccess($result); } //添加项目Story public function AddStoryInfo() { $param = request()->post(); if($param){ $insert_info = []; $insert_info['story_name'] = $param['story_name']; $insert_info['story_intro'] = $param['story_intro']; $insert_info['story_state'] = $param['story_state']; $insert_info['story_type'] = $param['story_type']; $insert_info['work_id'] = $param['work_id']; $insert_info['story_manager'] = $param['story_manager']; $insert_info['story_member'] = implode(',', $param['story_member']); $insert_info['create_time'] = date('Y-m-d H:i:s'); $date = new DateTime($param['plan_close_time']); $insert_info['plan_close_time'] = $date->format('Y-m-d H:i:s'); $ret = db('work_story_info')->insert($insert_info); if($ret){ return $this->sendSuccess('添加成功'); }else{ return $this->sendError('','添加失败'); } } } //添加项目Task /*public function AddStoryTaskInfo() { $param = request()->post(); $insert_info = []; $insert_info['story_id'] = $param['story_id']; $insert_info['task_name'] = $param['task_name']; $insert_info['task_intro'] = $param['task_intro']; $insert_info['create_time'] = $param['create_time']; $insert_info['task_processor'] = $param['task_processor']; $insert_info['task_state'] = 1; $ProjectInfoList = db('project_task')->insert($insert_info); return $this->sendSuccess($ProjectInfoList); }*/ //添加项目Task public function GetStoryTaskInfo() { $param = request()->post(); $story_id = $param['story_id']; $ret = db('work_story_info')->alias('y') ->join('system_user u', 'u.id = y.story_manager', 'left') ->join('work_story_state p', 'p.id =y.story_state', 'left') ->join('hr_staff h', 'h.staff_id =u.user_id', 'left') ->where('y.story_id', $story_id) ->field('y.*, h.staff_name as story_manager_name, p.desp as story_state_desp') ->find(); return $this->sendSuccess($ret); } public function upStoryType() { $param = request()->post(); if ($param){ $ret = db('work_story_info')->where('story_id',$param['story_id'])->update(['story_state'=>$param['story_type']]); if ($ret){ return $this->sendSuccess('修改成功'); }else{ return $this->sendError('','修改失败'); } }else{ return $this->sendError('','修改失败'); } } /*public function GetTaskTypeList() { $ret = db('project_task_state')->select(); return $this->sendSuccess($ret); }*/ public function upTaskType() { $param = request()->post(); if($param){ $ret = db('project_task')->where('task_id',$param['task_id'])->update(['task_state'=>$param['task_type']]); if($ret){ return $this->sendSuccess('修改成功'); }else{ return $this->sendError('','修改失败'); } } } public function GetStoryMemberList() { $param = request()->post(); if ($param) { // 初始化 $array 为空数组 $array = []; $story_info_member = []; $story_info = db('work_story_info') ->where('story_id', $param['story_id']) ->find(); if ($story_info) { $story_info_member = explode(',', $story_info['story_member']); foreach ($story_info_member as $memberId) { $ret = db('system_user')->alias('u') ->join('hr_staff s','s.staff_id=u.user_id', 'left') ->where('u.user_type', 1) ->where('u.id', $memberId) ->find(); $item['id'] = $memberId; $item['staff_name'] = $ret['staff_name']; $array[] = $item; } } return $this->sendSuccess($array); } } public function AddStoryTaskInfo() { $param = request()->post(); $insert_info = []; $insert_info['story_id'] = $param['story_id']; $insert_info['task_intro'] = $param['task_intro']; $insert_info['create_time'] = date('Y-m-d H:i:s'); $insert_info['task_processor'] = $param['task_processor']; $insert_info['task_state'] = 1; $insert_info['plan_start_time'] = $param['plan_start_time']; $insert_info['plan_close_time'] = $param['plan_close_time']; $ProjectInfoList = db('work_task_info')->insert($insert_info); if($ProjectInfoList){ return $this->sendSuccess('添加成功'); }else{ return $this->sendError('','添加失败'); } } //获取项目Story列表 public function GetStoryTaskList() { $param = request()->post(); if ($param) { $opTasks = db('work_task_info')->alias('ot') ->join('work_task_state p', 'p.id =ot.task_state', 'left') ->where('ot.story_id', $param['story_id']) ->field('ot.*, p.desp as task_state_desp') ->select(); $user = new User(); for ($i=0; $iGetUserInfoByLoginId($opTasks[$i]['task_processor']); $ret = db('system_user')->alias('u') ->join('hr_staff s','s.staff_id=u.user_id', 'left') ->where('u.user_type', 1) ->where('u.id', $opTasks[$i]['task_processor']) ->find(); $opTasks[$i]['task_processor_name'] = $ret['staff_name']; } return $this->sendSuccess($opTasks); } } public function UpdateStoryInfo() { $param = request()->param(); if($param) { if($param['story_state'] === 4){ $param['real_close_time'] = date('Y-m-d H:i:s'); } $param['story_member'] = implode(',', $param['story_member']); //数组转字符串 $ret = db('work_story_info')->where('story_id',$param['story_id'])->update($param); if($ret){ return $this->sendSuccess('修改成功'); }else{ return $this->sendError('','修改失败'); } } } public function DeleteStory() { $param = request()->param(); if($param){ $ret = db('work_story_info')->where('story_id',$param['story_id'])->delete(); if($ret){ return $this->sendSuccess('删除成功'); }else{ return $this->sendError('','删除失败'); } } } public function GetStoryStateList() { $ret = db('work_story_state')->select(); return $this->sendSuccess($ret); } public function GetTaskStateList() { $ret = db('work_task_state')->select(); return $this->sendSuccess($ret); } public function UpdateTaskState() { $param = request()->post(); if ($param) { $updateData = ['task_state' => $param['task_state']]; if ($param['task_state'] == 4) { $updateData['real_close_time'] = date('Y-m-d H:i:s'); $task_info = db('work_task_info')->where('task_id', $param['task_id'])->find(); if ($task_info) { $createTime = $task_info['create_time']; $createTimestamp = strtotime($createTime); $currentTimestamp = time(); $timeDifference = $currentTimestamp - $createTimestamp; $updateData['consuming_time'] = $timeDifference; } } $ret = db('work_task_info')->where('task_id', $param['task_id'])->update($updateData); if ($ret) { return $this->sendSuccess('修改成功'); } else { return $this->sendError('修改失败'); } } } public function UpdateTaskInfo() { $param = request()->post(); if($param) { $update = []; $task_info = db('work_task_info')->where('task_id',$param['task_id'])->find(); if($task_info ) { $update['task_intro'] = $param['task_intro']; $update['task_processor'] = $param['task_processor']; if (isset($param['plan_start_time'])) { $update['plan_start_time'] = $param['plan_start_time']; $update['plan_close_time'] = $param['plan_close_time']; } $ret = db('work_task_info')->where('task_id',$param['task_id'])->update($update); return $this->sendSuccess('修改成功'); } else { return $this->sendError('','更新失败,任务不存在'); } } } }