Exemplo n.º 1
0
def temp_std(dtype: int, res: ResponseBase):
  data = {'temp_std_list': [],'total':0}
  r_key = f'temp_std_list_{dtype}'
  session = mysql_session.session()
  try:
    if redis_session.exists(r_key):
      data = redis_session.get_redis_str(r_key)
      pass
    else:
      temp_std_list = []
      condition = []
      condition.append(TempCraft.gmt_update >= get_startdate(dtype))
      db_data = session.query(TempCraft.weld_std,func.count('*')).filter(and_(*condition)).group_by(TempCraft.weld_std).order_by(TempCraft.weld_std).all()
      for child in db_data:
        data['total'] += child[1]
      std_dict = {'0':'控制不达标','1':'控制达标'}
      temp_std_list = mysql_init_data(db_data,std_dict,CommonListItem)
      data['temp_std_list'] = temp_std_list
      if len(temp_std_list) > 0:
        redis_session.set_redis_str(data,r_key, gr_sec(0))
      pass
  except Exception as e:
    res.error(Error.SERVER_EXCEPTION)
    logger.error(e)
    pass
  session.close()
  res.data = data
  return res
Exemplo n.º 2
0
def current_fur_list(series: str, res: ResponseBase):
    session = mysql_session.session()
    data = {'fur_list': [], 'series': ''}
    r_key = f'current_fur_list_{series}'
    try:
        if redis_session.exists(r_key):
            data = redis_session.get_redis_str(r_key)
            pass
        else:
            db_data = session.query(
                FurnaceList.furnace_id, FurnaceList.furnace_state).filter(
                    FurnaceList.furnace_series == series).order_by(
                        FurnaceList.furnace_id).all()
            fur_list = []
            if len(db_data) > 0:
                for i in db_data:
                    fur_list.append(
                        CurrentFurList(series + str(i[0]), i[1]).__dict__)
            data['fur_list'] = fur_list
            data['series'] = series
            if len(fur_list) > 0:
                redis_session.set_redis_str(data, r_key, 30)
                pass
            else:
                res.error(Error.NO_DATA)
                pass
    except Exception as e:
        res.error(Error.SERVER_EXCEPTION)
        logger.error(e)
        pass
    session.close()
    res.data = data
    return res.__dict__
Exemplo n.º 3
0
def model_state(server_ip: str, res: ResponseBase):
    data = {'model_list': []}
    r_key = f'model_list_{server_ip}'
    try:
        if redis_session.exists(r_key):
            data = redis_session.get_redis_str(r_key)
            pass
        else:
            addr = 'http://{}:5000/model_status'.format(server_ip)
            resp = s_reqs.get(addr, timeout=5)
            res_dict = resp.json()
            model_list = []
            for key in res_dict:
                if key in dict_model_index.keys():
                    model_list.append(
                        RespModelState(key, dict_model_index.get(key),
                                       res_dict.get(key)).__dict__)
                continue
            model_list.sort(key=lambda x: x['key'], reverse=False)
            data['model_list'] = model_list
            if len(model_list) > 0:
                redis_session.set_redis_str(data, r_key, 30)
            pass
        res.data = data
    except Exception as e:
        res.error(Error.SERVER_EXCEPTION)
        logger.error(e)
        pass
    return res.__dict__
Exemplo n.º 4
0
def shoulder_type_stic(dtype: int, res: ResponseBase):
  data = {'shoulder_type_list': [], 'total': 0}
  r_key = f'shoulder_type_list_{dtype}'
  session = mysql_session.session()
  try:
    if redis_session.exists(r_key):
      data = redis_session.get_redis_str(r_key)
      pass
    else:
      shoulder_type_list = []
      condition = []
      condition.append(ShoulderCraft.gmt_update >= get_startdate(dtype))
      db_data = session.query(ShoulderCraft.shoulder_type,func.count('*')).filter(and_(*condition)).group_by(ShoulderCraft.shoulder_type).order_by(ShoulderCraft.shoulder_type).all()
      for child in db_data:
        data['total'] += child[1]
      shoulder_type_list = mysql_init_data(db_data,shoulder_model,CommonListItem)
      data['shoulder_type_list'] = shoulder_type_list
      if len(shoulder_type_list) > 0:
        redis_session.set_redis_str(data,r_key, 1)
      pass
  except Exception as e:
    res.error(Error.SERVER_EXCEPTION)
    logger.error(e)
    pass
  session.close()
  res.data = data
  return res
