feat: wmaterial添加外协字段及相关调整

This commit is contained in:
caoqianming 2024-08-30 09:21:29 +08:00
parent b8994b94c1
commit 5289e71280
6 changed files with 28 additions and 2 deletions

View File

@ -50,7 +50,8 @@ class WMaterialFilter(filters.FilterSet):
"mgroup__name": ["exact", "in"],
"count": ["gte", "lte", "exact"],
"notok_sign": ["exact", "in", "isnull"],
"count_xtest": ["gte", "isnull"]
"count_xtest": ["gte", "isnull"],
"supplier": ["exact"],
}
class MlogFilter(filters.FilterSet):

View File

@ -0,0 +1,20 @@
# Generated by Django 3.2.12 on 2024-08-30 01:17
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('pum', '0008_auto_20240731_1829'),
('wpm', '0062_auto_20240828_1052'),
]
operations = [
migrations.AddField(
model_name='wmaterial',
name='supplier',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='pum.supplier', verbose_name='外协供应商'),
),
]

View File

@ -97,6 +97,7 @@ class WMaterial(CommonBDModel):
state = models.PositiveSmallIntegerField('状态', default=10, choices=((10, '合格'), (20, '不合格'), (30, '返修'), (40, '检验'), (50, '报废')))
material = models.ForeignKey(
Material, verbose_name='物料', on_delete=models.CASCADE, related_name='wm_m')
supplier = models.ForeignKey(Supplier, verbose_name='外协供应商', on_delete=models.SET_NULL, null=True, blank=True)
mgroup = models.ForeignKey(Mgroup, verbose_name='所在工段', on_delete=models.CASCADE, null=True, blank=True)
batch = models.CharField('批次号', max_length=50)
count = models.PositiveIntegerField('当前数量', default=0)

View File

@ -172,6 +172,7 @@ class SflogExpSerializer(CustomModelSerializer):
class WMaterialSerializer(CustomModelSerializer):
material_ = MaterialSimpleSerializer(source='material', read_only=True)
supplier_name = serializers.CharField(source='supplier.name', read_only=True)
material_name = serializers.StringRelatedField(
source='material', read_only=True)
mgroup_name = serializers.StringRelatedField(source='mgroup.name', read_only=True)

View File

@ -204,6 +204,7 @@ def mlog_submit(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
belong_dept = mgroup.belong_dept
material_out = mlog.material_out
material_in = mlog.material_in
supplier = mlog.supplier # 外协
if material_in: # 需要进行车间库存管理
m_ins = Mlogb.objects.filter(mlog=mlog, material_in__isnull=False)
if m_ins.exists():
@ -271,6 +272,8 @@ def mlog_submit(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
wm.count = wm.count + mo_count
wm.count_eweight = mo_count_eweight
wm.update_by = user
if supplier is not None:
wm.supplier = supplier
wm.save()
mlog.submit_time = now

View File

@ -112,7 +112,7 @@ class WMaterialViewSet(ListModelMixin, CustomGenericViewSet):
perms_map = {'get': '*'}
queryset = WMaterial.objects.filter(count__gt=0)
serializer_class = WMaterialSerializer
select_related_fields = ['material', 'belong_dept', 'material__process']
select_related_fields = ['material', 'belong_dept', 'material__process', 'supplier']
search_fields = ['material__name',
'material__number', 'material__specification', 'batch', 'material__model']
filterset_class = WMaterialFilter