| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- <?php
- namespace App;
- use App\Traits\ModelTimeFormat;
- use Illuminate\Database\Eloquent\Model;
- use Illuminate\Database\Eloquent\Relations\BelongsTo;
- use Illuminate\Database\Eloquent\Relations\HasOne;
- use App\Traits\ModelLogChanging;
- class Station extends Model
- {
- use ModelLogChanging;
- use ModelTimeFormat;
- protected $fillable=['name', 'code', 'station_type_id','sequence','parent_id',"material_box_id","status"];
- const STATUS=[
- 0 => "正常",
- 1 => "占用",
- ];
- /*站相关 CACHE说明
- * CACHE_SHELF_OCCUPANCY_{ID} //bool:缓存架占用标记,开启此标记后连续排灯无效
- * CACHE_SHELF_MAPPING //array(map):缓存架映射标记,用来映射入库任务的真实库位 CacheShelfTaskJob:materialBoxMappingCacheShelf详细描述此流程
- * CACHE_SHELF_AVAILABLE //array(map):缓存架可用标记,映射缓存架是否可以被下达出库任务
- * */
- public function task()
- {
- return $this->hasOne(StationTaskMaterialBox::class,"station_id","id");
- }
- public function materialBox():BelongsTo
- {
- return $this->belongsTo(MaterialBox::class);
- }
- public function stationType(){
- return $this->belongsTo(StationType::class);
- }
- public function parent(){
- return $this->belongsTo(Station::class);
- }
- public function child(){
- return $this->hasOne(Station::class,'parent_id');
- }
- public function currentStationTask(){
- return $this->hasOne(StationTask::class)
- ->where('status','=','处理中');
- }
- public function stationTasks_today(){
- return $this->hasMany(StationTask::class)
- ->where('created_at','>=',now()->format('Y-m-d'))
- ->orderBy('status')
- ->orderByDesc('id');
- }
- public function stationTasks()
- { //站任务
- return $this->hasMany(StationTask::class,"id","station_type_id");
- }
- public function stationTypeBinMonitor()
- {
- return $this->hasOne(StationTypeBinMonitor::class);
- }
- public function pendingStationTask(): HasOne
- {
- return $this->hasOne(StationTask::class)
- ->where('status','=','待处理');
- }
- public function storage(): HasOne
- {
- return $this->hasOne(Storage::class);
- }
- }
|