Exemplo n.º 5
0
def shoulder_pd_dist(dtype: int,res: ResponseBase):
  data = {'shoulder_pd_list': []}
  r_key = f'shoulder_pd_list_{dtype}'
  session = mysql_session.session()
  try:
    if redis_session.exists(r_key):
      data = redis_session.get_redis_str(r_key)
      pass
    else:
      # 查询数据库
      condition = []
      condition.append(ShoulderCraft.gmt_update >= get_startdate(dtype))
      db_data = session.query(ShoulderCraft.shoulder_powerdec).filter(and_(*condition)).all()
      shoulder_pd_list = []
      if len(db_data)>0:
        l = np.array(db_data)[:,0]
        cso = CommonSticOp(l)
        cso.get_dist(5)
        for item in cso.result:
          shoulder_pd_list.append(CommonListItem(item[0],item[1]).__dict__)
      data['shoulder_pd_list'] = shoulder_pd_list
      if len(shoulder_pd_list) > 0:
        redis_session.set_redis_str(data,r_key, 1)
      pass
  except Exception as e:
    res.error(Error.SERVER_EXCEPTION)
    logger.error(e)
    pass
  session.close()
  res.data = data
  return res
Exemplo n.º 6
0
def server_list(res: ResponseBase):
    session = mysql_session.session()
    data = {'server_list': []}
    r_key = 'server_list'
    try:
        if redis_session.exists(r_key):
            data = redis_session.get_redis_str(r_key)
            pass
        else:
            db_data = session.query(
                ServerList.server_ip).filter(ServerList.state > 0).all()
            server_list = []
            for i in db_data:
                server_list.append(i[0])
            data['server_list'] = server_list
            if len(server_list) > 0:
                redis_session.set_redis_str(data, r_key, 60 * 60 * 24)
            else:
                res.code = 1
            pass
    except Exception as e:
        res.error(Error.SERVER_EXCEPTION)
        logger.error(e)
        pass
    session.close()
    res.data = data
    return res.__dict__
Exemplo n.º 7
0
def get_server_lists(res: ResponseBase, ipt: str, idx: int, size: int):
    session = mysql_session.session()
    data = CommonList()
    r_key = "server_lists_" + ipt
    try:
        if redis_session.exists(r_key):
            # data = redis_session.hash2obj(data.__dict__, r_key)
            data = redis_session.get_redis_str(r_key)
            pass
        else:
            ipt = '%{}%'.format(ipt)
            db_data = session.query(ServerList).filter(
                and_(ServerList.server_ip.like(ipt),
                     ServerList.state > 0)).all()
            for i in db_data:
                re = RespServerList(i).__dict__
                data.list.append(re)
            data.total = len(db_data)
            if len(data.list) > 0:
                # redis_session.set_redis(data.__dict__, r_key, 60*60)
                redis_session.set_redis_str(data.__dict__, r_key, 60 * 60)
            pass
        res.data = data
    except Exception as e:
        res.error(Error.OPTION_ERR)
        logger.error(e)
        pass

    session.close()  # 关闭session
    return res
Exemplo n.º 8
0
def get_furnace_lists(res: ResponseBase, id: str, series: str, status: str,
                      idx: int, size: int):
    session = mysql_session.session()
    data = CommonList()
    # r_key = "furnace_lists_{}_{}".format(series, id)
    r_key = f'furnace_lists_{series}_{id}'
    try:
        if redis_session.exists(r_key):
            data = redis_session.get_redis_str(r_key)
            pass
        else:
            # 多条件查询
            condition = []
            if series != '':
                condition.append(FurnaceList.furnace_series == series)
            if id != '':
                condition.append(FurnaceList.furnace_id == int(id))
            if status != '':
                condition.append(FurnaceList.furnace_state == int(status))
            db_data = session.query(FurnaceList).filter(and_(*condition)).all()
            for i in db_data:
                re = RespFurnaceList(i).__dict__
                data.list.append(re)
            data.total = len(db_data)
            if len(data.list) > 0:
                redis_session.set_redis_str(data.__dict__, r_key, 60)
            pass
        res.data = data
    except Exception as e:
        res.error(Error.OPTION_ERR)
        logger.error(e)
        pass

    session.close()  # 关闭session
    return res
