EquipmentInfoService.py 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. # -*- encoding: utf-8 -*-
  2. """
  3. @File : EquipmentInfoService.py
  4. @Time : 2022/4/14 17:28
  5. @Author : stephen
  6. @Email : zhangdongming@asj6.wecom.work
  7. @Software: PyCharm
  8. """
  9. import logging
  10. import random
  11. from django.db import transaction
  12. from Model.models import EquipmentInfoMonday, EquipmentInfoTuesday, EquipmentInfoWednesday, EquipmentInfoThursday, \
  13. EquipmentInfoFriday, EquipmentInfoSaturday, EquipmentInfoSunday, EquipmentInfo1, EquipmentInfo2, EquipmentInfo3, \
  14. EquipmentInfo4, EquipmentInfo5, EquipmentInfo6, EquipmentInfo7, EquipmentInfo8, EquipmentInfo9, EquipmentInfo10, \
  15. EquipmentInfo11, EquipmentInfo12, EquipmentInfo13, EquipmentInfo14, EquipmentInfo15, EquipmentInfo16, \
  16. EquipmentInfo17, EquipmentInfo18, EquipmentInfo19, EquipmentInfo20
  17. from Object.utils import LocalDateTimeUtil
  18. from AnsjerPush.config import LOGGER
  19. class EquipmentInfoService:
  20. @staticmethod
  21. def get_equipment_info_obj(dt, **kwargs):
  22. """
  23. 根据日期判断是星期几,返回相应的对象实例
  24. @param dt: 日期 例:2022-03-03
  25. @param kwargs: 设备信息属性值
  26. @return: 星期一至星期天equipment_info对象实例
  27. """
  28. logger = logging.getLogger('info')
  29. week = LocalDateTimeUtil.date_to_week(dt)
  30. equipment_info = None
  31. if week == 1:
  32. equipment_info = EquipmentInfoMonday(**kwargs)
  33. elif week == 2:
  34. equipment_info = EquipmentInfoTuesday(**kwargs)
  35. elif week == 3:
  36. equipment_info = EquipmentInfoWednesday(**kwargs)
  37. elif week == 4:
  38. equipment_info = EquipmentInfoThursday(**kwargs)
  39. elif week == 5:
  40. equipment_info = EquipmentInfoFriday(**kwargs)
  41. elif week == 6:
  42. equipment_info = EquipmentInfoSaturday(**kwargs)
  43. elif week == 7:
  44. equipment_info = EquipmentInfoSunday(**kwargs)
  45. logger.info(type(equipment_info))
  46. logger.info('model数据为:'.format(equipment_info))
  47. return equipment_info
  48. @staticmethod
  49. def equipment_info_bulk_create(week_val, equipment_info_list):
  50. """
  51. 根据week_val判断,进行表对象选择存储
  52. @param week_val: 星期一至星期天,int类型
  53. @param equipment_info_list: 设备信息实例列表
  54. @return: True or False
  55. """
  56. try:
  57. with transaction.atomic():
  58. if equipment_info_list and len(equipment_info_list) > 0:
  59. if week_val == 0:
  60. return False
  61. if week_val == 1:
  62. EquipmentInfoMonday.objects.bulk_create(equipment_info_list)
  63. elif week_val == 2:
  64. EquipmentInfoTuesday.objects.bulk_create(equipment_info_list)
  65. elif week_val == 3:
  66. EquipmentInfoWednesday.objects.bulk_create(equipment_info_list)
  67. elif week_val == 4:
  68. EquipmentInfoThursday.objects.bulk_create(equipment_info_list)
  69. elif week_val == 5:
  70. EquipmentInfoFriday.objects.bulk_create(equipment_info_list)
  71. elif week_val == 6:
  72. EquipmentInfoSaturday.objects.bulk_create(equipment_info_list)
  73. elif week_val == 7:
  74. EquipmentInfoSunday.objects.bulk_create(equipment_info_list)
  75. return True
  76. return False
  77. except Exception as e:
  78. er_log = logging.getLogger('django')
  79. er_log.exception(repr(e))
  80. er_log.error(repr(e))
  81. return False
  82. @staticmethod
  83. def randoms_insert_equipment_info(**kwargs):
  84. """
  85. 随机一个推送数据表存储数据
  86. """
  87. equipment_info_list = [
  88. EquipmentInfo1(), EquipmentInfo2(), EquipmentInfo3(), EquipmentInfo4(), EquipmentInfo5(),
  89. EquipmentInfo6(), EquipmentInfo7(), EquipmentInfo8(), EquipmentInfo9(), EquipmentInfo10(),
  90. EquipmentInfo11(), EquipmentInfo12(), EquipmentInfo13(), EquipmentInfo14(),EquipmentInfo15(),
  91. EquipmentInfo16(), EquipmentInfo17(), EquipmentInfo18(), EquipmentInfo19(), EquipmentInfo20()]
  92. try:
  93. random_model = random.choice(equipment_info_list)
  94. LOGGER.info('随机存表参数:{},表:{}'.format(kwargs, random_model))
  95. # 实例化模型对象
  96. equipment_info = random_model(**kwargs)
  97. equipment_info.save()
  98. except Exception as e:
  99. LOGGER.info('随机存储推送数据异常: error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))