<?php

namespace catchAdmin\worklocation\model;

use catcher\base\CatchModel as Model;
use catchAdmin\permissions\model\DataRangScopeTrait;
use think\facade\Db;

class Worklocation extends Model
{

    use DataRangScopeTrait;
    // 表名
    public $name = 'work_location';
    // 数据库字段映射
    public $field = array(
        'id',
        // 风场编号
        'wind_id',
        // 风机编号
        'fan_id',
        // 工作位置
        'work_local',
        // 所属部件
        'parts',
        // 螺栓样式
        'bolt_style',
        // 螺栓型号
        'boit_type',
        // 编号
        'number',
        // 备注说明
        'info',
        // 创建人ID
        'creator_id',
        // 创建时间
        'created_at',
        // 更新时间
        'updated_at',
        // 软删除
        'deleted_at',
        // 扭矩
        'torque',
        // 压力
        'pressure',
        // 外径
        'external_diameter',
    );
     public function getList()
    {
            return $this->dataRange()
            ->catchSearch()
            ->append(['department_name','wind_name','fan_number','work_local_name','parts_name','bolt_style_name','boit_type_name','work_name'])
            ->field('*')
            ->catchOrder()
            ->creator()
            ->paginate();
    }
    //获取部门名称
    public function getDepartmentNameAttr()
    {
       $dep_id = Db::name('wind')->where('id',$this->wind_id)->value('department_id');
       $name = Db::name('departments')->where('id',$dep_id)->where('status',1)->value('department_name');
       return $name;
    }

    /**
     * 获取风场名称
     *
     * @return void
     */
    public function getWindNameAttr()
    {
        $wind_id = $this->wind_id;
        $wind_name =  Db::name('wind')->where('id',$wind_id)->value('name');
        return $wind_name;

    }
    //获取操作人员
    public function getWorkNameAttr()
    {
        $user_id = $this->creator_id;
        $name =  Db::name("users")->where('id',$user_id)->value('realname');
        return $name;
    }
   
    /**
     * 获取风机机位号
     * @return void
     */
    public function getFanNumberAttr()
    {
        $fan_id = $this->fan_id;
        $fan_number =  Db::name('fan')->where('id',$fan_id)->value('number');
        return $fan_number;
    }
    /**
     * 获取部件名称
     *
     * @return void
     */
    public function getPartsNameAttr()
    {
        $parts = $this->parts;
        $value = $this->get_dict_data(1,$parts);
        return $value;
    }
    //获取工作位置型号
    public function getWorkLocalNameAttr()
    {
        $code = $this->work_local;
        $value = $this->get_dict_data(2,$code);
        return $value;
    }
    /**
     * 获取螺栓样式
     *
     * @return void
     */
    public function  getBoltStyleNameAttr()
    {
    
        $code = $this->bolt_style;
        $value = $this->get_dict_data(3,$code);
        return $value;
    }
    /**
     * 螺栓型号
     *
     * @return void
     */
    public function getBoitTypeNameAttr()
    {
        $code = $this->boit_type;
        $value = $this->get_dict_data(4,$code);
        return $value;
    }

   /**
    * 
    * @param [type] $type 类型
    * @param [type] $value 唯一value
    * @return void
    */
    public function get_dict_data($type,$value)
    {
        $where[]=['device_type',"=",$type];
        $where[] = ['value','=',$value];
        $name = Db::name('maintenance_mapper')->where($where)->value('name');
        return $name;
    }
  
   //搜索

//    public function searchNumberAttr($query, $value, $data)
//    {
//        return $query->where('number', 'like', '%'.$value.'%');
//    }
  /**
     * 统计属性
     * 根据时间 压力和扭矩力线性图
     */
    public function getTotal()
    {
        
        
    }












    

        
}