diff --git a/apps/wpm/migrations/0113_mlog_team.py b/apps/wpm/migrations/0113_mlog_team.py new file mode 100644 index 00000000..9e483838 --- /dev/null +++ b/apps/wpm/migrations/0113_mlog_team.py @@ -0,0 +1,20 @@ +# Generated by Django 3.2.12 on 2025-04-22 07:45 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('mtm', '0056_mgroup_batch_append_code'), + ('wpm', '0112_auto_20250422_1430'), + ] + + operations = [ + migrations.AddField( + model_name='mlog', + name='team', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='mtm.team', verbose_name='班组'), + ), + ] diff --git a/apps/wpm/models.py b/apps/wpm/models.py index 85e042b4..06893df2 100644 --- a/apps/wpm/models.py +++ b/apps/wpm/models.py @@ -252,6 +252,7 @@ class Mlog(CommonADModel): count_n_qt = models.DecimalField('其他', default=0, max_digits=11, decimal_places=1) handle_date = models.DateField('操作日期', null=True, blank=True) + team = models.ForeignKey(Team, verbose_name='班组', on_delete=models.SET_NULL, null=True, blank=True) handle_user = models.ForeignKey( User, verbose_name='操作人', on_delete=models.CASCADE, related_name='mlog_handle_user', null=True, blank=True) # 成型人 handle_user_2 = models.ForeignKey( @@ -611,7 +612,7 @@ class BatchSt(BaseModel): class Meta: unique_together = [("batch", "version")] - + @classmethod def g_create(cls, batch:str, mio=None, handover=None, mlog=None, material_start=None): """ diff --git a/apps/wpm/serializers.py b/apps/wpm/serializers.py index f6c4b1da..ba3fab46 100644 --- a/apps/wpm/serializers.py +++ b/apps/wpm/serializers.py @@ -234,6 +234,7 @@ class MlogbSerializer(CustomModelSerializer): class MlogListSerializer(CustomModelSerializer): + team_name = serializers.CharField(source="team.name", read_only=True) mstate_json = serializers.JSONField(source='mgroup.process.mstate_json', read_only=True) supplier_name = serializers.CharField(source='supplier.name', read_only=True) # routepack_name = serializers.CharField(source='route.routepack.name', read_only=True) @@ -291,6 +292,7 @@ class MlogbDetailSerializer(CustomModelSerializer): fields = '__all__' class MlogSerializer(CustomModelSerializer): + team_name = serializers.CharField(source="team.name", read_only=True) mstate_json = serializers.JSONField(source='mgroup.process.mstate_json', read_only=True) supplier_name = serializers.CharField(source='supplier.name', read_only=True) # routepack_name = serializers.CharField(source='route.routepack.name', read_only=True) diff --git a/apps/wpm/views.py b/apps/wpm/views.py index eec9d259..4aec14cc 100644 --- a/apps/wpm/views.py +++ b/apps/wpm/views.py @@ -174,13 +174,13 @@ class MlogViewSet(CustomModelViewSet): select_related_fields = ['create_by', 'update_by', 'mtask', 'mtaskb', 'handle_user', 'handle_user_2', 'equipment', 'mgroup__belong_dept', 'equipment_2', 'material_in', 'material_out', 'route__routepack', - 'supplier', 'ticket', 'mgroup__process', 'test_user', 'handle_leader', 'test_user'] + 'supplier', 'ticket', 'mgroup__process', 'test_user', 'handle_leader', 'test_user', 'team'] prefetch_related_fields = ['handle_users', 'material_outs', 'b_mlog', 'equipments'] filterset_class = MlogFilter search_fields = ['material_in__name', 'material_in__number', 'material_in__specification', 'batch', 'material_in__model', - 'material_out__name', 'material_out__number', 'material_out__specification', 'material_out__model',] + 'material_out__name', 'material_out__number', 'material_out__specification', 'material_out__model'] def add_info_for_item(self, data): if data.get("oinfo_json", {}):