0001_initial.py 4.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. # Generated by Django 4.1.2 on 2025-10-29 19:46
  2. from django.db import migrations, models
  3. import django.utils.timezone
  4. class Migration(migrations.Migration):
  5. initial = True
  6. dependencies = [
  7. ]
  8. operations = [
  9. migrations.CreateModel(
  10. name='LocationGroupStatistics',
  11. fields=[
  12. ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  13. ('warehouse_code', models.CharField(max_length=255, verbose_name='仓库代码')),
  14. ('warehouse_name', models.CharField(max_length=255, verbose_name='仓库名称')),
  15. ('layer', models.IntegerField(verbose_name='楼层')),
  16. ('location_group', models.CharField(max_length=20, verbose_name='库位组')),
  17. ('total_locations', models.IntegerField(default=0, verbose_name='组内总货位数')),
  18. ('used_locations', models.IntegerField(default=0, verbose_name='组内已用货位数')),
  19. ('available_locations', models.IntegerField(default=0, verbose_name='组内可用货位数')),
  20. ('utilization_rate', models.DecimalField(decimal_places=2, default=0, max_digits=5, verbose_name='使用率(%)')),
  21. ('location_type_breakdown', models.JSONField(default=dict, verbose_name='货位类型细分')),
  22. ('statistic_time', models.DateTimeField(default=django.utils.timezone.now, verbose_name='统计时间')),
  23. ],
  24. options={
  25. 'verbose_name': '货位组统计',
  26. 'verbose_name_plural': '货位组统计',
  27. 'db_table': 'location_group_statistics',
  28. 'ordering': ['warehouse_code', 'layer', 'location_group'],
  29. },
  30. ),
  31. migrations.CreateModel(
  32. name='LocationStatistics',
  33. fields=[
  34. ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  35. ('warehouse_code', models.CharField(max_length=255, verbose_name='仓库代码')),
  36. ('warehouse_name', models.CharField(max_length=255, verbose_name='仓库名称')),
  37. ('layer', models.IntegerField(verbose_name='楼层')),
  38. ('t5_total', models.IntegerField(default=0, verbose_name='5货位总数')),
  39. ('t5_used', models.IntegerField(default=0, verbose_name='5货位已用')),
  40. ('t5_available', models.IntegerField(default=0, verbose_name='5货位可用')),
  41. ('t4_total', models.IntegerField(default=0, verbose_name='4货位总数')),
  42. ('t4_used', models.IntegerField(default=0, verbose_name='4货位已用')),
  43. ('t4_available', models.IntegerField(default=0, verbose_name='4货位可用')),
  44. ('s4_total', models.IntegerField(default=0, verbose_name='4单货位总数')),
  45. ('s4_used', models.IntegerField(default=0, verbose_name='4单货位已用')),
  46. ('s4_available', models.IntegerField(default=0, verbose_name='4单货位可用')),
  47. ('t2_total', models.IntegerField(default=0, verbose_name='2货位总数')),
  48. ('t2_used', models.IntegerField(default=0, verbose_name='2货位已用')),
  49. ('t2_available', models.IntegerField(default=0, verbose_name='2货位可用')),
  50. ('t1_total', models.IntegerField(default=0, verbose_name='散货位总数')),
  51. ('t1_used', models.IntegerField(default=0, verbose_name='散货位已用')),
  52. ('t1_available', models.IntegerField(default=0, verbose_name='散货位可用')),
  53. ('total_locations', models.IntegerField(default=0, verbose_name='总货位数')),
  54. ('total_used', models.IntegerField(default=0, verbose_name='总已用数')),
  55. ('total_available', models.IntegerField(default=0, verbose_name='总可用数')),
  56. ('utilization_rate', models.DecimalField(decimal_places=2, default=0, max_digits=5, verbose_name='使用率(%)')),
  57. ('statistic_time', models.DateTimeField(default=django.utils.timezone.now, verbose_name='统计时间')),
  58. ('is_latest', models.BooleanField(default=False, verbose_name='是否最新统计')),
  59. ],
  60. options={
  61. 'verbose_name': '货位统计',
  62. 'verbose_name_plural': '货位统计',
  63. 'db_table': 'location_statistics',
  64. 'ordering': ['-statistic_time', 'warehouse_code', 'layer'],
  65. 'unique_together': {('warehouse_code', 'layer', 'statistic_time')},
  66. },
  67. ),
  68. ]