Merge branch 'master' of https://e.coding.net/ctcdevteam/ehs/ehs_server
This commit is contained in:
commit
dd3c0d6f6b
|
@ -0,0 +1,38 @@
|
|||
# Generated by Django 3.2.12 on 2024-09-20 01:14
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('qm', '0024_ftestwork_shift'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='ftestwork',
|
||||
name='count',
|
||||
field=models.PositiveIntegerField(verbose_name='检验数量'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='ftestwork',
|
||||
name='count_notok',
|
||||
field=models.PositiveIntegerField(default=0, verbose_name='不合格数量'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='ftestwork',
|
||||
name='count_ok',
|
||||
field=models.PositiveIntegerField(default=0, verbose_name='合格数量'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='ftestwork',
|
||||
name='count_sampling',
|
||||
field=models.PositiveIntegerField(default=0, verbose_name='抽检数量'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='ftestwork',
|
||||
name='count_sampling_ok',
|
||||
field=models.PositiveIntegerField(default=0, verbose_name='抽检合格数量'),
|
||||
),
|
||||
]
|
|
@ -118,11 +118,11 @@ class FtestWork(CommonBDModel):
|
|||
material = models.ForeignKey(
|
||||
Material, verbose_name='产品', on_delete=models.CASCADE)
|
||||
batch = models.CharField('生产批次', max_length=50)
|
||||
count = models.IntegerField('检验数量')
|
||||
count_sampling = models.IntegerField('抽检数量', default=0)
|
||||
count_sampling_ok = models.IntegerField('抽检合格数量', default=0)
|
||||
count_ok = models.IntegerField('合格数量', default=0)
|
||||
count_notok = models.IntegerField('不合格数量', default=0)
|
||||
count = models.PositiveIntegerField('检验数量')
|
||||
count_sampling = models.PositiveIntegerField('抽检数量', default=0)
|
||||
count_sampling_ok = models.PositiveIntegerField('抽检合格数量', default=0)
|
||||
count_ok = models.PositiveIntegerField('合格数量', default=0)
|
||||
count_notok = models.PositiveIntegerField('不合格数量', default=0)
|
||||
need_update_wm = models.BooleanField('是否更新车间库存', default=True)
|
||||
count_notok_json = models.JSONField('不合格项数量统计', default=dict, null=False, blank=True)
|
||||
test_user = models.ForeignKey(
|
||||
|
|
|
@ -93,6 +93,8 @@ class FtestWorkCreateUpdateSerializer(CustomModelSerializer):
|
|||
else:
|
||||
raise ValidationError(f'不合格项{k_2}必须为非负整数')
|
||||
attrs['count_notok'] = count_notok
|
||||
if type2 == 20 and attrs['count'] != attrs['count_ok'] + attrs['count_notok']:
|
||||
raise ValidationError('全检时总数必须等于合格数+不合格数')
|
||||
elif 'mb' in attrs and attrs['mb']:
|
||||
attrs['wm'] = None
|
||||
attrs['material'] = attrs['mb'].material
|
||||
|
|
|
@ -109,7 +109,7 @@ class WMaterial(CommonBDModel):
|
|||
|
||||
@property
|
||||
def count_working(self):
|
||||
return int(Mlogb.objects.filter(wm_in=self, mlog__work_end_time__isnull=True).aggregate(count=Sum('count_use'))['count'] or 0)
|
||||
return Mlogb.objects.filter(wm_in=self, mlog__work_end_time__isnull=True).aggregate(count=Sum('count_use'))['count'] or 0
|
||||
|
||||
class Fmlog(CommonADModel):
|
||||
route = models.ForeignKey(Route, verbose_name='生产路线', on_delete=models.SET_NULL, null=True, blank=True)
|
||||
|
|
|
@ -181,7 +181,7 @@ class WMaterialSerializer(CustomModelSerializer):
|
|||
source='belong_dept.name', read_only=True)
|
||||
material_origin_name = serializers.StringRelatedField(source='material_origin', read_only=True)
|
||||
notok_sign_name = serializers.SerializerMethodField()
|
||||
count_working = serializers.CharField(read_only=True, label='在制数量')
|
||||
count_working = serializers.IntegerField(read_only=True, label='在制数量')
|
||||
|
||||
def get_notok_sign_name(self, obj):
|
||||
return getattr(NotOkOption, obj.notok_sign, NotOkOption.qt).label if obj.notok_sign else None
|
||||
|
@ -189,6 +189,11 @@ class WMaterialSerializer(CustomModelSerializer):
|
|||
class Meta:
|
||||
model = WMaterial
|
||||
fields = '__all__'
|
||||
|
||||
def to_representation(self, instance):
|
||||
ret = super().to_representation(instance)
|
||||
ret['count_cando'] = ret['count'] - ret['count_working']
|
||||
return ret
|
||||
|
||||
|
||||
class MlogbSerializer(CustomModelSerializer):
|
||||
|
|
Loading…
Reference in New Issue