rpm分配账号可选已有的/至少选择一位访客/成员
This commit is contained in:
parent
99f84f48cd
commit
90a4e46cc8
|
@ -81,7 +81,7 @@ def opl_audit_end(ticket: Ticket):
|
|||
# 授予相关工作人员区域进入权限
|
||||
# worker_ep_ids = list(OplWorker.objects.filter(opl=opl).values_list('worker__id', flat=True))
|
||||
# 发送通知
|
||||
phone = opl.create_by.phone
|
||||
phone = opl.create_by.phone if opl.create_by else None
|
||||
if phone:
|
||||
send_sms(phone=phone, template_code=1005, template_param={'name': ticket.workflow.name})
|
||||
|
||||
|
|
|
@ -65,11 +65,15 @@ class RpartySimpleSerializer(CustomModelSerializer):
|
|||
fields = ['id', 'name']
|
||||
|
||||
|
||||
class RpartyAssignSerializer(serializers.Serializer):
|
||||
class RpartyAssignSerializer(serializers.ModelSerializer):
|
||||
name = serializers.CharField(label="姓名")
|
||||
phone = serializers.CharField(label="手机号")
|
||||
username = serializers.CharField(label="账号")
|
||||
|
||||
class Meta:
|
||||
model = Rparty
|
||||
fields = ['admin', 'name', 'phone', 'username']
|
||||
|
||||
|
||||
class RfileListSerializer(CustomModelSerializer):
|
||||
rparty_ = RpartySimpleSerializer(source='rparty', read_only=True)
|
||||
|
|
|
@ -7,6 +7,7 @@ from apps.utils.tools import ranstr
|
|||
from apps.wf.models import Ticket, Transition
|
||||
from apps.rpm.models import Remployee, Rfile, Rparty, Rpj, Rpjcertificate, Rpjfile, Rpjmember
|
||||
from django.contrib.auth.hashers import make_password
|
||||
from rest_framework.exceptions import ParseError
|
||||
|
||||
|
||||
def sync_to_rep(ep: Employee):
|
||||
|
@ -28,8 +29,10 @@ def sync_to_rep(ep: Employee):
|
|||
|
||||
def bind_rpj(ticket: Ticket, transition: Transition, new_ticket_data: dict):
|
||||
rpj = Rpj.objects.get(id=new_ticket_data['rpj'])
|
||||
if not Rpjmember.objects.filter(rpj=rpj).exists():
|
||||
raise ParseError('请至少选择一位入厂人员')
|
||||
ticket_data = ticket.ticket_data
|
||||
ticket_data.update({'belong_dept': rpj.belong_dept.id})
|
||||
ticket_data.update({'belong_dept': rpj.belong_dept.id if rpj.belong_dept else '0'})
|
||||
ticket.ticket_data = ticket_data
|
||||
rpj.ticket = ticket
|
||||
rpj.state = Rpj.RPJ_AUDIT
|
||||
|
@ -130,6 +133,6 @@ def rpj_audit_end(ticket):
|
|||
rpj.state = Rpj.RPJ_ENTER
|
||||
rpj.save()
|
||||
# 发送通知?
|
||||
phone = rpj.create_by.phone
|
||||
phone = rpj.create_by.phone if rpj.create_by else None
|
||||
if phone:
|
||||
send_sms(phone=phone, template_code=1004, template_param={'name': '相关方项目'})
|
||||
|
|
|
@ -47,22 +47,23 @@ class RpartyViewSet(CustomModelViewSet):
|
|||
serializer = RpartyAssignSerializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
vdata = serializer.validated_data
|
||||
if obj.admin:
|
||||
ins = obj.admin
|
||||
if vdata['admin']:
|
||||
ins = vdata['admin']
|
||||
elif User.objects.get_queryset(all=True).filter(Q(phone=vdata['phone']) | Q(username=vdata['username'])).exists():
|
||||
raise ParseError('该账号已存在,请直接选择')
|
||||
else:
|
||||
if User.objects.get_queryset(all=True).filter(Q(phone=vdata['phone']) | Q(username=vdata['username'])).exists():
|
||||
raise ParseError('该账号已存在,请选择绑定')
|
||||
serializer = UserCreateSerializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
ins = serializer.save(type='remployee', password=make_password('0000'))
|
||||
obj.admin = ins
|
||||
obj.save()
|
||||
obj.admin = ins
|
||||
obj.save()
|
||||
# 岗位设置为相关方岗位
|
||||
UserPost.objects.get_or_create(user=ins, dept=obj.dept,
|
||||
defaults={
|
||||
'user': ins,
|
||||
'dept': obj.dept,
|
||||
'post': post
|
||||
'post': post,
|
||||
'sort': 99
|
||||
})
|
||||
up = UserPost.objects.filter(user=ins).order_by('sort', 'create_time').first()
|
||||
if up:
|
||||
|
|
|
@ -8,7 +8,7 @@ import logging
|
|||
myLogger = logging.getLogger('log')
|
||||
|
||||
|
||||
def send_sms(phone: str, template_code: str, template_param: dict):
|
||||
def send_sms(phone: str, template_code: int, template_param: dict):
|
||||
client = AcsClient(settings.XNIU_SMS_KEY, settings.XNIU_SMS_SECRET, 'default')
|
||||
request = CommonRequest()
|
||||
# 固定json
|
||||
|
|
|
@ -3,6 +3,7 @@ from apps.hrm.models import Employee
|
|||
from apps.hrm.services import HrmService
|
||||
from apps.utils.sms import send_sms
|
||||
from apps.vm.models import Visit, Visitor, Vpeople
|
||||
from rest_framework.exceptions import ParseError
|
||||
|
||||
|
||||
def sync_to_visitor(ep: Employee):
|
||||
|
@ -15,6 +16,8 @@ def sync_to_visitor(ep: Employee):
|
|||
|
||||
def bind_visit(ticket, transition, new_ticket_data: dict):
|
||||
visit = Visit.objects.get(id=new_ticket_data['visit'])
|
||||
if visit.level == 10 and (not Vpeople.objects.filter(visit=visit).exists()):
|
||||
raise ParseError('请至少选择一位访客')
|
||||
visit.ticket = ticket
|
||||
visit.state = Visit.V_AUDIT
|
||||
visit.save()
|
||||
|
@ -66,7 +69,7 @@ def visit_audit_end(ticket):
|
|||
visit.state = Visit.V_ENTER
|
||||
visit.save()
|
||||
# 发送通知?
|
||||
phone = visit.create_by.phone
|
||||
phone = visit.create_by.phone if visit.create_by else None
|
||||
if phone:
|
||||
send_sms(phone=phone, template_code=1004, template_param={'name': '访客项目'})
|
||||
|
||||
|
@ -100,6 +103,6 @@ def visit_driver_end(ticket):
|
|||
visit.state = Visit.V_ENTER
|
||||
visit.save()
|
||||
# 发送通知?
|
||||
phone = visit.create_by.phone
|
||||
phone = visit.create_by.phone if visit.create_by else None
|
||||
if phone:
|
||||
send_sms(phone=phone, template_code=1004, template_param={'name': '拉送货入厂'})
|
||||
|
|
Loading…
Reference in New Issue