From e7c121de154833bd7ae668d98be0b131194f32b2 Mon Sep 17 00:00:00 2001 From: zty Date: Sun, 28 Sep 2025 11:07:08 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:iofm-serializer=20=E5=A2=9E=E5=8A=A0ti?= =?UTF-8?q?cket=5F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/ofm/serializers.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/apps/ofm/serializers.py b/apps/ofm/serializers.py index 37aba45b..1ff0f3cc 100644 --- a/apps/ofm/serializers.py +++ b/apps/ofm/serializers.py @@ -66,6 +66,7 @@ class MroomSlotSerializer(CustomModelSerializer): class LendingSealSerializer(CustomModelSerializer): create_by_name = serializers.CharField(source='create_by.name', read_only=True) belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True) + ticket_ = TicketSimpleSerializer(source='ticket', read_only=True) class Meta: model = LendingSeal fields = '__all__' @@ -75,6 +76,7 @@ class LendingSealSerializer(CustomModelSerializer): class VehicleSerializer(CustomModelSerializer): create_by_name = serializers.CharField(source='create_by.name', read_only=True) belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True) + ticket_ = TicketSimpleSerializer(source='ticket', read_only=True) class Meta: model = Vehicle fields = '__all__' @@ -84,6 +86,7 @@ class VehicleSerializer(CustomModelSerializer): class FileRecordSerializer(CustomModelSerializer): create_by_name = serializers.CharField(source='create_by.name', read_only=True) belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True) + ticket_ = TicketSimpleSerializer(source='ticket', read_only=True) class Meta: model = FileRecord fields = '__all__' @@ -96,6 +99,7 @@ class BorrowRecordSerializer(CustomModelSerializer): borrow_file = serializers.PrimaryKeyRelatedField(queryset=FileRecord.objects.all(), many=True, write_only=True, label="借阅文件") file_detail = FileRecordSerializer(source='borrow_file', many=True, read_only=True, label="借阅文件详情") file_name = serializers.SerializerMethodField() + ticket_ = TicketSimpleSerializer(source='ticket', read_only=True) class Meta: model = BorrowRecord fields = '__all__' @@ -108,6 +112,7 @@ class BorrowRecordSerializer(CustomModelSerializer): class PublicitySerializer(CustomModelSerializer): create_by_name = serializers.CharField(source='create_by.name', read_only=True) belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True) + ticket_ = TicketSimpleSerializer(source='ticket', read_only=True) class Meta: model = Publicity fields = '__all__' From de99f85259848349f735aeb54bbd04af45d09d43 Mon Sep 17 00:00:00 2001 From: zty Date: Sun, 28 Sep 2025 14:16:39 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20ofm-models=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=BD=A6=E8=BE=86=E8=A1=A8=E7=9A=84=E5=AD=97=E6=AE=B5=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../migrations/0015_alter_vehicle_end_km.py | 18 ++++++++++++++++++ apps/ofm/models.py | 6 ++++-- 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 apps/ofm/migrations/0015_alter_vehicle_end_km.py diff --git a/apps/ofm/migrations/0015_alter_vehicle_end_km.py b/apps/ofm/migrations/0015_alter_vehicle_end_km.py new file mode 100644 index 00000000..53a1ecca --- /dev/null +++ b/apps/ofm/migrations/0015_alter_vehicle_end_km.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.12 on 2025-09-28 06:15 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('ofm', '0014_auto_20250928_1023'), + ] + + operations = [ + migrations.AlterField( + model_name='vehicle', + name='end_km', + field=models.PositiveIntegerField(blank=True, null=True, verbose_name='归还公里数'), + ), + ] diff --git a/apps/ofm/models.py b/apps/ofm/models.py index 7bf1c4dd..806ebb4d 100644 --- a/apps/ofm/models.py +++ b/apps/ofm/models.py @@ -76,15 +76,17 @@ class Vehicle(CommonBDModel): via = models.CharField('途经地点', null=True, blank=True, max_length=100) destination = models.CharField('到达地点', null=True, blank=True, max_length=100) start_km = models.PositiveIntegerField('出发公里数') - end_km = models.PositiveIntegerField('归还公里数') + end_km = models.PositiveIntegerField('归还公里数', null=True, blank=True) actual_km = models.PositiveIntegerField('实际行驶公里数', editable=False) is_city = models.BooleanField('是否市内用车', default=True) reason = models.CharField('用车事由', max_length=100) ticket = models.ForeignKey('wf.ticket', verbose_name='关联工单', on_delete=models.SET_NULL, related_name='vehicle_ticket', null=True, blank=True, db_constraint=False) def save(self, *args, **kwargs): - if self.end_km and self.start_km: + if self.end_km: self.actual_km = self.end_km - self.start_km + else: + self.actual_km = 0 return super().save(*args, **kwargs)