Exemplo n.º 9
0
def series_list(res: ResponseBase):
    session = mysql_session.session()
    data = {'series_list': []}
    r_key = 'series_list'
    try:
        if redis_session.exists(r_key):
            data = redis_session.get_redis_str(r_key)
            pass
        else:
            db_data = session.query(FurnaceList.furnace_series,
                                    func.count('*').label("count")).group_by(
                                        FurnaceList.furnace_series).all()
            series_list = []
            for i in db_data:
                series_list.append(i[0])
            series_list.sort(key=None, reverse=False)
            data['series_list'] = series_list
            if len(series_list) > 0:
                redis_session.set_redis_str(data, r_key, 60 * 60 * 24)
            pass
        pass
    except Exception as e:
        res.error(Error.SERVER_EXCEPTION)
        logger.error(e)
        pass
    session.close()
    res.data = data
    return res.__dict__
Exemplo n.º 10
0
def craft_off_prop(dtype: int,craft: str,res: ResponseBase):
  data = {'seed_off':0,'seed_total':0,'shoulder_off':0,'shoulder_total':0}
  r_key = f'craft_off_{craft}_{dtype}'
  session = mysql_session.session()
  try:
    if redis_session.exists(r_key):
      data = redis_session.get_redis_str(r_key)
      pass
    else:
      # 查询数据库
      condition = []
      db_data = []
      if craft == 'shoulder':
        condition.append(ShoulderCraft.gmt_update >= get_startdate(dtype))
        db_data = session.query(ShoulderCraft.shoulder_off,func.count('*')).filter(and_(*condition)).group_by(ShoulderCraft.shoulder_off).order_by(ShoulderCraft.shoulder_off).all()
        if len(db_data)>0:
          l = np.array(db_data)[:,1]
          data['shoulder_off'] = int(l[1])
          data['shoulder_total'] = int(l[0] + l[1])

      if craft == 'seed':
        condition.append(SeedCraft.gmt_update >= get_startdate(dtype))
        db_data = session.query(SeedCraft.seed_off,func.count('*')).filter(and_(*condition)).group_by(SeedCraft.seed_off).order_by(SeedCraft.seed_off).all()
        if len(db_data)>0:
          l = np.array(db_data)[:,1]
          data['seed_off'] = int(l[1])
          data['seed_total'] = int(l[0] + l[1])
      
  except Exception as e:
    res.error(Error.SERVER_EXCEPTION)
    logger.error(e)
    pass
  session.close()
  res.data = data
  return res
Exemplo n.º 11
0
def server_state(server_ip: str, res: ResponseBase):
    data = {'cpu_info': {}, 'memory_info': {}, 'disk_info': {}, 'gpu_info': []}
    try:
        if redis_session.exists(server_ip) == 0:
            # 不存在
            res.error(Error.NO_DATA)
            return res
        h1 = redis_session.hget(server_ip, 'cpu_info')
        if h1:
            data['cpu_info'] = json.loads(h1)
            pass
        h2 = redis_session.hget(server_ip, 'memory_info')
        if h2:
            data['memory_info'] = json.loads(h2)
            pass
        h3 = redis_session.hget(server_ip, 'gpu_info')
        if h3:
            data['gpu_info'] = json.loads(h3)
            pass
        h4 = redis_session.hget(server_ip, 'disk_info')
        if h4:
            data['disk_info'] = json.loads(h4)
            pass
        res.data = data
    except Exception as e:
        res.error(Error.SERVER_EXCEPTION)
        logger.error(e)
        pass
    return res
