generated from liutk/owl-admin-base
审核状态排序
parent
d626c7516b
commit
06c5c901ed
|
|
@ -2,11 +2,12 @@
|
|||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Agreement;
|
||||
use App\Http\Resources\AgreementResource;
|
||||
use App\Admin\Services\{AgreementService, WorkFlowService};
|
||||
use App\Exceptions\RuntimeException;
|
||||
use App\Http\Resources\AgreementResource;
|
||||
use App\Models\Agreement;
|
||||
use App\Models\WorkflowCheck;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
/**
|
||||
|
|
@ -20,6 +21,7 @@ class AgreementController extends Controller
|
|||
$list = Agreement::with(['workflow'])
|
||||
->where('employee_id', $user->id)
|
||||
->filter($request->all())
|
||||
->orderByDesc(WorkflowCheck::checkStatusSortBuilder(new Agreement()))
|
||||
->orderBy('id', 'desc')
|
||||
->paginate($request->input('per_page'));
|
||||
|
||||
|
|
|
|||
|
|
@ -2,12 +2,13 @@
|
|||
|
||||
namespace App\Http\Controllers\Api\Hr;
|
||||
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\HolidayApply;
|
||||
use App\Http\Resources\HolidayApplyResource;
|
||||
use App\Admin\Services\{HolidayApplyService, WorkFlowService};
|
||||
use App\Exceptions\RuntimeException;
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Resources\HolidayApplyResource;
|
||||
use App\Models\HolidayApply;
|
||||
use App\Models\WorkflowCheck;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
/**
|
||||
|
|
@ -18,9 +19,11 @@ class HolidayController extends Controller
|
|||
public function index(Request $request)
|
||||
{
|
||||
$user = $this->guard()->user();
|
||||
|
||||
$list = HolidayApply::with(['type', 'workflow'])
|
||||
->where('employee_id', $user->id)
|
||||
->filter($request->all())
|
||||
->where('employee_id', $user->id)
|
||||
->orderByDesc(WorkflowCheck::checkStatusSortBuilder(new HolidayApply()))
|
||||
->orderBy('id', 'desc')
|
||||
->paginate($request->input('per_page'));
|
||||
|
||||
|
|
|
|||
|
|
@ -2,12 +2,13 @@
|
|||
|
||||
namespace App\Http\Controllers\Api\Hr;
|
||||
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\OfficalBusiness;
|
||||
use App\Http\Resources\OfficalBusinessResource;
|
||||
use App\Admin\Services\{OfficalBusinessService, WorkFlowService};
|
||||
use App\Exceptions\RuntimeException;
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Resources\OfficalBusinessResource;
|
||||
use App\Models\OfficalBusiness;
|
||||
use App\Models\WorkflowCheck;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
/**
|
||||
|
|
@ -21,6 +22,7 @@ class OfficalBusinessController extends Controller
|
|||
$list = OfficalBusiness::with(['workflow'])
|
||||
->where('employee_id', $user->id)
|
||||
->filter($request->all())
|
||||
->orderByDesc(WorkflowCheck::checkStatusSortBuilder(new OfficalBusiness()))
|
||||
->orderBy('id', 'desc')
|
||||
->paginate($request->input('per_page'));
|
||||
|
||||
|
|
@ -43,7 +45,7 @@ class OfficalBusinessController extends Controller
|
|||
try {
|
||||
DB::beginTransaction();
|
||||
if (!$service->store($data)) {
|
||||
throw new RuntimeException($result);
|
||||
throw new RuntimeException($service->getError());
|
||||
}
|
||||
$model = $service->getCurrentModel();
|
||||
$workflow = WorkFlowService::make();
|
||||
|
|
|
|||
|
|
@ -2,12 +2,13 @@
|
|||
|
||||
namespace App\Http\Controllers\Api\Hr;
|
||||
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\OvertimeApply;
|
||||
use App\Http\Resources\OvertimeApplyResource;
|
||||
use App\Admin\Services\{OvertimeApplyService, WorkFlowService};
|
||||
use App\Exceptions\RuntimeException;
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Resources\OvertimeApplyResource;
|
||||
use App\Models\OvertimeApply;
|
||||
use App\Models\WorkflowCheck;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
/**
|
||||
|
|
@ -21,6 +22,7 @@ class OvertimeController extends Controller
|
|||
$list = OvertimeApply::with(['workflow'])
|
||||
->where('employee_id', $user->id)
|
||||
->filter($request->all())
|
||||
->orderByDesc(WorkflowCheck::checkStatusSortBuilder(new OvertimeApply()))
|
||||
->orderBy('id', 'desc')
|
||||
->paginate($request->input('per_page'));
|
||||
|
||||
|
|
|
|||
|
|
@ -2,14 +2,15 @@
|
|||
|
||||
namespace App\Http\Controllers\Api\Hr;
|
||||
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\EmployeePromotion;
|
||||
use App\Http\Resources\EmployeePromotionResource;
|
||||
use App\Admin\Services\{EmployeePromotionService, WorkFlowService};
|
||||
use App\Exceptions\RuntimeException;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use App\Enums\PromotionStatus;
|
||||
use App\Exceptions\RuntimeException;
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Resources\EmployeePromotionResource;
|
||||
use App\Models\EmployeePromotion;
|
||||
use App\Models\WorkflowCheck;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
/**
|
||||
* 升职申请
|
||||
|
|
@ -25,9 +26,10 @@ class PromotionController extends Controller
|
|||
$list = EmployeePromotion::with(['workflow', 'invitor', 'job'])
|
||||
->where('employee_id', $user->id)
|
||||
->filter($request->all())
|
||||
->orderByDesc(WorkflowCheck::checkStatusSortBuilder(new EmployeePromotion()))
|
||||
->orderBy('id', 'desc')
|
||||
->paginate($request->input('per_page'));
|
||||
|
||||
|
||||
return EmployeePromotionResource::collection($list);
|
||||
}
|
||||
|
||||
|
|
@ -42,7 +44,7 @@ class PromotionController extends Controller
|
|||
->filter($request->all())
|
||||
->orderBy('id', 'desc')
|
||||
->paginate($request->input('per_page'));
|
||||
|
||||
|
||||
return EmployeePromotionResource::collection($list);
|
||||
}
|
||||
|
||||
|
|
@ -92,7 +94,7 @@ class PromotionController extends Controller
|
|||
throw new RuntimeException($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function update($id, Request $request, EmployeePromotionService $service)
|
||||
{
|
||||
$user = $this->guard()->user();
|
||||
|
|
|
|||
|
|
@ -2,14 +2,15 @@
|
|||
|
||||
namespace App\Http\Controllers\Api\Hr;
|
||||
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use Illuminate\Http\{Request, Response};
|
||||
use App\Models\EmployeeSignRepair;
|
||||
use App\Http\Resources\{EmployeeSignRepairResource, WorkflowLogResource};
|
||||
use App\Admin\Services\{EmployeeSignRepairService, WorkFlowService};
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use App\Exceptions\RuntimeException;
|
||||
use App\Enums\{CheckStatus};
|
||||
use App\Exceptions\RuntimeException;
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Resources\{EmployeeSignRepairResource, WorkflowLogResource};
|
||||
use App\Models\EmployeeSignRepair;
|
||||
use App\Models\WorkflowCheck;
|
||||
use Illuminate\Http\{Request, Response};
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
/**
|
||||
* 补卡申请
|
||||
|
|
@ -22,6 +23,7 @@ class SignRepairController extends Controller
|
|||
$list = EmployeeSignRepair::with(['workflow'])
|
||||
->where('employee_id', $user->id)
|
||||
->filter($request->all())
|
||||
->orderByDesc(WorkflowCheck::checkStatusSortBuilder(new EmployeeSignRepair()))
|
||||
->orderBy('id', 'desc')
|
||||
->paginate($request->input('per_page'));
|
||||
return EmployeeSignRepairResource::collection($list);
|
||||
|
|
@ -66,7 +68,7 @@ class SignRepairController extends Controller
|
|||
if (!$model->canUpdate()) {
|
||||
throw new RuntimeException('审核中, 无法修改');
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
if (!$service->update($id, $request->all())) {
|
||||
|
|
|
|||
|
|
@ -25,7 +25,8 @@ class ReimbursementController extends Controller
|
|||
$reimbursements = $user->reimbursements()
|
||||
->with(['type', 'workflow'])
|
||||
->filter($request->input())
|
||||
->sort('created_at', 'desc')
|
||||
->orderByDesc(WorkflowCheck::checkStatusSortBuilder(new Reimbursement()))
|
||||
->orderBy('id', 'desc')
|
||||
->paginate($request->input('per_page', 20));
|
||||
|
||||
return ReimbursementResource::collection($reimbursements);
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ use App\Traits\HasDateTimeFormatter;
|
|||
use EloquentFilter\Filterable;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\Relation;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
/**
|
||||
* 审核申请
|
||||
|
|
@ -79,4 +80,18 @@ class WorkflowCheck extends Model
|
|||
default => '',
|
||||
};
|
||||
}
|
||||
|
||||
public static function checkStatusSortBuilder(Model $instance, $column = 'id')
|
||||
{
|
||||
$mysqlScript = <<<'MySQL'
|
||||
CASE
|
||||
WHEN check_status = 2 THEN 100
|
||||
ELSE 0
|
||||
END as check_status_weight
|
||||
MySQL;
|
||||
|
||||
return static::select(DB::raw($mysqlScript))
|
||||
->where('subject_type', $instance->getMorphClass())
|
||||
->whereColumn('subject_id', "{$instance->getTable()}.{$column}");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue