部分信息非必填项
This commit is contained in:
parent
2c993ce910
commit
b4a5bb2373
|
@ -31,12 +31,12 @@ class AreaViewSet(CustomModelViewSet):
|
|||
third_info = obj.third_info
|
||||
if 'xx_rail' in third_info:
|
||||
data['id'] = third_info['xx_rail']['id']
|
||||
_, res = xxClient.request(**xxapis['rail_update'], json=data)
|
||||
_, res = xxClient.request(**xxapis['rail_update'], json={'rail': data})
|
||||
third_info['xx_rail']['detail'] = data
|
||||
obj.third_info = third_info
|
||||
obj.save()
|
||||
else:
|
||||
_, res = xxClient.request(**xxapis['rail_create'], json=data)
|
||||
_, res = xxClient.request(**xxapis['rail_create'], json={'rail': data})
|
||||
rail_info = {'id': res, 'detail': data}
|
||||
third_info['xx_rail'] = rail_info
|
||||
obj.third_info = third_info
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
# Generated by Django 3.2.12 on 2022-07-11 08:24
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('vm', '0003_visit_ticket'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='visitor',
|
||||
name='id_number',
|
||||
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='身份证号'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='visitor',
|
||||
name='phone',
|
||||
field=models.CharField(blank=True, max_length=11, null=True, verbose_name='手机号'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='visitor',
|
||||
name='photo',
|
||||
field=models.CharField(blank=True, max_length=1000, null=True, verbose_name='证件照'),
|
||||
),
|
||||
]
|
|
@ -54,9 +54,9 @@ class Visitor(CommonAModel):
|
|||
"""
|
||||
employee = models.ForeignKey(Employee, verbose_name='成员信息', on_delete=models.CASCADE, null=True, blank=True)
|
||||
name = models.CharField('姓名', max_length=20)
|
||||
phone = models.CharField('手机号', max_length=11)
|
||||
photo = models.CharField('证件照', max_length=1000)
|
||||
id_number = models.CharField('身份证号', max_length=100)
|
||||
phone = models.CharField('手机号', max_length=11, null=True, blank=True)
|
||||
photo = models.CharField('证件照', max_length=1000, null=True, blank=True)
|
||||
id_number = models.CharField('身份证号', max_length=100, null=True, blank=True)
|
||||
visit = models.ForeignKey(Visit, verbose_name='最近所属访问项目', on_delete=models.CASCADE,
|
||||
null=True, blank=True)
|
||||
|
||||
|
|
|
@ -35,7 +35,8 @@ class VisitorCreateSerializer(CustomModelSerializer):
|
|||
def create(self, validated_data):
|
||||
with transaction.atomic():
|
||||
# 校验上传的证件照
|
||||
dhClient.request(**dhapis['person_img_upload'], file_path_rela=validated_data['photo'])
|
||||
if validated_data['photo']:
|
||||
dhClient.request(**dhapis['person_img_upload'], file_path_rela=validated_data['photo'])
|
||||
return super().create(validated_data)
|
||||
|
||||
|
||||
|
@ -53,6 +54,12 @@ class VpeopleCreateSerializer(CustomModelSerializer):
|
|||
def create(self, validated_data):
|
||||
if validated_data['visit'].state != Visit.V_CREATE:
|
||||
raise ParseError('项目非创建状态不可新增成员')
|
||||
if validated_data['visit'].level == 10:
|
||||
visitor = validated_data['visitor']
|
||||
if visitor.id_number and visitor.photo:
|
||||
pass
|
||||
else:
|
||||
raise ParseError('访客信息不全,请完善后再试')
|
||||
ins = super().create(validated_data)
|
||||
if ins.is_main:
|
||||
Vpeople.objects.filter(visit=validated_data['visit']).exclude(id=ins.id).update(is_main=False)
|
||||
|
|
|
@ -338,7 +338,7 @@ class WfService(object):
|
|||
ticket.act_state = Ticket.TICKET_ACT_STATE_BACK
|
||||
|
||||
# 只更新必填和可选的字段
|
||||
if not created:
|
||||
if not created and transition.field_require_check:
|
||||
for key, value in source_state.state_fields.items():
|
||||
if value in (State.STATE_FIELD_REQUIRED, State.STATE_FIELD_OPTIONAL):
|
||||
if key in new_ticket_data:
|
||||
|
@ -387,7 +387,7 @@ class WfService(object):
|
|||
f = getattr(m, func)
|
||||
f(ticket=ticket) # 同步执行
|
||||
else:
|
||||
# wf默认发送通知
|
||||
# wf默认只发送通知
|
||||
last_log = TicketFlow.objects.filter(ticket=ticket).order_by('-create_time').first()
|
||||
if (last_log.state != state or
|
||||
last_log.intervene_type == Transition.TRANSITION_INTERVENE_TYPE_DELIVER or
|
||||
|
|
|
@ -181,6 +181,8 @@ class TicketViewSet(CreateUpdateCustomMixin, CreateModelMixin, ListModelMixin, R
|
|||
save_ticket_data[key] = ticket_data[key]
|
||||
elif int(value) == State.STATE_FIELD_OPTIONAL:
|
||||
save_ticket_data[key] = ticket_data[key]
|
||||
else:
|
||||
save_ticket_data = ticket_data
|
||||
with transaction.atomic():
|
||||
ticket = serializer.save(state=start_state,
|
||||
create_by=request.user,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
celery==5.2.3
|
||||
Django==3.2.12
|
||||
django-celery-beat==2.2.1
|
||||
django-celery-results==2.3.1
|
||||
django-celery-results==2.4.0
|
||||
django-cors-headers==3.11.0
|
||||
django-filter==21.1
|
||||
djangorestframework==3.13.1
|
||||
|
|
Loading…
Reference in New Issue