Exemplo n.º 12
0
def shoulder_wt_dist(dtype: int, res:ResponseBase):
  data = {'shoulder_wt_list': [], 'mean':0, 'total':0}
  r_key = f'shoulder_wt_list_{dtype}'
  session = mysql_session.session()
  try:
    if redis_session.exists(r_key):
      data = redis_session.get_redis_str(r_key)
      pass
    else:
      # 查询数据库
      condition = []
      condition.append(ShoulderCraft.gmt_update >= get_startdate(dtype))
      db_data = session.query(ShoulderCraft.shoulder_wt).filter(and_(*condition)).all()
      shoulder_wt_list = []
      if len(db_data)>0:
        l = np.array(db_data)[:,0]
        data['mean'] = round(np.mean(l),4)
        data['total'] = len(l)
        # for key,value in interval_static(l).items():
        #   shoulder_wt_list.append(CommonFitListItem(key,value,0).__dict__)
        cso = CommonSticOp(l)
        cso.get_dist_fit()
        for item in cso.result:
          shoulder_wt_list.append(CommonFitListItem(item[0],item[1],round(item[2],4)).__dict__)
      data['shoulder_wt_list'] = shoulder_wt_list
      if len(shoulder_wt_list) > 0:
        redis_session.set_redis_str(data,r_key, 1)
      pass
  except Exception as e:
    res.error(Error.SERVER_EXCEPTION)
    logger.error(e)
    pass
  session.close()
  res.data = data
  return res
Exemplo n.º 13
0
def temp_type_stic(dtype: int, res: ResponseBase):
  data = {'temp_type_list': [],'total':0}
  r_key = f'temp_type_list_{dtype}'
  session = mysql_session.session()
  try:
    if redis_session.exists(r_key):
      data = redis_session.get_redis_str(r_key)
      pass
    else:
      temp_type_list = []
      condition = []
      condition.append(TempCraft.gmt_update >= get_startdate(dtype))
      db_data = session.query(TempCraft.weld_type,func.count('*')).filter(and_(*condition)).group_by(TempCraft.weld_type).order_by(TempCraft.weld_type).all()
      for child in db_data:
        data['total'] += child[1]
      # tm_keys_list = list(temp_model.keys())
      # temp_keys_list = []
      # for item in db_data:
      #   temp_keys_list.append(f'{item[0]}')
      #   temp_type_list.append(CommonListItem(temp_model[f'{item[0]}'],item[1]).__dict__)
      # d_set = sort(list(set(tm_keys_list).difference(set(temp_keys_list))))
      # for i in d_set:
      #   temp_type_list.insert(tm_keys_list.index(i),CommonListItem(temp_model[f'{i}'],0).__dict__)
      temp_type_list = mysql_init_data(db_data,temp_model,CommonListItem)
      data['temp_type_list'] = temp_type_list
      if len(temp_type_list) > 0:
        redis_session.set_redis_str(data,r_key, gr_sec(0))
      pass
  except Exception as e:
    res.error(Error.SERVER_EXCEPTION)
    logger.error(e)
    pass
  session.close()
  res.data = data
  return res
Exemplo n.º 14
0
def model_state(server_ip: str, res: ResponseBase):
    data = {'model_list': []}
    try:
        if redis_session.exists(server_ip) == 0:
            res.error(Error.NO_DATA)
            return res
        h = redis_session.hget(server_ip, 'model_list')
        if h:
            data['model_list'] = json.loads(h)
            pass
        res.data = data
    except Exception as e:
        res.error(Error.SERVER_EXCEPTION)
        logger.error(e)
        pass
    return res
Exemplo n.º 15
0
def history_broken(type: int, res: ResponseBase):
    session = mysql_session.session()
    data = {'broken_list': []}
    r_key = f'history_broken_{type}'
    try:
        if redis_session.exists(r_key):
            data = redis_session.get_redis_str(r_key)
            pass
        else:
            dt_ago = (datetime.now() - timedelta(days=30)).date()
            if type == '1':  # shouldering
                db_data = session.query(
                    BrokenHistoryResult.date,
                    func.sum(
                        BrokenHistoryResult.shouldering_broken_nums).label(
                            "count")).filter(
                                BrokenHistoryResult.date >= dt_ago).group_by(
                                    BrokenHistoryResult.date).order_by(
                                        BrokenHistoryResult.date).all()
            elif type == '2':
                db_data = session.query(
                    BrokenHistoryResult.date,
                    func.sum(BrokenHistoryResult.diameter_broken_nums).label(
                        "count")).filter(
                            BrokenHistoryResult.date >= dt_ago).group_by(
                                BrokenHistoryResult.date).order_by(
                                    BrokenHistoryResult.date).all()
            else:
                db_data = []
                pass
            broken_list = []
            for i in db_data:
                broken_list.append(
                    CommonListItem(str(i[0]), int(i[1])).__dict__)
            data['broken_list'] = broken_list
            if len(broken_list) > 0:
                redis_session.set_redis_str(data, r_key, 60 * 60 * 2)
    except Exception as e:
        res.error(Error.SERVER_EXCEPTION)
        logger.error(e)
        pass
    session.close()
    res.data = data
    return res.__dict__
