MaterialBox.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace App;
  3. use Illuminate\Database\Eloquent\Model;
  4. use App\Traits\ModelLogChanging;
  5. use Illuminate\Database\Eloquent\Relations\HasOne;
  6. class MaterialBox extends Model
  7. {
  8. use ModelLogChanging;
  9. protected $fillable=['code','status',"material_box_model_id"];
  10. static public $enums=[
  11. 'status'=>[
  12. ''=>0,
  13. '在库外'=>1,
  14. '在U型线'=>2,
  15. '在缓存架'=>3,
  16. '在立库'=>4,
  17. '在出库中'=>5,
  18. '在入库中'=>6,
  19. '未知'=>7,
  20. '异常'=>8,
  21. ],
  22. ];
  23. function __construct(array $attributes = [])
  24. {
  25. foreach (self::$enums as &$enum) {
  26. $enum=$enum+array_flip($enum);
  27. }
  28. parent::__construct($attributes);
  29. }
  30. public function performTask():HasOne
  31. {
  32. return $this->hasOne(StationTaskMaterialBox::class,"material_box_id")
  33. ->whereNotIn("status",["完成","取消"]);
  34. }
  35. public function station():HasOne
  36. {
  37. return $this->hasOne(Station::class);
  38. }
  39. public function getStatusAttribute($value)
  40. {
  41. if(!$value)return '';
  42. return self::$enums['status'][$value];
  43. }
  44. public function setStatusAttribute($value)
  45. {
  46. if(!$value)return 0;
  47. $this->attributes['status']=self::$enums['status'][$value];
  48. }
  49. public function stationTaskMaterialBoxes()
  50. { //料箱任务
  51. return $this->hasMany(StationTaskMaterialBox::class,"material_box_id","id");
  52. }
  53. public function materialBoxModel()
  54. { //料箱型号
  55. return $this->belongsTo(MaterialBoxModel::class);
  56. }
  57. }