Station.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace App;
  3. use App\Traits\ModelTimeFormat;
  4. use Illuminate\Database\Eloquent\Model;
  5. use Illuminate\Database\Eloquent\Relations\BelongsTo;
  6. use Illuminate\Database\Eloquent\Relations\HasOne;
  7. use App\Traits\ModelLogChanging;
  8. class Station extends Model
  9. {
  10. use ModelLogChanging;
  11. use ModelTimeFormat;
  12. protected $fillable=['name', 'code', 'station_type_id','sequence','parent_id',"material_box_id","status"];
  13. const STATUS=[
  14. 0 => "正常",
  15. 1 => "占用",
  16. ];
  17. public function materialBox():BelongsTo
  18. {
  19. return $this->belongsTo(MaterialBox::class);
  20. }
  21. public function stationType(){
  22. return $this->belongsTo(StationType::class);
  23. }
  24. public function parent(){
  25. return $this->belongsTo(Station::class);
  26. }
  27. public function child(){
  28. return $this->hasOne(Station::class,'parent_id');
  29. }
  30. public function currentStationTask(){
  31. return $this->hasOne(StationTask::class)
  32. ->where('status','=','处理中');
  33. }
  34. public function stationTasks_today(){
  35. return $this->hasMany(StationTask::class)
  36. ->where('created_at','>=',now()->format('Y-m-d'))
  37. ->orderBy('status')
  38. ->orderByDesc('id')
  39. ;
  40. }
  41. public function stationTasks()
  42. { //站任务
  43. return $this->hasMany(StationTask::class,"id","station_type_id");
  44. }
  45. public function stationTypeBinMonitor(){
  46. return $this->hasOne(StationTypeBinMonitor::class);
  47. }
  48. public function pendingStationTask(): HasOne
  49. {
  50. return $this->hasOne(StationTask::class)
  51. ->where('status','=','待处理');
  52. }
  53. public function storage(): HasOne
  54. {
  55. return $this->hasOne(Storage::class);
  56. }
  57. }