# -*- encoding: utf-8 -*- """ @File : EquipmentInfoService.py @Time : 2022/4/14 17:28 @Author : stephen @Email : zhangdongming@asj6.wecom.work @Software: PyCharm """ import logging import random from django.db import transaction from Model.models import EquipmentInfoMonday, EquipmentInfoTuesday, EquipmentInfoWednesday, EquipmentInfoThursday, \ EquipmentInfoFriday, EquipmentInfoSaturday, EquipmentInfoSunday, EquipmentInfo1, EquipmentInfo2, EquipmentInfo3, \ EquipmentInfo4, EquipmentInfo5, EquipmentInfo6, EquipmentInfo7, EquipmentInfo8, EquipmentInfo9, EquipmentInfo10, \ EquipmentInfo11, EquipmentInfo12, EquipmentInfo13, EquipmentInfo14, EquipmentInfo15, EquipmentInfo16, \ EquipmentInfo17, EquipmentInfo18, EquipmentInfo19, EquipmentInfo20 from Object.utils import LocalDateTimeUtil from AnsjerPush.config import LOGGER class EquipmentInfoService: @staticmethod def get_equipment_info_obj(dt, **kwargs): """ 根据日期判断是星期几,返回相应的对象实例 @param dt: 日期 例:2022-03-03 @param kwargs: 设备信息属性值 @return: 星期一至星期天equipment_info对象实例 """ logger = logging.getLogger('info') week = LocalDateTimeUtil.date_to_week(dt) equipment_info = None if week == 1: equipment_info = EquipmentInfoMonday(**kwargs) elif week == 2: equipment_info = EquipmentInfoTuesday(**kwargs) elif week == 3: equipment_info = EquipmentInfoWednesday(**kwargs) elif week == 4: equipment_info = EquipmentInfoThursday(**kwargs) elif week == 5: equipment_info = EquipmentInfoFriday(**kwargs) elif week == 6: equipment_info = EquipmentInfoSaturday(**kwargs) elif week == 7: equipment_info = EquipmentInfoSunday(**kwargs) logger.info(type(equipment_info)) logger.info('model数据为:'.format(equipment_info)) return equipment_info @staticmethod def equipment_info_bulk_create(week_val, equipment_info_list): """ 根据week_val判断,进行表对象选择存储 @param week_val: 星期一至星期天,int类型 @param equipment_info_list: 设备信息实例列表 @return: True or False """ try: with transaction.atomic(): if equipment_info_list and len(equipment_info_list) > 0: if week_val == 0: return False if week_val == 1: EquipmentInfoMonday.objects.bulk_create(equipment_info_list) elif week_val == 2: EquipmentInfoTuesday.objects.bulk_create(equipment_info_list) elif week_val == 3: EquipmentInfoWednesday.objects.bulk_create(equipment_info_list) elif week_val == 4: EquipmentInfoThursday.objects.bulk_create(equipment_info_list) elif week_val == 5: EquipmentInfoFriday.objects.bulk_create(equipment_info_list) elif week_val == 6: EquipmentInfoSaturday.objects.bulk_create(equipment_info_list) elif week_val == 7: EquipmentInfoSunday.objects.bulk_create(equipment_info_list) return True return False except Exception as e: er_log = logging.getLogger('django') er_log.exception(repr(e)) er_log.error(repr(e)) return False @staticmethod def randoms_insert_equipment_info(**kwargs): """ 随机一个推送数据表存储数据 """ equipment_info_list = [ EquipmentInfo1(), EquipmentInfo2(), EquipmentInfo3(), EquipmentInfo4(), EquipmentInfo5(), EquipmentInfo6(), EquipmentInfo7(), EquipmentInfo8(),EquipmentInfo9(), EquipmentInfo10(), EquipmentInfo11(), EquipmentInfo12(), EquipmentInfo13(), EquipmentInfo14(),EquipmentInfo15(), EquipmentInfo16(), EquipmentInfo17(), EquipmentInfo18(),EquipmentInfo19(), EquipmentInfo20()] try: random_model = random.choice(equipment_info_list) # 实例化模型对象 equipment_info = random_model(**kwargs) equipment_info.save() except Exception as e: LOGGER.info('随机存储推送数据异常: error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))