feat: abc!000增加default password
This commit is contained in:
parent
1934768b88
commit
8916349240
|
@ -12,11 +12,13 @@ from dateutil import tz
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
from django.db.models import Max, Min
|
from django.db.models import Max, Min
|
||||||
|
from apps.utils.constants import DEFAULT_PWD
|
||||||
|
|
||||||
|
|
||||||
def sync_to_rep(ep: Employee):
|
def sync_to_rep(ep: Employee):
|
||||||
# 个人信息完善时同步到rep表
|
# 个人信息完善时同步到rep表
|
||||||
Remployee.objects.filter(employee=ep).update(name=ep.name, phone=ep.phone, id_number=ep.id_number, photo=ep.photo)
|
Remployee.objects.filter(employee=ep).update(
|
||||||
|
name=ep.name, phone=ep.phone, id_number=ep.id_number, photo=ep.photo)
|
||||||
if ep.user:
|
if ep.user:
|
||||||
rps = Rparty.objects.filter(admin=ep.user)
|
rps = Rparty.objects.filter(admin=ep.user)
|
||||||
# 如果是管理员账户
|
# 如果是管理员账户
|
||||||
|
@ -33,12 +35,13 @@ def sync_to_rep(ep: Employee):
|
||||||
|
|
||||||
def bind_rpj(ticket: Ticket, transition: Transition, new_ticket_data: dict):
|
def bind_rpj(ticket: Ticket, transition: Transition, new_ticket_data: dict):
|
||||||
rpj = Rpj.objects.get(id=new_ticket_data['rpj'])
|
rpj = Rpj.objects.get(id=new_ticket_data['rpj'])
|
||||||
if rpj.ticket and rpj.ticket.id!=ticket.id:
|
if rpj.ticket and rpj.ticket.id != ticket.id:
|
||||||
raise ParseError('重复创建工单')
|
raise ParseError('重复创建工单')
|
||||||
if not Rpjmember.objects.filter(rpj=rpj).exists():
|
if not Rpjmember.objects.filter(rpj=rpj).exists():
|
||||||
raise ParseError('请至少选择一位入厂人员')
|
raise ParseError('请至少选择一位入厂人员')
|
||||||
ticket_data = ticket.ticket_data
|
ticket_data = ticket.ticket_data
|
||||||
ticket_data.update({'belong_dept': rpj.belong_dept.id if rpj.belong_dept else '0'})
|
ticket_data.update(
|
||||||
|
{'belong_dept': rpj.belong_dept.id if rpj.belong_dept else '0'})
|
||||||
ticket.ticket_data = ticket_data
|
ticket.ticket_data = ticket_data
|
||||||
ticket.belong_dept = rpj.belong_dept
|
ticket.belong_dept = rpj.belong_dept
|
||||||
ticket.create_by = rpj.create_by
|
ticket.create_by = rpj.create_by
|
||||||
|
@ -57,9 +60,11 @@ def rpj_member_leave(i: Rpjmember):
|
||||||
ep = rep.employee
|
ep = rep.employee
|
||||||
|
|
||||||
# 查找本人除此之外还在的项目
|
# 查找本人除此之外还在的项目
|
||||||
rpj_qs = Rpj.objects.filter(remployees=rep, state__in = [Rpj.RPJ_WORKING, Rpj.RPJ_ENTER]).exclude(id=rpj.id)
|
rpj_qs = Rpj.objects.filter(remployees=rep, state__in=[
|
||||||
|
Rpj.RPJ_WORKING, Rpj.RPJ_ENTER]).exclude(id=rpj.id)
|
||||||
if rpj_qs.exists():
|
if rpj_qs.exists():
|
||||||
leave_time__max = rpj_qs.aggregate(Max('leave_time'))['leave_time__max']
|
leave_time__max = rpj_qs.aggregate(Max('leave_time'))[
|
||||||
|
'leave_time__max']
|
||||||
come_time_min = rpj_qs.aggregate(Min('come_time'))['come_time__min']
|
come_time_min = rpj_qs.aggregate(Min('come_time'))['come_time__min']
|
||||||
rpj_ = rpj_qs.order_by('-create_time').first()
|
rpj_ = rpj_qs.order_by('-create_time').first()
|
||||||
rep.rpj = rpj_ # 更新当前入厂项目
|
rep.rpj = rpj_ # 更新当前入厂项目
|
||||||
|
@ -72,16 +77,19 @@ def rpj_member_leave(i: Rpjmember):
|
||||||
ep.user.belong_dept = rpj_dept
|
ep.user.belong_dept = rpj_dept
|
||||||
ep.user.save()
|
ep.user.save()
|
||||||
# 同步至大华人员库并下发人脸
|
# 同步至大华人员库并下发人脸
|
||||||
HrmService.sync_dahua_employee(ep, ep.photo, come_time_min, leave_time__max)
|
HrmService.sync_dahua_employee(
|
||||||
|
ep, ep.photo, come_time_min, leave_time__max)
|
||||||
else:
|
else:
|
||||||
if ep:
|
if ep:
|
||||||
ep.job_state = Employee.JOB_OFF
|
ep.job_state = Employee.JOB_OFF
|
||||||
ep.save()
|
ep.save()
|
||||||
HrmService.sync_dahua_employee(ep, ep.photo, rpj.come_time, timezone.now() + timedelta(hours=8))
|
HrmService.sync_dahua_employee(
|
||||||
|
ep, ep.photo, rpj.come_time, timezone.now() + timedelta(hours=8))
|
||||||
if ep.user:
|
if ep.user:
|
||||||
ep.user.is_deleted = True
|
ep.user.is_deleted = True
|
||||||
ep.user.save()
|
ep.user.save()
|
||||||
|
|
||||||
|
|
||||||
def rpj_member_come(i: Rpjmember):
|
def rpj_member_come(i: Rpjmember):
|
||||||
"""人员入厂
|
"""人员入厂
|
||||||
"""
|
"""
|
||||||
|
@ -91,8 +99,10 @@ def rpj_member_come(i: Rpjmember):
|
||||||
rpj_dept = rpj.rparty.dept
|
rpj_dept = rpj.rparty.dept
|
||||||
post = Post.objects.get(code='remployee')
|
post = Post.objects.get(code='remployee')
|
||||||
# 尝试找到人员
|
# 尝试找到人员
|
||||||
ep = Employee.objects.get_queryset(all=True).filter(id_number=rep.id_number).first()
|
ep = Employee.objects.get_queryset(all=True).filter(
|
||||||
ep2 = Employee.objects.get_queryset(all=True).filter(phone=rep.phone).first()
|
id_number=rep.id_number).first()
|
||||||
|
ep2 = Employee.objects.get_queryset(
|
||||||
|
all=True).filter(phone=rep.phone).first()
|
||||||
if ep:
|
if ep:
|
||||||
pass
|
pass
|
||||||
elif ep2:
|
elif ep2:
|
||||||
|
@ -120,13 +130,14 @@ def rpj_member_come(i: Rpjmember):
|
||||||
user_e.is_deleted = False
|
user_e.is_deleted = False
|
||||||
user_e.save()
|
user_e.save()
|
||||||
else:
|
else:
|
||||||
user_e = User.objects.get_queryset(all=True).filter(phone=rep.phone).first() # 看看有没有存在的账户
|
user_e = User.objects.get_queryset(all=True).filter(
|
||||||
|
phone=rep.phone).first() # 看看有没有存在的账户
|
||||||
if user_e:
|
if user_e:
|
||||||
user_e.is_deleted = False
|
user_e.is_deleted = False
|
||||||
else:
|
else:
|
||||||
user_e = User()
|
user_e = User()
|
||||||
user_e.username = 'RE_' + ranstr(6)
|
user_e.username = 'RE_' + ranstr(6)
|
||||||
user_e.password = make_password('0000')
|
user_e.password = make_password(DEFAULT_PWD)
|
||||||
user_e.name = rep.name
|
user_e.name = rep.name
|
||||||
user_e.phone = rep.phone
|
user_e.phone = rep.phone
|
||||||
user_e.type = 'remployee'
|
user_e.type = 'remployee'
|
||||||
|
@ -135,11 +146,11 @@ def rpj_member_come(i: Rpjmember):
|
||||||
user_e.save()
|
user_e.save()
|
||||||
# 账号划给部门
|
# 账号划给部门
|
||||||
UserPost.objects.get_or_create(user=user_e, dept=rpj_dept,
|
UserPost.objects.get_or_create(user=user_e, dept=rpj_dept,
|
||||||
defaults={
|
defaults={
|
||||||
'user': user_e,
|
'user': user_e,
|
||||||
'dept': rpj_dept,
|
'dept': rpj_dept,
|
||||||
'post': post
|
'post': post
|
||||||
})
|
})
|
||||||
ep.user = user_e
|
ep.user = user_e
|
||||||
ep.save()
|
ep.save()
|
||||||
# 回写
|
# 回写
|
||||||
|
@ -159,11 +170,13 @@ def rpj_member_come(i: Rpjmember):
|
||||||
# dh_face_card_end = datetime.strptime(dh_face_card_end, "%Y-%m-%d %H:%M:%S").replace(tzinfo=tzinfo)
|
# dh_face_card_end = datetime.strptime(dh_face_card_end, "%Y-%m-%d %H:%M:%S").replace(tzinfo=tzinfo)
|
||||||
# if dh_face_card_end > leave_time:
|
# if dh_face_card_end > leave_time:
|
||||||
# leave_time = dh_face_card_end
|
# leave_time = dh_face_card_end
|
||||||
rpj_qs = Rpj.objects.filter(remployees=rep, state__in = [Rpj.RPJ_WORKING, Rpj.RPJ_ENTER])|Rpj.objects.filter(id=rpj.id)
|
rpj_qs = Rpj.objects.filter(remployees=rep, state__in=[
|
||||||
|
Rpj.RPJ_WORKING, Rpj.RPJ_ENTER]) | Rpj.objects.filter(id=rpj.id)
|
||||||
leave_time__max = rpj_qs.aggregate(Max('leave_time'))['leave_time__max']
|
leave_time__max = rpj_qs.aggregate(Max('leave_time'))['leave_time__max']
|
||||||
come_time__min = rpj_qs.aggregate(Min('come_time'))['come_time__min']
|
come_time__min = rpj_qs.aggregate(Min('come_time'))['come_time__min']
|
||||||
# 同步至大华人员库并下发人脸
|
# 同步至大华人员库并下发人脸
|
||||||
HrmService.sync_dahua_employee(ep, old_photo, come_time__min, leave_time__max)
|
HrmService.sync_dahua_employee(
|
||||||
|
ep, old_photo, come_time__min, leave_time__max)
|
||||||
|
|
||||||
|
|
||||||
def rpj_certificate_in(rpjm: Rpjmember):
|
def rpj_certificate_in(rpjm: Rpjmember):
|
||||||
|
@ -185,6 +198,7 @@ def rpj_certificate_in(rpjm: Rpjmember):
|
||||||
ct.file = i.file
|
ct.file = i.file
|
||||||
ct.save()
|
ct.save()
|
||||||
|
|
||||||
|
|
||||||
def rpj_audit_end(ticket):
|
def rpj_audit_end(ticket):
|
||||||
rpj = Rpj.objects.get(ticket=ticket)
|
rpj = Rpj.objects.get(ticket=ticket)
|
||||||
# 更新入厂项目人员库
|
# 更新入厂项目人员库
|
||||||
|
@ -208,7 +222,8 @@ def rpj_audit_end(ticket):
|
||||||
ct.save()
|
ct.save()
|
||||||
# 更新相关方资料库后续可从资料库里选择
|
# 更新相关方资料库后续可从资料库里选择
|
||||||
for i in Rpjfile.objects.filter(rpj=rpj):
|
for i in Rpjfile.objects.filter(rpj=rpj):
|
||||||
rf = Rfile.objects.filter(file_cate=i.file_cate, rparty=i.rpj.rparty).first()
|
rf = Rfile.objects.filter(
|
||||||
|
file_cate=i.file_cate, rparty=i.rpj.rparty).first()
|
||||||
if rf:
|
if rf:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
|
@ -224,4 +239,5 @@ def rpj_audit_end(ticket):
|
||||||
# 发送通知?
|
# 发送通知?
|
||||||
phone = rpj.create_by.phone if rpj.create_by else None
|
phone = rpj.create_by.phone if rpj.create_by else None
|
||||||
if phone:
|
if phone:
|
||||||
send_sms(phone=phone, template_code=1004, template_param={'name': '相关方项目'})
|
send_sms(phone=phone, template_code=1004,
|
||||||
|
template_param={'name': '相关方项目'})
|
||||||
|
|
|
@ -18,6 +18,7 @@ from django.contrib.auth.hashers import make_password
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from rest_framework.exceptions import ParseError
|
from rest_framework.exceptions import ParseError
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
|
from apps.utils.constants import DEFAULT_PWD
|
||||||
|
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
@ -69,7 +70,7 @@ class RpartyViewSet(CustomModelViewSet):
|
||||||
serializer = UserCreateSerializer(data=request.data)
|
serializer = UserCreateSerializer(data=request.data)
|
||||||
serializer.is_valid(raise_exception=True)
|
serializer.is_valid(raise_exception=True)
|
||||||
ins = serializer.save(
|
ins = serializer.save(
|
||||||
type='remployee', password=make_password('0000'))
|
type='remployee', password=make_password(DEFAULT_PWD))
|
||||||
obj.admin = ins
|
obj.admin = ins
|
||||||
obj.save()
|
obj.save()
|
||||||
# 岗位设置为相关方岗位
|
# 岗位设置为相关方岗位
|
||||||
|
|
|
@ -16,6 +16,7 @@ from rest_framework.mixins import ListModelMixin, RetrieveModelMixin, CreateMode
|
||||||
from django.contrib.auth.hashers import make_password
|
from django.contrib.auth.hashers import make_password
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from rest_framework.serializers import Serializer
|
from rest_framework.serializers import Serializer
|
||||||
|
from apps.utils.constants import DEFAULT_PWD
|
||||||
|
|
||||||
from apps.vm.services import sync_to_visitor, visit_driver_end
|
from apps.vm.services import sync_to_visitor, visit_driver_end
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
@ -30,7 +31,7 @@ class VisitViewSet(CustomModelViewSet):
|
||||||
retrieve_serializer_class = VisitDetailSerializer
|
retrieve_serializer_class = VisitDetailSerializer
|
||||||
filterset_fields = ['state', 'create_by', 'purpose']
|
filterset_fields = ['state', 'create_by', 'purpose']
|
||||||
select_related_fields = ['ticket', 'receptionist',
|
select_related_fields = ['ticket', 'receptionist',
|
||||||
'ticket__workflow', 'ticket__state']
|
'ticket__workflow', 'ticket__state']
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
user = self.request.user
|
user = self.request.user
|
||||||
|
@ -102,7 +103,8 @@ class VisitorViewSet(CustomModelViewSet):
|
||||||
check_phone_code(phone, code)
|
check_phone_code(phone, code)
|
||||||
# 查询是否已注册
|
# 查询是否已注册
|
||||||
user = User.objects.filter(phone=phone).first()
|
user = User.objects.filter(phone=phone).first()
|
||||||
ep = Employee.objects.get_queryset(all=True).filter(phone=phone, user__isnull=False).first()
|
ep = Employee.objects.get_queryset(all=True).filter(
|
||||||
|
phone=phone, user__isnull=False).first()
|
||||||
if user or ep:
|
if user or ep:
|
||||||
raise ParseError('该手机号已注册,请直接登录')
|
raise ParseError('该手机号已注册,请直接登录')
|
||||||
# 访客/司机账户创建
|
# 访客/司机账户创建
|
||||||
|
@ -113,11 +115,12 @@ class VisitorViewSet(CustomModelViewSet):
|
||||||
user.name = name
|
user.name = name
|
||||||
user.username = 'V_' + ranstr(10)
|
user.username = 'V_' + ranstr(10)
|
||||||
user.phone = phone
|
user.phone = phone
|
||||||
user.password = make_password('0000')
|
user.password = make_password(DEFAULT_PWD)
|
||||||
user.wx_openid = vdata.get('wx_openid', None)
|
user.wx_openid = vdata.get('wx_openid', None)
|
||||||
user.wxmp_openid = vdata.get('wxmp_openid', None)
|
user.wxmp_openid = vdata.get('wxmp_openid', None)
|
||||||
user.save()
|
user.save()
|
||||||
ep2 = Employee.objects.get_queryset(all=True).filter(phone=phone, user__isnull=True).first()
|
ep2 = Employee.objects.get_queryset(all=True).filter(
|
||||||
|
phone=phone, user__isnull=True).first()
|
||||||
if ep2:
|
if ep2:
|
||||||
ep2.user = user
|
ep2.user = user
|
||||||
ep2.is_deleted = False
|
ep2.is_deleted = False
|
||||||
|
|
Loading…
Reference in New Issue