swap_device_logical_code.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. # coding=utf-8
  2. import click
  3. from base import init_env
  4. init_env(interactive = True)
  5. from apps.web.device.models import Device
  6. @click.group()
  7. def cli():
  8. click.echo(u"本脚本用于修改已经发行的虚拟卡卷 可续卡时间")
  9. def check_device(device):
  10. return device.is_registered
  11. @cli.command()
  12. @click.option('--first', prompt=u'第一个设备编号:')
  13. @click.option('--second', prompt=u'第二个设备编号:')
  14. def main(first, second):
  15. """
  16. 将两个模块设备编号互换 两个模块必须都处于没有注册的状态
  17. :param first:
  18. :param second:
  19. :return:
  20. """
  21. device1 = Device.objects.get(logicalCode=first)
  22. device2 = Device.objects.get(logicalCode=second)
  23. if any ([check_device(device1), check_device(device2)]):
  24. print u"设备已被注册,不能换编号"
  25. return
  26. # 先将其变成中间量
  27. device1.update(logicalCode="1111111111")
  28. device2.update(logicalCode=first)
  29. device1.update(logicalCode=second)
  30. Device.invalid_device_cache(device1.devNo)
  31. Device.invalid_device_cache(device2.devNo)
  32. print u"成功"
  33. if __name__ == '__main__':
  34. main()