feature:<master> feat:后端新增质量活动功能
This commit is contained in:
parent
a216e17904
commit
c482c15425
|
@ -0,0 +1,27 @@
|
|||
# Generated by Django 3.2.12 on 2024-03-28 06:21
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('information', '0005_qualitycommendation_department'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='externalauditors',
|
||||
name='review_type',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='externalauditors',
|
||||
name='review_types',
|
||||
field=models.PositiveSmallIntegerField(choices=[(0, 'CNAS'), (1, 'CMA'), (2, 'DICA')], default=0, max_length=20, verbose_name='评审类型'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='qualityactivities',
|
||||
name='roles',
|
||||
field=models.PositiveSmallIntegerField(choices=[(0, '组织方'), (1, '活动方')], max_length=20, verbose_name='参与角色'),
|
||||
),
|
||||
]
|
|
@ -0,0 +1,20 @@
|
|||
# Generated by Django 3.2.12 on 2024-03-28 06:24
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('system', '0023_alter_user_first_name'),
|
||||
('information', '0006_auto_20240328_1421'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='qualityactivities',
|
||||
name='department',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='system.organization', verbose_name='组织单位'),
|
||||
),
|
||||
]
|
|
@ -0,0 +1,28 @@
|
|||
# Generated by Django 3.2.12 on 2024-03-28 06:39
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('information', '0007_qualityactivities_department'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='qualityactivities',
|
||||
name='earnings',
|
||||
field=models.IntegerField(null=True, verbose_name='活动收益'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='qualityactivities',
|
||||
name='function',
|
||||
field=models.CharField(max_length=100, null=True, verbose_name='活动中发挥的作用'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='qualityactivities',
|
||||
name='participations',
|
||||
field=models.IntegerField(blank=True, null=True, verbose_name='活动参与单位数量'),
|
||||
),
|
||||
]
|
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 3.2.12 on 2024-03-28 06:41
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('information', '0008_auto_20240328_1439'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='qualityactivities',
|
||||
name='earnings',
|
||||
field=models.FloatField(null=True, verbose_name='活动收益'),
|
||||
),
|
||||
]
|
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 3.2.12 on 2024-03-28 06:54
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('information', '0009_alter_qualityactivities_earnings'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='qualityactivities',
|
||||
old_name='time',
|
||||
new_name='activate_time',
|
||||
),
|
||||
]
|
|
@ -39,16 +39,17 @@ class QualityCommendation(models.Model):
|
|||
db_table = 'quality_commendation'
|
||||
|
||||
class QualityActivities(models.Model):
|
||||
role = (('组织方','组织方'),('活动方','活动方'))
|
||||
role = ((0,'组织方'),(1,'活动方'))
|
||||
name = models.CharField(max_length=20, unique=True, verbose_name='活动名称')
|
||||
roles = models.CharField(max_length=20, choices=role, verbose_name='参与角色')
|
||||
roles = models.PositiveSmallIntegerField(max_length=20, choices=role, verbose_name='参与角色')
|
||||
collaborators = models.CharField(max_length=20, verbose_name='合作方')
|
||||
organizational_units = models.CharField(max_length=20, verbose_name='组织单位')
|
||||
place = models.CharField(max_length=50, verbose_name='活动地点')
|
||||
time = models.DateField(verbose_name='活动时间', null=True)
|
||||
participations = models.IntegerField(verbose_name='活动参与单位数量')
|
||||
function = models.CharField(max_length=100, verbose_name='活动中发挥的作用')
|
||||
earnings = models.IntegerField(verbose_name='活动收益')
|
||||
activate_time = models.DateField(verbose_name='活动时间', null=True)
|
||||
participations = models.IntegerField(verbose_name='活动参与单位数量', null=True, blank=True)
|
||||
function = models.CharField(max_length=100, verbose_name='活动中发挥的作用', null=True)
|
||||
earnings = models.FloatField(verbose_name='活动收益', null=True)
|
||||
department = models.ForeignKey(Organization, on_delete=models.CASCADE, null=True, verbose_name='组织单位')
|
||||
|
||||
class Meta:
|
||||
verbose_name = '质量活动'
|
||||
|
@ -73,12 +74,12 @@ class Contact(models.Model):
|
|||
db_table = 'contact'
|
||||
|
||||
class ExternalAuditors(models.Model):
|
||||
review_type = ( ('CNAS', 'CNAS'),
|
||||
('CMA', 'CMA'),
|
||||
('DICA', 'DICA'))
|
||||
review_type = ( (0, 'CNAS'),
|
||||
(1, 'CMA'),
|
||||
(2, 'DICA'))
|
||||
name_company = models.CharField(max_length=20, unique=True, verbose_name='公司名称')
|
||||
name = models.CharField(max_length=20, verbose_name='姓名')
|
||||
review_type = models.CharField(max_length=20, verbose_name='评审类型')
|
||||
review_types = models.PositiveSmallIntegerField(max_length=20, choices=review_type,verbose_name='评审类型', default=0)
|
||||
certificate_expiration = models.DateField(verbose_name='证书有效期')
|
||||
contact = models.CharField(max_length=20, verbose_name='联系方式')
|
||||
judging_areas = models.CharField(max_length=20, verbose_name='评审领域')
|
||||
|
|
|
@ -19,8 +19,8 @@ class QualityActivitiesSerializer(serializers.ModelSerializer):
|
|||
|
||||
class Meta:
|
||||
model = QualityActivities
|
||||
fields = '__all __'
|
||||
|
||||
fields = '__all__'
|
||||
read_only_fields = ['id']
|
||||
|
||||
class ContactSerializer(serializers.ModelSerializer):
|
||||
|
||||
|
@ -34,5 +34,4 @@ class ExternalAuditorsSerializer(serializers.ModelSerializer):
|
|||
model = ExternalAuditors
|
||||
fields = '__all__'
|
||||
|
||||
class ImpSerializer(serializers.Serializer):
|
||||
path = serializers.FileField(label='文件地址')
|
||||
|
||||
|
|
|
@ -152,14 +152,32 @@ class QualityCommendationViewSet(ImpMixin, ModelViewSet):
|
|||
serializer = QualityCommendationSerializer(query, many=True)
|
||||
return Response(serializer.data)
|
||||
|
||||
class QualityActivitiesViewSet(mixins.CreateModelMixin,
|
||||
mixins.ListModelMixin,
|
||||
mixins.DestroyModelMixin,
|
||||
mixins.UpdateModelMixin,
|
||||
viewsets.GenericViewSet):
|
||||
|
||||
# 质量活动
|
||||
class QualityActivitiesViewSet(ModelViewSet):
|
||||
queryset = QualityActivities.objects.all()
|
||||
serializer_class = QualityActivitiesSerializer
|
||||
|
||||
def create(self, request):
|
||||
if Organization.objects.filter(name=self.request.data['organizational_units']).exists():
|
||||
department_id = Organization.objects.filter(name=self.request.data['organizational_units']).first().id
|
||||
self.request.data['department'] = department_id
|
||||
print("-----------,",self.request.data)
|
||||
serializer = self.get_serializer(data=self.request.data)
|
||||
if serializer.is_valid(raise_exception=True):
|
||||
serializer.save()
|
||||
return Response(serializer.data, status = status.HTTP_201_CREATED)
|
||||
else:
|
||||
raise ParseError("部门不存在")
|
||||
|
||||
# 查询子以及已经本公司的质量活动
|
||||
@action(detail=False, methods=['get'])
|
||||
def activate_info(self, *args, **kwargs):
|
||||
father_dept = self.request.user.dept
|
||||
child_dept = get_child_queryset2(father_dept)
|
||||
query = QualityActivities.objects.filter(department__in=child_dept)
|
||||
serializer = QualityActivitiesSerializer(query, many=True)
|
||||
return Response(serializer.data)
|
||||
|
||||
class ContactViewSet(mixins.CreateModelMixin,
|
||||
mixins.ListModelMixin,
|
||||
|
|
Loading…
Reference in New Issue