审核状态排序

main
Jing Li 2024-05-01 22:44:40 +08:00
parent d626c7516b
commit 06c5c901ed
8 changed files with 63 additions and 34 deletions

View File

@ -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'));

View File

@ -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'));

View File

@ -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();

View File

@ -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'));

View File

@ -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();

View File

@ -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())) {

View File

@ -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);

View File

@ -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}");
}
}