EquipmentInfoService.py 4.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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. EQUIPMENT_INFO_LIST = [
  20. EquipmentInfo1, EquipmentInfo2, EquipmentInfo3, EquipmentInfo4, EquipmentInfo5, EquipmentInfo6,
  21. EquipmentInfo7, EquipmentInfo8, EquipmentInfo9, EquipmentInfo10,
  22. EquipmentInfo11, EquipmentInfo12, EquipmentInfo13, EquipmentInfo14, EquipmentInfo15, EquipmentInfo16,
  23. EquipmentInfo17, EquipmentInfo18, EquipmentInfo19, EquipmentInfo20]
  24. class EquipmentInfoService:
  25. @staticmethod
  26. def get_equipment_info_obj(dt, **kwargs):
  27. """
  28. 根据日期判断是星期几,返回相应的对象实例
  29. @param dt: 日期 例:2022-03-03
  30. @param kwargs: 设备信息属性值
  31. @return: 星期一至星期天equipment_info对象实例
  32. """
  33. logger = logging.getLogger('info')
  34. week = LocalDateTimeUtil.date_to_week(dt)
  35. equipment_info = None
  36. if week == 1:
  37. equipment_info = EquipmentInfoMonday(**kwargs)
  38. elif week == 2:
  39. equipment_info = EquipmentInfoTuesday(**kwargs)
  40. elif week == 3:
  41. equipment_info = EquipmentInfoWednesday(**kwargs)
  42. elif week == 4:
  43. equipment_info = EquipmentInfoThursday(**kwargs)
  44. elif week == 5:
  45. equipment_info = EquipmentInfoFriday(**kwargs)
  46. elif week == 6:
  47. equipment_info = EquipmentInfoSaturday(**kwargs)
  48. elif week == 7:
  49. equipment_info = EquipmentInfoSunday(**kwargs)
  50. logger.info(type(equipment_info))
  51. logger.info('model数据为:'.format(equipment_info))
  52. return equipment_info
  53. @staticmethod
  54. def equipment_info_bulk_create(week_val, equipment_info_list):
  55. """
  56. 根据week_val判断,进行表对象选择存储
  57. @param week_val: 星期一至星期天,int类型
  58. @param equipment_info_list: 设备信息实例列表
  59. @return: True or False
  60. """
  61. try:
  62. with transaction.atomic():
  63. if equipment_info_list and len(equipment_info_list) > 0:
  64. if week_val == 0:
  65. return False
  66. if week_val == 1:
  67. EquipmentInfoMonday.objects.bulk_create(equipment_info_list)
  68. elif week_val == 2:
  69. EquipmentInfoTuesday.objects.bulk_create(equipment_info_list)
  70. elif week_val == 3:
  71. EquipmentInfoWednesday.objects.bulk_create(equipment_info_list)
  72. elif week_val == 4:
  73. EquipmentInfoThursday.objects.bulk_create(equipment_info_list)
  74. elif week_val == 5:
  75. EquipmentInfoFriday.objects.bulk_create(equipment_info_list)
  76. elif week_val == 6:
  77. EquipmentInfoSaturday.objects.bulk_create(equipment_info_list)
  78. elif week_val == 7:
  79. EquipmentInfoSunday.objects.bulk_create(equipment_info_list)
  80. return True
  81. return False
  82. except Exception as e:
  83. er_log = logging.getLogger('django')
  84. er_log.exception(repr(e))
  85. er_log.error(repr(e))
  86. return False
  87. @staticmethod
  88. def randoms_choice_equipment_info():
  89. return random.choice(EQUIPMENT_INFO_LIST)