Station.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. /*站相关 CACHE说明
  18. * CACHE_SHELF_OCCUPANCY_{ID} //bool:缓存架占用标记,开启此标记后连续排灯无效
  19. * CACHE_SHELF_AVAILABLE //array(map):缓存架可用计数器,来标识这个已取出箱子的缓存架数量,这个标识用来判定缓存架一定时间内是否仍然被操作,如果缓存架停止操作则开启处理
  20. * */
  21. public function task()
  22. {
  23. return $this->hasOne(StationTaskMaterialBox::class,"station_id","id");
  24. }
  25. public function materialBox():BelongsTo
  26. {
  27. return $this->belongsTo(MaterialBox::class);
  28. }
  29. public function stationType(){
  30. return $this->belongsTo(StationType::class);
  31. }
  32. public function parent(){
  33. return $this->belongsTo(Station::class);
  34. }
  35. public function child(){
  36. return $this->hasOne(Station::class,'parent_id');
  37. }
  38. public function currentStationTask(){
  39. return $this->hasOne(StationTask::class)
  40. ->where('status','=','处理中');
  41. }
  42. public function stationTasks_today(){
  43. return $this->hasMany(StationTask::class)
  44. ->where('created_at','>=',now()->format('Y-m-d'))
  45. ->orderBy('status')
  46. ->orderByDesc('id');
  47. }
  48. public function stationTasks()
  49. { //站任务
  50. return $this->hasMany(StationTask::class,"id","station_type_id");
  51. }
  52. public function stationTypeBinMonitor()
  53. {
  54. return $this->hasOne(StationTypeBinMonitor::class);
  55. }
  56. public function pendingStationTask(): HasOne
  57. {
  58. return $this->hasOne(StationTask::class)
  59. ->where('status','=','待处理');
  60. }
  61. }