generated from liutk/owl-admin-base
Update
parent
d023d07127
commit
9b9d3813f6
|
|
@ -209,7 +209,7 @@ class PlanController extends AdminController
|
|||
amis()->TableColumn('completed_at', __('plan.task.completed_at')),
|
||||
amis()->TableColumn('created_at', __('plan.task.created_at')),
|
||||
])
|
||||
->visibleOn('${plan_status == '.PlanStatus::Published->value.' and planable_type == "'.$planableTypeLedger.'"}'),
|
||||
->visibleOn('${plan_status == '.PlanStatus::Published->value.' && planable_type == "'.$planableTypeLedger.'"}'),
|
||||
|
||||
// 业绩指标
|
||||
amis()->CRUDTable()
|
||||
|
|
@ -236,7 +236,7 @@ class PlanController extends AdminController
|
|||
->visible(Admin::user()->can('admin.plan.plans.task_delete')),
|
||||
]),
|
||||
])
|
||||
->visibleOn('${plan_status == '.PlanStatus::Published->value.' and planable_type == "'.$planableTypePerformance.'"}'),
|
||||
->visibleOn('${plan_status == '.PlanStatus::Published->value.' && planable_type == "'.$planableTypePerformance.'"}'),
|
||||
|
||||
// 清洁卫生
|
||||
amis()->CRUDTable()
|
||||
|
|
@ -261,7 +261,7 @@ class PlanController extends AdminController
|
|||
->visible(Admin::user()->can('admin.plan.plans.task_delete')),
|
||||
]),
|
||||
])
|
||||
->visibleOn('${plan_status == '.PlanStatus::Published->value.' and planable_type == "'.$planableTypeHygiene.'"}'),
|
||||
->visibleOn('${plan_status == '.PlanStatus::Published->value.' && planable_type == "'.$planableTypeHygiene.'"}'),
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,17 +2,21 @@
|
|||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use Illuminate\Http\{Request, Response};
|
||||
use Illuminate\Database\Eloquent\Relations\Relation;
|
||||
use App\Http\Resources\WorkflowLogResource;
|
||||
use App\Enums\CheckStatus;
|
||||
use App\Models\WorkflowCheck;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Validation\Rule;
|
||||
use App\Admin\Services\WorkFlowService;
|
||||
use App\Enums\CheckStatus;
|
||||
use App\Exceptions\RuntimeException;
|
||||
use App\Http\Resources\TaskResource;
|
||||
use App\Http\Resources\WorkflowLogResource;
|
||||
use App\Models\Task;
|
||||
use App\Models\TaskHygiene;
|
||||
use App\Models\TaskLedger;
|
||||
use App\Models\WorkflowCheck;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Relations\MorphTo;
|
||||
use Illuminate\Database\Eloquent\Relations\Relation;
|
||||
use Illuminate\Http\{Request, Response};
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class WorkflowController extends Controller
|
||||
{
|
||||
|
|
@ -34,7 +38,7 @@ class WorkflowController extends Controller
|
|||
}
|
||||
|
||||
$query = $model::query()->with($include)
|
||||
->whereHas('workflow', fn($q) => $q->where('check_status', CheckStatus::Processing))
|
||||
// ->whereHas('workflow', fn($q) => $q->where('check_status', CheckStatus::Processing))
|
||||
->whereHas('workflow.logs', fn($q) => $q->own($user))
|
||||
->orderBy('created_at', 'desc');
|
||||
|
||||
|
|
@ -57,6 +61,9 @@ class WorkflowController extends Controller
|
|||
$request->validate([
|
||||
'subject_type' => 'required',
|
||||
]);
|
||||
|
||||
$user = $request->user();
|
||||
|
||||
$subjectType = $request->input('subject_type');
|
||||
$model = Relation::getMorphedModel($subjectType);
|
||||
$resource = $this->mapResource($model);
|
||||
|
|
@ -66,11 +73,37 @@ class WorkflowController extends Controller
|
|||
$explodes = explode(',', $request->input('include'));
|
||||
$include = array_merge($include, $explodes);
|
||||
}
|
||||
$info = $model::query()->with($include)->findOrFail($id);
|
||||
|
||||
switch ($model) {
|
||||
case TaskHygiene::class:
|
||||
$info = tap($info->task)->setRelation('taskable', $info->unsetRelation('task'));
|
||||
$info = Task::with([
|
||||
'taskable' => function (MorphTo $morphTo) {
|
||||
$morphTo->morphWith([
|
||||
TaskHygiene::class => ['workflow', 'store'],
|
||||
TaskLedger::class => ['store'],
|
||||
]);
|
||||
},
|
||||
])->whereHasMorph(
|
||||
'taskable',
|
||||
[TaskHygiene::class, TaskLedger::class],
|
||||
function (Builder $query, string $type) use ($user) {
|
||||
switch ($type) {
|
||||
case TaskLedger::class:
|
||||
case TaskHygiene::class:
|
||||
if ($user->isStoreMaster()) {
|
||||
$query->where('store_id', $user->store_id);
|
||||
} else {
|
||||
$query->whereRaw('1!=1');
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
)->findOrFail($id);
|
||||
$info->taskable->setRelation('task', $info->withoutRelations());
|
||||
break;
|
||||
|
||||
default:
|
||||
$info = $model::query()->with($include)->findOrFail($id);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue