更新
This commit is contained in:
parent
b8e2a4d1dc
commit
028a06bf13
application
@ -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']);
|
||||
|
@ -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();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user