Exemplo n.º 16
0
def seed_type_stic(dtype: int, res: ResponseBase):
  data = {'seed_type_list': [], 'total':0}
  r_key = f'seed_type_list_{dtype}'
  session = mysql_session.session()
  try:
    if redis_session.exists(r_key):
      data = redis_session.get_redis_str(r_key)
      pass
    else:
      seed_type_list = []
      condition = []
      condition.append(SeedCraft.gmt_update >= get_startdate(dtype))
      condition.append(SeedCraft.seed_type <= 4)
      db_data = session.query(SeedCraft.seed_type,func.count('*')).filter(and_(*condition)).group_by(SeedCraft.seed_type).order_by(SeedCraft.seed_type).all()
      for child in db_data:
        data['total'] += child[1]
      # db_data = session.query(SeedCraft.seed_type,func.count(case(whens=((SeedCraft.seed_type.in_([1,2,3,4]),1),),else_=0))).filter(and_(*condition)).group_by(SeedCraft.seed_type).all()
      # sm_keys_list = list(seed_model.keys())
      # temp_keys_list = []
      # for item in db_data:
      #   temp_keys_list.append(f'{item[0]}')
      #   seed_type_list.append(CommonListItem(seed_model[f'{item[0]}'],item[1]).__dict__)
      
      # # 初始化未添加的内容
      # d_map = map(int,list(set(sm_keys_list).difference(set(temp_keys_list))))
      # d_set = sorted(list(d_map))
      # for i in d_set:
      #   seed_type_list.insert(sm_keys_list.index(f'{i}'),CommonListItem(seed_model[f'{i}'],0).__dict__)
      seed_type_list = mysql_init_data(db_data,seed_model,CommonListItem)
      data['seed_type_list'] = seed_type_list
      if len(seed_type_list) > 0:
        redis_session.set_redis_str(data,r_key, 60)
      pass
  except Exception as e:
    res.error(Error.SERVER_EXCEPTION)
    logger.error(e)
    pass
  session.close()
  res.data = data
  return res
Exemplo n.º 17
0
def temp_wt_group_dist(dtype: int, res: ResponseBase):
  data = {'temp_wtg_list': [],'mean_list':[]}
  r_key = f'temp_wtg_list_{dtype}'
  session = mysql_session.session()
  try:
    if redis_session.exists(r_key):
      data = redis_session.get_redis_str(r_key)
      pass
    else:
      # 查询数据库
      temp_wtg_list = []
      mean_list = []
      for i in temp_model.keys():
        condition = []
        condition.append(TempCraft.gmt_update >= get_startdate(dtype))
        condition.append(TempCraft.weld_type == int(i))
        db_data = session.query(TempCraft.weld_wt,TempCraft.weld_type).filter(and_(*condition)).all()
        if len(db_data):
          l = np.array(db_data)[:,0]
          # mean_list.append({'type':temp_model[i],'mean':np.mean(l),'count':len(l)})
          cso = CommonSticOp(l)
          cso.get_dist(interv=1)
          for item in cso.result:
            temp_wtg_list.append(GroupListItem(temp_model[i],item[0],item[1]).__dict__)
          
      data['temp_wtg_list'] = temp_wtg_list
      # data['mean_list'] = mean_list
      if len(temp_wtg_list) > 0 and len(mean_list) > 0:
        # redis_session.set_redis_str(data,r_key, 10)
        redis_session.set_redis_str(data,r_key,gr_sec(0))
      pass
  except Exception as e:
    res.error(Error.SERVER_EXCEPTION)
    logger.error(e)
    pass
  session.close()
  res.data = data
  return res
