You've already forked guangan
控价
This commit is contained in:
@ -366,241 +366,19 @@ class Ticket extends Controller
|
||||
$instance_data = $this->_vali([
|
||||
'staff_id.require'=>'请指定维修人员!',
|
||||
]);
|
||||
$staff = InspectionStaff::query()->where('id', '=', $instance_data['staff_id'])->findOrEmpty();
|
||||
if ($staff->isEmpty()) {
|
||||
$this->error('未找到维修人员信息');
|
||||
}
|
||||
$view = $ticket->views()->save([
|
||||
'staff_id'=>$instance_data['staff_id'],
|
||||
'status'=>0,
|
||||
'create_id'=>$adminInfo['id'],
|
||||
]);
|
||||
$this->success('创建成功!', $view);
|
||||
} else {
|
||||
$this->vo = $ticket;
|
||||
$this->staffs = $staffs;
|
||||
$this->fetch();
|
||||
}
|
||||
}
|
||||
|
||||
public function repair_process_create()
|
||||
{
|
||||
$data = $this->_vali([
|
||||
'ticket_id.require'=>'请指定工单ID!',
|
||||
]);
|
||||
$process = ApprovalProcess::where('type', '=', 'WXSH')->order('id', 'asc')->findOrEmpty();
|
||||
if ($process->isEmpty()) {
|
||||
$this->error('未找到可用的审核流程');
|
||||
}
|
||||
$adminInfo = $this->request->session('user');
|
||||
$ticket = TicketTicket::query()->with(['user', 'type'])->append(['imgs_arr', 'type_name'])->where('id', '=', $data['ticket_id'])->findOrEmpty();
|
||||
if ($ticket->isEmpty()) {
|
||||
$this->error('未找到工单信息');
|
||||
}
|
||||
if ($this->request->isPost()) {
|
||||
$instance_data = $this->_vali([
|
||||
'title.default'=>'核验工单审核',
|
||||
'content.default'=>'',
|
||||
]);
|
||||
ApprovalInstance::mk()->startTrans();
|
||||
try {
|
||||
$instance = ApprovalInstance::create([
|
||||
'process_id' => $process->id,
|
||||
'oid' => $ticket->id,
|
||||
'title' => $instance_data['title'],
|
||||
'content' => $instance_data['content'],
|
||||
$staff->messages()->save([
|
||||
'status'=>0,
|
||||
'current_step' => 0,
|
||||
'create_time' => date('Y-m-d H:i:s'),
|
||||
'create_by' => $adminInfo['id'],
|
||||
'create_name' => $adminInfo['username'],
|
||||
]);
|
||||
foreach ($process->steps as $index => $step) {
|
||||
$approver_id = $step['approver_id'] ?? 0;
|
||||
if ($index == 0) {
|
||||
if ($step['approver_type'] == 3) {
|
||||
$approve_data = $this->_vali([
|
||||
'approver_id.require' => '请指定审核人!',
|
||||
]);
|
||||
$approver_id = $approve_data['approver_id'];
|
||||
}
|
||||
}
|
||||
ApprovalStep::create([
|
||||
'instance_id' => $instance->id,
|
||||
'step_number' => $index,
|
||||
'approver_type' => $step['approver_type'],
|
||||
'approver_id' => $approver_id,
|
||||
'status' => 0,
|
||||
]);
|
||||
}
|
||||
$ticket->repair_pid = $instance->id;
|
||||
$ticket->save();
|
||||
ApprovalInstance::mk()->commit();
|
||||
} catch (HttpResponseException $e) {
|
||||
ApprovalInstance::mk()->rollback();
|
||||
throw $e;
|
||||
} catch (\Exception $e) {
|
||||
ApprovalInstance::mk()->rollback();
|
||||
$this->error("创建失败");
|
||||
}
|
||||
$this->success('创建成功!');
|
||||
} else {
|
||||
$this->vo = $ticket;
|
||||
$this->process = $process;
|
||||
$this->step_index = -1;
|
||||
$this->current_step = $process->steps[0];
|
||||
$this->users = SystemUser::query()->field('id,username,nickname')->select();
|
||||
$this->fetch();
|
||||
}
|
||||
}
|
||||
|
||||
public function repair_ticket_create()
|
||||
{
|
||||
$data = $this->_vali([
|
||||
'ticket_id.require'=>'请指定工单ID!',
|
||||
]);
|
||||
$ticket = TicketTicket::query()->with(['repair_process'])->append(['imgs_arr', 'type_name'])->where('id', '=', $data['ticket_id'])->findOrEmpty();
|
||||
$staffs = InspectionStaff::query()->field('id,name,phone')->select();
|
||||
if ($ticket->isEmpty()) {
|
||||
$this->error('未找到工单信息');
|
||||
}
|
||||
if ($this->request->isPost()) {
|
||||
$adminInfo = $this->request->session('user');
|
||||
$instance_data = $this->_vali([
|
||||
'staff_id.require'=>'请指定维修人员!',
|
||||
'kj_user_id.default'=>'0',
|
||||
]);
|
||||
$ticket->kj_user_id = $instance_data['kj_user_id'];
|
||||
$repair = $ticket->repairs()->save([
|
||||
'gc_content'=>$ticket->gc_content,
|
||||
'zf_content'=>$ticket->zf_content,
|
||||
'ys_content'=>$ticket->ys_content,
|
||||
'work_days'=>$ticket->work_days,
|
||||
'staff_id'=>$instance_data['staff_id'],
|
||||
'status'=>0,
|
||||
'create_id'=>$adminInfo['id'],
|
||||
]);
|
||||
$this->success('创建成功!', $repair);
|
||||
} else {
|
||||
$this->vo = $ticket;
|
||||
$this->staffs = $staffs;
|
||||
$this->fetch();
|
||||
}
|
||||
}
|
||||
|
||||
public function repair_ticket_modify()
|
||||
{
|
||||
$data = $this->_vali([
|
||||
'ticket_id.require'=>'请指定工单ID!',
|
||||
]);
|
||||
$repair = TicketRepair::query()->where('id', '=', $data['ticket_id'])->findOrEmpty();
|
||||
if ($repair->isEmpty()) {
|
||||
$this->error('未找到工单信息');
|
||||
}
|
||||
if ($repair->ticket === null) {
|
||||
$this->error('未找到主工单信息');
|
||||
}
|
||||
if ($repair->status === 1) {
|
||||
$this->error('该工单已维修完成,无法操作!');
|
||||
}
|
||||
$adminInfo = $this->request->session('user');
|
||||
if ($repair->ticket->kj_user_id != $adminInfo['id']) {
|
||||
$this->error('您不是该工单的控价人员,无法操作!');
|
||||
}
|
||||
if ($this->request->isPost()) {
|
||||
|
||||
} else {
|
||||
$this->vo = $repair;
|
||||
$this->fetch();
|
||||
}
|
||||
}
|
||||
|
||||
public function verify_process_create()
|
||||
{
|
||||
$data = $this->_vali([
|
||||
'ticket_id.require'=>'请指定工单ID!',
|
||||
]);
|
||||
$process = ApprovalProcess::where('type', '=', 'YSSH')->order('id', 'asc')->findOrEmpty();
|
||||
if ($process->isEmpty()) {
|
||||
$this->error('未找到可用的审核流程');
|
||||
}
|
||||
$adminInfo = $this->request->session('user');
|
||||
$ticket = TicketTicket::query()->with(['user', 'type'])->append(['imgs_arr', 'type_name'])->where('id', '=', $data['ticket_id'])->findOrEmpty();
|
||||
if ($ticket->isEmpty()) {
|
||||
$this->error('未找到工单信息');
|
||||
}
|
||||
if ($this->request->isPost()) {
|
||||
$instance_data = $this->_vali([
|
||||
'title.default'=>'核验工单审核',
|
||||
'content.default'=>'',
|
||||
]);
|
||||
ApprovalInstance::mk()->startTrans();
|
||||
try {
|
||||
$instance = ApprovalInstance::create([
|
||||
'process_id' => $process->id,
|
||||
'oid' => $ticket->id,
|
||||
'title' => $instance_data['title'],
|
||||
'content' => $instance_data['content'],
|
||||
'status' => 0,
|
||||
'current_step' => 0,
|
||||
'create_time' => date('Y-m-d H:i:s'),
|
||||
'create_by' => $adminInfo['id'],
|
||||
'create_name' => $adminInfo['username'],
|
||||
]);
|
||||
foreach ($process->steps as $index => $step) {
|
||||
$approver_id = $step['approver_id'] ?? 0;
|
||||
if ($index == 0) {
|
||||
if ($step['approver_type'] == 3) {
|
||||
$approve_data = $this->_vali([
|
||||
'approver_id.require' => '请指定审核人!',
|
||||
]);
|
||||
$approver_id = $approve_data['approver_id'];
|
||||
}
|
||||
}
|
||||
ApprovalStep::create([
|
||||
'instance_id' => $instance->id,
|
||||
'step_number' => $index,
|
||||
'approver_type' => $step['approver_type'],
|
||||
'approver_id' => $approver_id,
|
||||
'status' => 0,
|
||||
]);
|
||||
}
|
||||
$ticket->verify_pid = $instance->id;
|
||||
$ticket->save();
|
||||
ApprovalInstance::mk()->commit();
|
||||
} catch (HttpResponseException $e) {
|
||||
ApprovalInstance::mk()->rollback();
|
||||
throw $e;
|
||||
} catch (\Exception $e) {
|
||||
ApprovalInstance::mk()->rollback();
|
||||
$this->error("创建失败");
|
||||
}
|
||||
$this->success('创建成功!');
|
||||
} else {
|
||||
$this->vo = $ticket;
|
||||
$this->process = $process;
|
||||
$this->step_index = -1;
|
||||
$this->current_step = $process->steps[0];
|
||||
$this->users = SystemUser::query()->field('id,username,nickname')->select();
|
||||
$this->fetch();
|
||||
}
|
||||
}
|
||||
|
||||
public function verify_ticket_create()
|
||||
{
|
||||
$data = $this->_vali([
|
||||
'ticket_id.require'=>'请指定工单ID!',
|
||||
]);
|
||||
$ticket = TicketTicket::query()->with(['repair_process'])->append(['imgs_arr', 'type_name'])->where('id', '=', $data['ticket_id'])->findOrEmpty();
|
||||
$staffs = InspectionStaff::query()->field('id,name,phone')->select();
|
||||
if ($ticket->isEmpty()) {
|
||||
$this->error('未找到工单信息');
|
||||
}
|
||||
if ($this->request->isPost()) {
|
||||
$adminInfo = $this->request->session('user');
|
||||
$instance_data = $this->_vali([
|
||||
'staff_id.require'=>'请指定维修人员!',
|
||||
]);
|
||||
$view = $ticket->verifys()->save([
|
||||
'staff_id'=>$instance_data['staff_id'],
|
||||
'status'=>0,
|
||||
'create_id'=>$adminInfo['id'],
|
||||
'title'=>'您有新的核验工单需要处理',
|
||||
'content'=>'您有新的核验工单需要处理,请及时处理。',
|
||||
]);
|
||||
$this->success('创建成功!', $view);
|
||||
} else {
|
||||
@ -610,8 +388,6 @@ class Ticket extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function my() {
|
||||
$this->title = '待我审核';
|
||||
$this->type_list = TicketType::getList();
|
||||
|
@ -6,6 +6,7 @@ use plugin\inspection\model\InspectionStaff;
|
||||
use plugin\ticket\model\ApprovalInstance;
|
||||
use plugin\ticket\model\ApprovalProcess;
|
||||
use plugin\ticket\model\ApprovalStep;
|
||||
use plugin\ticket\model\TicketRepair;
|
||||
use plugin\ticket\model\TicketReply;
|
||||
use plugin\ticket\model\TicketTicket;
|
||||
use plugin\ticket\model\TicketTicketInter;
|
||||
@ -251,16 +252,56 @@ class TicketInter extends Controller
|
||||
$adminInfo = $this->request->session('user');
|
||||
$instance_data = $this->_vali([
|
||||
'staff_id.require'=>'请指定维修人员!',
|
||||
'kj_user_id.default'=>'0',
|
||||
]);
|
||||
$staff = InspectionStaff::query()->where('id', '=', $instance_data['staff_id'])->findOrEmpty();
|
||||
if ($staff->isEmpty()) {
|
||||
$this->error('未找到维修人员信息');
|
||||
}
|
||||
$view = $ticket->repairs()->save([
|
||||
'staff_id'=>$instance_data['staff_id'],
|
||||
'status'=>0,
|
||||
'create_id'=>$adminInfo['id'],
|
||||
]);
|
||||
$staff->messages()->save([
|
||||
'status'=>0,
|
||||
'title'=>'您有新的维修工单需要处理',
|
||||
'content'=>'您有新的维修工单需要处理,请及时处理。',
|
||||
]);
|
||||
$ticket->kj_user_id = $instance_data['kj_user_id'];
|
||||
$this->success('创建成功!', $view);
|
||||
} else {
|
||||
$this->vo = $ticket;
|
||||
$this->staffs = $staffs;
|
||||
$this->users = SystemUser::query()->field('id,username,nickname')->select();
|
||||
$this->fetch();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function repair_ticket_modify()
|
||||
{
|
||||
$data = $this->_vali([
|
||||
'ticket_id.require'=>'请指定工单ID!',
|
||||
]);
|
||||
$repair = TicketRepair::query()->where('id', '=', $data['ticket_id'])->findOrEmpty();
|
||||
if ($repair->isEmpty()) {
|
||||
$this->error('未找到工单信息');
|
||||
}
|
||||
if ($repair->ticket === null) {
|
||||
$this->error('未找到主工单信息');
|
||||
}
|
||||
if ($repair->status === 1) {
|
||||
$this->error('该工单已维修完成,无法操作!');
|
||||
}
|
||||
$adminInfo = $this->request->session('user');
|
||||
if ($repair->ticket->kj_user_id != $adminInfo['id']) {
|
||||
$this->error('您不是该工单的控价人员,无法操作!');
|
||||
}
|
||||
if ($this->request->isPost()) {
|
||||
|
||||
} else {
|
||||
$this->vo = $repair;
|
||||
$this->fetch();
|
||||
}
|
||||
}
|
||||
|
@ -1,51 +0,0 @@
|
||||
<div class="layui-collapse">
|
||||
<div class="layui-colla-item">
|
||||
<div class="layui-colla-title">审核流程</div>
|
||||
<div class="layui-colla-content">
|
||||
<div class="layui-timeline">
|
||||
<div class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<h3 class="layui-timeline-title">提交审核</h3>
|
||||
</div>
|
||||
</div>
|
||||
{foreach $process.steps as $index=>$step}
|
||||
{include file="common/step_p" /}
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">创建审核单</div>
|
||||
<div class="layui-card-body">
|
||||
<form class="layui-form" data-table-id="formDemo" action="{:url()}" data-auto="true" method="post">
|
||||
<input type="hidden" name="ticket_id" value="{$vo.id}">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">审核说明</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="content" placeholder="请输入审核说明" class="layui-textarea"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
{if $current_step.approver_type == 3}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">请指定下一步审核人</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="approver_id" lay-verify="required" lay-search>
|
||||
<option value="">请选择审核人</option>
|
||||
{foreach $users as $user}
|
||||
<option value="{$user.id}">{$user.username}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn layui-btn-normal" type='submit'>立即提交</button>
|
||||
<button class="layui-btn layui-btn-primary" type="reset">重置</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
@ -1,19 +0,0 @@
|
||||
<form class="layui-form layui-card" action="{:sysuri()}" data-auto="true" method="post" autocomplete="off" style="min-height: 300px">
|
||||
<input class="layui-input layui-hide" type='hidden' value="{:input('get.ticket_id')}" name='ticket_id'>
|
||||
<input class="layui-input layui-hide" type='hidden' value='{:systoken("view_ticket_create")}' name='_token_'>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">选择维修人员</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="staff_id">
|
||||
<option value="">请选择维修负责人员</option>
|
||||
{foreach $staffs as $item}
|
||||
<option value="{$item.id}">{$item.name} ({$item.phone})</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item text-center">
|
||||
<button class="layui-btn layui-btn-normal" type='submit'>创建维修工单</button>
|
||||
<button class="layui-btn layui-btn-danger" type='button' data-confirm="确定要取消编辑吗?" data-close>取消</button>
|
||||
</div>
|
||||
</form>
|
@ -1,51 +0,0 @@
|
||||
<div class="layui-collapse">
|
||||
<div class="layui-colla-item">
|
||||
<div class="layui-colla-title">审核流程</div>
|
||||
<div class="layui-colla-content">
|
||||
<div class="layui-timeline">
|
||||
<div class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<h3 class="layui-timeline-title">提交审核</h3>
|
||||
</div>
|
||||
</div>
|
||||
{foreach $process.steps as $index=>$step}
|
||||
{include file="common/step_p" /}
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">创建审核单</div>
|
||||
<div class="layui-card-body">
|
||||
<form class="layui-form" data-table-id="formDemo" action="{:url()}" data-auto="true" method="post">
|
||||
<input type="hidden" name="ticket_id" value="{$vo.id}">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">审核说明</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="content" placeholder="请输入审核说明" class="layui-textarea"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
{if $current_step.approver_type == 3}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">请指定下一步审核人</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="approver_id" lay-verify="required" lay-search>
|
||||
<option value="">请选择审核人</option>
|
||||
{foreach $users as $user}
|
||||
<option value="{$user.id}">{$user.username}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn layui-btn-normal" type='submit'>立即提交</button>
|
||||
<button class="layui-btn layui-btn-primary" type="reset">重置</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
@ -1,19 +0,0 @@
|
||||
<form class="layui-form layui-card" action="{:sysuri()}" data-auto="true" method="post" autocomplete="off" style="min-height: 300px">
|
||||
<input class="layui-input layui-hide" type='hidden' value="{:input('get.ticket_id')}" name='ticket_id'>
|
||||
<input class="layui-input layui-hide" type='hidden' value='{:systoken("view_ticket_create")}' name='_token_'>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">选择维修人员</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="staff_id">
|
||||
<option value="">请选择维修负责人员</option>
|
||||
{foreach $staffs as $item}
|
||||
<option value="{$item.id}">{$item.name} ({$item.phone})</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item text-center">
|
||||
<button class="layui-btn layui-btn-normal" type='submit'>创建验收工单</button>
|
||||
<button class="layui-btn layui-btn-danger" type='button' data-confirm="确定要取消编辑吗?" data-close>取消</button>
|
||||
</div>
|
||||
</form>
|
@ -12,6 +12,17 @@
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">选择控价人员</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="kj_user_id">
|
||||
<option value="">请选择控价人员</option>
|
||||
{foreach $users as $item}
|
||||
<option value="{$item.id}">{$item.nickname} ({$item.phone})</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item text-center">
|
||||
<button class="layui-btn layui-btn-normal" type='submit'>创建维修工单</button>
|
||||
<button class="layui-btn layui-btn-danger" type='button' data-confirm="确定要取消编辑吗?" data-close>取消</button>
|
||||
|
Reference in New Issue
Block a user