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
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
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
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
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__