Exemplo n.º 18
0
def server_state(server_ip: str, res: ResponseBase):
    data = {'gpu_info': [], 'memory_info': {}, 'disk_info': {}, 'cpu_info': {}}
    r_key = f'server_state_{server_ip}'
    try:
        if redis_session.exists(r_key):
            data = redis_session.get_redis_str(r_key)
            pass
        else:
            addr = 'http://{}:5000/server_status'.format(server_ip)
            resp = s_reqs.get(addr, timeout=5)
            res_obj = dict2obj(resp.json())
            data['cpu_info'] = CpuInfo(res_obj.cpu_info).__dict__
            data['memory_info'] = MemoryInfo(res_obj.memory_info).__dict__
            data['disk_info'] = DiskInfo(res_obj.disk_info).__dict__
            for item in res_obj.gpu_info:
                data['gpu_info'].append(GpuInfo(item).__dict__)
            redis_session.set_redis_str(data, r_key, 31)
        res.data = data
    except Exception as e:
        res.error(Error.SERVER_EXCEPTION)
        # logger.error(e)
        pass
    return res.__dict__
Exemplo n.º 19
0
def temp_ot(dtype: int, res: ResponseBase):
  data = {'temp_ot_list':[]}
  r_key = f'temp_ot_list_{dtype}'
  session = mysql_session.session()
  try:
    if redis_session.exists(r_key):
      data = redis_session.get_redis_str(r_key)
      pass
    else:
      temp_ot_list = []
      for i in temp_model.keys():
        condition = []
        condition.append(TempCraft.gmt_update >= get_startdate(dtype))
        condition.append(TempCraft.weld_type == int(i))
        db_data = session.query(TempCraft.weld_wt,TempCraft.weld_type).filter(and_(*condition)).all()
        # 计算超时
        if len(db_data)>0:
          l = np.array(db_data)[:,0]
          rest = calculate_ot(l,2)
          temp_ot_list.append(GroupListItem('超时',temp_model[i],rest[0]).__dict__)
          temp_ot_list.append(GroupListItem('未超时',temp_model[i],rest[1]).__dict__)
        else:
          temp_ot_list.append(GroupListItem('超时',temp_model[i],0).__dict__)
          temp_ot_list.append(GroupListItem('未超时',temp_model[i],0).__dict__)

      data['temp_ot_list'] = temp_ot_list
      if len(temp_ot_list) > 0:
        redis_session.set_redis_str(data,r_key, 60)
      pass
      pass
  except Exception as e:
    res.error(Error.SERVER_EXCEPTION)
    logger.error(e)
    pass
  session.close()
  res.data = data
  return res
Exemplo n.º 20
0
def online_fur(res: ResponseBase):
    session = mysql_session.session()
    data = {'online_list': []}
    r_key = 'online_list'
    try:
        if redis_session.exists(r_key):
            data = redis_session.get_redis_str(r_key)
            pass
        else:
            db_data = session.query(
                FurnaceList.furnace_state,
                func.count('*').label("count")).filter(
                    FurnaceList.furnace_state < 99).group_by(
                        FurnaceList.furnace_state).order_by(
                            FurnaceList.furnace_state).all()
            # dm_keys_list = list(dict_model.keys())
            # temp_keys_list = []
            # for item in db_data:
            #     temp_keys_list.append(f'{item[0]}')
            #     data.online_list.append(CommonListItem(dict_model[f'{item[0]}'], item[1]).__dict__)
            # d_map = map(int,list(set(dm_keys_list).difference(set(temp_keys_list))))
            # d_set = sorted(list(d_map))
            # for i in d_set:
            #     data.online_list.insert(dm_keys_list.index(f'{i}'),CommonListItem(dict_model[f'{i}'],0).__dict__)
            online_list = mysql_init_data(db_data, dict_model, CommonListItem)
            data['online_list'] = online_list
            if len(online_list) > 0:
                redis_session.set_redis_str(data, r_key, 60)
            pass
    except Exception as e:
        res.error(Error.SERVER_EXCEPTION)
        logger.error(e)
        pass
    session.close()
    res.data = data
    return res.__dict__