feat: abc!000增加default password

This commit is contained in:
caoqianming 2024-02-19 16:36:02 +08:00
parent 1934768b88
commit 8916349240
3 changed files with 49 additions and 29 deletions

View File

@ -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': '相关方项目'})

View File

@ -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()
# 岗位设置为相关方岗位 # 岗位设置为相关方岗位

View File

@ -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