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 datetime import datetime, timedelta
from django.db.models import Max, Min
from apps.utils.constants import DEFAULT_PWD
def sync_to_rep(ep: Employee):
# 个人信息完善时同步到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:
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):
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('重复创建工单')
if not Rpjmember.objects.filter(rpj=rpj).exists():
raise ParseError('请至少选择一位入厂人员')
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.belong_dept = rpj.belong_dept
ticket.create_by = rpj.create_by
@ -57,9 +60,11 @@ def rpj_member_leave(i: Rpjmember):
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():
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']
rpj_ = rpj_qs.order_by('-create_time').first()
rep.rpj = rpj_ # 更新当前入厂项目
@ -72,16 +77,19 @@ def rpj_member_leave(i: Rpjmember):
ep.user.belong_dept = rpj_dept
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:
if ep:
ep.job_state = Employee.JOB_OFF
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:
ep.user.is_deleted = True
ep.user.save()
def rpj_member_come(i: Rpjmember):
"""人员入厂
"""
@ -91,8 +99,10 @@ def rpj_member_come(i: Rpjmember):
rpj_dept = rpj.rparty.dept
post = Post.objects.get(code='remployee')
# 尝试找到人员
ep = Employee.objects.get_queryset(all=True).filter(id_number=rep.id_number).first()
ep2 = Employee.objects.get_queryset(all=True).filter(phone=rep.phone).first()
ep = Employee.objects.get_queryset(all=True).filter(
id_number=rep.id_number).first()
ep2 = Employee.objects.get_queryset(
all=True).filter(phone=rep.phone).first()
if ep:
pass
elif ep2:
@ -120,13 +130,14 @@ def rpj_member_come(i: Rpjmember):
user_e.is_deleted = False
user_e.save()
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:
user_e.is_deleted = False
else:
user_e = User()
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.phone = rep.phone
user_e.type = 'remployee'
@ -135,11 +146,11 @@ def rpj_member_come(i: Rpjmember):
user_e.save()
# 账号划给部门
UserPost.objects.get_or_create(user=user_e, dept=rpj_dept,
defaults={
'user': user_e,
'dept': rpj_dept,
'post': post
})
defaults={
'user': user_e,
'dept': rpj_dept,
'post': post
})
ep.user = user_e
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)
# if dh_face_card_end > leave_time:
# 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']
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):
@ -185,6 +198,7 @@ def rpj_certificate_in(rpjm: Rpjmember):
ct.file = i.file
ct.save()
def rpj_audit_end(ticket):
rpj = Rpj.objects.get(ticket=ticket)
# 更新入厂项目人员库
@ -208,7 +222,8 @@ def rpj_audit_end(ticket):
ct.save()
# 更新相关方资料库后续可从资料库里选择
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:
pass
else:
@ -224,4 +239,5 @@ def rpj_audit_end(ticket):
# 发送通知?
phone = rpj.create_by.phone if rpj.create_by else None
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 rest_framework.exceptions import ParseError
from django.db.models import Q
from apps.utils.constants import DEFAULT_PWD
# Create your views here.
@ -69,7 +70,7 @@ class RpartyViewSet(CustomModelViewSet):
serializer = UserCreateSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
ins = serializer.save(
type='remployee', password=make_password('0000'))
type='remployee', password=make_password(DEFAULT_PWD))
obj.admin = ins
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.db import transaction
from rest_framework.serializers import Serializer
from apps.utils.constants import DEFAULT_PWD
from apps.vm.services import sync_to_visitor, visit_driver_end
# Create your views here.
@ -30,7 +31,7 @@ class VisitViewSet(CustomModelViewSet):
retrieve_serializer_class = VisitDetailSerializer
filterset_fields = ['state', 'create_by', 'purpose']
select_related_fields = ['ticket', 'receptionist',
'ticket__workflow', 'ticket__state']
'ticket__workflow', 'ticket__state']
def get_queryset(self):
user = self.request.user
@ -102,7 +103,8 @@ class VisitorViewSet(CustomModelViewSet):
check_phone_code(phone, code)
# 查询是否已注册
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:
raise ParseError('该手机号已注册,请直接登录')
# 访客/司机账户创建
@ -113,11 +115,12 @@ class VisitorViewSet(CustomModelViewSet):
user.name = name
user.username = 'V_' + ranstr(10)
user.phone = phone
user.password = make_password('0000')
user.password = make_password(DEFAULT_PWD)
user.wx_openid = vdata.get('wx_openid', None)
user.wxmp_openid = vdata.get('wxmp_openid', None)
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:
ep2.user = user
ep2.is_deleted = False