作者 ZhengBing He

工单增加是否推送微信

... ... @@ -78,8 +78,7 @@ class AsideTicketController extends BaseController
*/
public function getProjects($search)
{
$projects = TicketProject::where('is_del', 0)
->where(function ($query) use ($search) {
$projects = TicketProject::where(function ($query) use ($search) {
// 查找项目名称或公司名称
$query->where('title', 'like', '%' . $search . '%')
->orWhere('company_name', 'like', '%' . $search . '%');
... ... @@ -99,8 +98,7 @@ class AsideTicketController extends BaseController
$dept_id = ManageHr::where('manage_id', $this->manage['id'])
->value('dept_id');
$lists = TicketProject::where('is_del', 0)
->when(($this->manage['role'] != 1 && $dept_id != 5), function ($query) use ($dept_id) {
$lists = TicketProject::when(($this->manage['role'] != 1 && $dept_id != 5), function ($query) use ($dept_id) {
/**
* 超管看所有项目 $this->manage['role']=1
* 全球搜: 技术部ID 1、售后部ID 2
... ... @@ -171,12 +169,13 @@ class AsideTicketController extends BaseController
$ticket->submit_username = $this->manage['name'];
$ticket->star = $request->input('star', 3);
$ticket->plan_end_at = $request->input('plan_end_at', null);
$ticket->close_wechat = $request->input('close_wechat', false);
$ticket->save();
// 分配工单参与人
$ticket->saveEngineers($request->input('engineer_ids', []));
$nickname = ManageHr::where('manage_id', $this->manage['id'])->value('nickname') ?? mb_substr($ticket->submit_username, 0, 1) . '**';
if ($project->wechat_switch)
if ($project->wechat_switch && !$ticket->close_wechat)
$project->pushWechatGroupMsg("创贸({$nickname})新增了工单(ID:{$ticket->id}),请及时处理!");
return $ticket;
});
... ... @@ -237,7 +236,7 @@ class AsideTicketController extends BaseController
->update(['status' => TicketLog::STATUS_COMPLETED, 'end_at' => now()]);
// 推动微信通知
$project = $ticket->project;
if ($project->wechat_switch)
if ($project->wechat_switch && !$ticket->close_wechat)
$project->pushWechatGroupMsg("工单(ID:{$ticket->id})已全部完成,请访问查看详情!");
$ticket->pushDing('finish');
... ...
... ... @@ -92,7 +92,7 @@ class AsideTicketLogController extends BaseController
$ticket->status = Tickets::STATUS_COMPLETED;
$ticket->end_at = now();
$project = $ticket->project;
if ($project->wechat_switch)
if ($project->wechat_switch && !$ticket->close_wechat)
$project->pushWechatGroupMsg("工单(ID:{$ticket->id})已全部完成,请访问查看详情!");
$ticket->pushDing('finish');
}
... ...
... ... @@ -66,7 +66,8 @@ class TicketChatController extends BaseController
$chat->save();
$project = $ticket->project;
$nickname = ManageHr::where('manage_id', $this->manage['id'])->value('nickname') ?? mb_substr($ticket->submit_username, 0, 1) . '**';
$project->pushWechatGroupMsg("创贸({$nickname})对工单(ID:{$ticket->id})进行了补充,请及时查看处理!");
if ($project->wechat_switch && !$ticket->close_wechat)
$project->pushWechatGroupMsg("创贸({$nickname})对工单(ID:{$ticket->id})进行了补充,请及时查看处理!");
$this->response('success', Code::SUCCESS, $chat);
}
... ...
... ... @@ -31,6 +31,7 @@ class AsideTicketStoreRequest extends FormRequest
'engineer_ids' => 'array',
'star' => 'nullable|in:1,2,3|integer',
'plan_end_at' => 'nullable|date',
'close_wechat' => 'nullable|boolean',
];
}
}
... ...
... ... @@ -53,7 +53,25 @@ class Tickets extends Base
elseif ($this->project->project_cate == 4)
$canyu[] = 85; // 黄小玉
else{
// todo 待完善
// todo V5V6 的项目, 组长能够给看到组员的工单
$leaders = [];
foreach (array_merge($engineer_ids, $canyu) as $engineer_id)
{
$engineer = ManageHr::where('manage_id', $engineer_id)->first();
if ($engineer)
{
$leader = ManageHr::where('is_leader', 1)
->where('status', ManageHr::STATUS_ONE)
->where('dept_id', $engineer->dept_id)
->where('belong_group', $engineer->belong_group)
->value('manage_id');
if ($leader)
$leaders[] = $leader;
}
}
// 合并组长 id 到 $canyu
$canyu = array_merge($canyu, $leaders);
}
$all_engineer_ids = array_unique(array_merge($canyu, $engineer_ids));
... ...