IndexHelper.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. namespace App\Http\Requests;
  3. use App\Models\ApprovalFlow;
  4. use App\Models\Asset;
  5. use App\Models\AssetGroup;
  6. use App\Models\Department;
  7. use App\Models\Enums\DisplayIndexObjectType;
  8. use App\Models\NamingRule;
  9. use App\Models\Plan;
  10. use App\Models\Project;
  11. use App\Models\Requirement;
  12. use App\Models\RequirementGroup;
  13. use App\Models\Task;
  14. use App\Models\User;
  15. trait IndexHelper
  16. {
  17. public static function getObjectMaxIndex(DisplayIndexObjectType $type,string $object_id=null):int{
  18. $result= match ($type) {
  19. DisplayIndexObjectType::ASSET => Asset::max('display_id'),
  20. DisplayIndexObjectType::ASSETGROUP => AssetGroup::max('display_id'),
  21. DisplayIndexObjectType::PLAN=>Plan::max('display_id'),
  22. DisplayIndexObjectType::REQUIREMENTGROUP=>RequirementGroup::max('display_id'),
  23. DisplayIndexObjectType::PROJECT => Project::max('display_id'),
  24. DisplayIndexObjectType::REQUIREMENT=>Requirement::max('display_id'),
  25. DisplayIndexObjectType::TASK=>Task::query()->where('project_id',$object_id)->max('display_id'),
  26. DisplayIndexObjectType::DEPARTMENT=>Department::max('display_id'),
  27. DisplayIndexObjectType::APPROVALFLOW=>ApprovalFlow::max('display_id'),
  28. DisplayIndexObjectType::NAMERULE=>NamingRule::query()->where('company_id',$object_id)->max('display_id'),
  29. };
  30. return $result >0? $result+1 :1;
  31. }
  32. }