diff --git a/hb_server/apps/inm/serializers.py b/hb_server/apps/inm/serializers.py index c5df25b..9b60cc1 100644 --- a/hb_server/apps/inm/serializers.py +++ b/hb_server/apps/inm/serializers.py @@ -98,7 +98,7 @@ class FIFOItemCreateSerializer(serializers.ModelSerializer): validated_data['material']=pu_order_item.material if fifo.type == FIFO.FIFO_TYPE_OTHER_OUT and material_batch is None: raise ValidationError('其他出库需关联批次号') - else: + if material_batch: validated_data['material'] = material_batch.material validated_data['batch'] = material_batch.batch validated_data['warehouse'] = material_batch.warehouse diff --git a/hb_server/apps/pm/filters.py b/hb_server/apps/pm/filters.py index a53c29d..f01736b 100644 --- a/hb_server/apps/pm/filters.py +++ b/hb_server/apps/pm/filters.py @@ -27,10 +27,11 @@ class PlanFilterSet(DynamicFieldsFilterMixin, filters.FilterSet): ProductionPlan.PLAN_MTEST_DONE]) elif value == 'near_done': queryset = queryset.filter(count_ok__lt=F('count'), - end_date__lte = datetime.date(day7_after)) + end_date__lte = datetime.date(day7_after), + end_date__gte = datetime.date(now)) elif value == 'out_done': queryset = queryset.filter(count_ok__lt=F('count'), - end_date__gt = datetime.date(now)) + end_date__lt = datetime.date(now)) return queryset def filter_material(self, queryset, name, value): diff --git a/hb_server/apps/system/migrations/0004_auto_20220318_1705.py b/hb_server/apps/system/migrations/0004_auto_20220318_1705.py new file mode 100644 index 0000000..7979291 --- /dev/null +++ b/hb_server/apps/system/migrations/0004_auto_20220318_1705.py @@ -0,0 +1,36 @@ +# Generated by Django 3.2.9 on 2022-03-18 09:05 + +import apps.system.models +from django.db import migrations, models +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ('system', '0003_auto_20210812_0909'), + ] + + operations = [ + migrations.AlterModelManagers( + name='user', + managers=[ + ('objects', apps.system.models.SoftDeletableUserManager()), + ], + ), + migrations.AddField( + model_name='user', + name='create_time', + field=models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间'), + ), + migrations.AddField( + model_name='user', + name='is_deleted', + field=models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记'), + ), + migrations.AddField( + model_name='user', + name='update_time', + field=models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间'), + ), + ] diff --git a/hb_server/apps/system/models.py b/hb_server/apps/system/models.py index c773fcf..4db171b 100644 --- a/hb_server/apps/system/models.py +++ b/hb_server/apps/system/models.py @@ -4,7 +4,7 @@ from django.db.models.base import Model import django.utils.timezone as timezone from django.db.models.query import QuerySet -from utils.model import SoftModel, BaseModel +from utils.model import SoftModel, BaseModel, SoftDeletableManagerMixin from simple_history.models import HistoricalRecords @@ -101,7 +101,12 @@ class Role(SoftModel): return self.name -class User(AbstractUser): +from django.contrib.auth.models import UserManager + +class SoftDeletableUserManager(SoftDeletableManagerMixin, UserManager): + pass + +class User(SoftModel, AbstractUser): """ 用户 """ @@ -117,6 +122,7 @@ class User(AbstractUser): 'self', null=True, blank=True, on_delete=models.SET_NULL, verbose_name='上级主管') roles = models.ManyToManyField(Role, blank=True, verbose_name='角色') + objects = SoftDeletableUserManager() class Meta: verbose_name = '用户信息' verbose_name_plural = verbose_name