123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- # -*- 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
- EQUIPMENT_INFO_LIST = [
- EquipmentInfo1, EquipmentInfo2, EquipmentInfo3, EquipmentInfo4, EquipmentInfo5, EquipmentInfo6,
- EquipmentInfo7, EquipmentInfo8, EquipmentInfo9, EquipmentInfo10,
- EquipmentInfo11, EquipmentInfo12, EquipmentInfo13, EquipmentInfo14, EquipmentInfo15, EquipmentInfo16,
- EquipmentInfo17, EquipmentInfo18, EquipmentInfo19, EquipmentInfo20]
- 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)
- LOGGER.info('随机存表参数:{},表:{}'.format(kwargs, random_model))
- random_model.objects.create(**kwargs)
- except Exception as e:
- LOGGER.info('随机存储推送数据异常: error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
- @staticmethod
- def randoms_choice_equipment_info():
- return random.choice(EQUIPMENT_INFO_LIST)
|