110 lines
3.5 KiB
Python
110 lines
3.5 KiB
Python
import operator
|
|
import os
|
|
import re
|
|
import pandas as pd
|
|
from copy import deepcopy
|
|
from fastapi import APIRouter, Depends, Request, File, UploadFile
|
|
from motor.motor_asyncio import AsyncIOMotorDatabase
|
|
|
|
from utils.dingding import get_redis_alluid, send_dates
|
|
from utils.jianli import get_resume
|
|
import crud, schemas
|
|
from datetime import datetime
|
|
from core.configuration import *
|
|
from db import get_database
|
|
from db.ckdb import get_ck_db, CKDrive
|
|
|
|
from models.interview_zsgc import InterviewDo
|
|
from utils import get_time, qujian_time, Download_xlsx, send_str_mail
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
# 增加入职人员
|
|
@router.post("/add_worker")
|
|
async def add_worker(
|
|
request: Request,
|
|
data_in: schemas.InWorkerQuery,
|
|
db: AsyncIOMotorDatabase = Depends(get_database)
|
|
) -> schemas.Msg:
|
|
""" 增加入职人员信息 """
|
|
insert_data = data_in.data_in
|
|
insert_data.update({
|
|
'worker_id': data_in.worker_id
|
|
})
|
|
data = await crud.worker_info.insert_worker(db, insert_data)
|
|
return schemas.Msg(code=200, msg='ok', data=data)
|
|
|
|
|
|
# 增加渠道
|
|
@router.post("/add_owner")
|
|
async def add_owner(
|
|
request: Request,
|
|
data_in: schemas.InOwnerQuery,
|
|
db: AsyncIOMotorDatabase = Depends(get_database)
|
|
) -> schemas.Msg:
|
|
""" 增加渠道信息 """
|
|
insert_data = data_in.data_in
|
|
insert_data.update({
|
|
'owner_id': data_in.owner_id
|
|
})
|
|
data = await crud.owner_info.insert_owner(db, insert_data)
|
|
return schemas.Msg(code=200, msg='ok', data=data)
|
|
|
|
|
|
# 查询入职人员信息
|
|
@router.post("/find_worker")
|
|
async def find_worker(
|
|
request: Request,
|
|
data_in: schemas.WorkerQuery,
|
|
db: AsyncIOMotorDatabase = Depends(get_database)
|
|
) -> schemas.Msg:
|
|
""" 查询入职人员信息 """
|
|
|
|
data = await crud.worker_info.find_worker_some(db, findlist=data_in.find_filed)
|
|
if not data:
|
|
return schemas.Msg(code=-9, msg='无数据', data=None)
|
|
return schemas.Msg(code=200, msg='ok', data=data)
|
|
|
|
|
|
# 查询入职人员信息
|
|
@router.post("/find_worker_form")
|
|
async def find_worker_form(
|
|
request: Request,
|
|
data_in: schemas.WorkerQuery,
|
|
db: AsyncIOMotorDatabase = Depends(get_database)
|
|
) -> schemas.Msg:
|
|
""" 查询入职人员信息 """
|
|
|
|
data = await crud.worker_info.find_worker_some(db, findlist=data_in.find_filed)
|
|
if not data:
|
|
return schemas.Msg(code=-9, msg='无数据', data=None)
|
|
res_msg = {
|
|
'p1-p3': [i['name'] for i in data if i['job_level'] in ['p1', 'p2', 'p3']],
|
|
'p4': [i['name'] for i in data if i['job_level'] == 'p4'],
|
|
'p5': [i['name'] for i in data if i['job_level'] == 'p5'],
|
|
'p6': [i['name'] for i in data if i['job_level'] == 'p6'],
|
|
'p7': [i['name'] for i in data if i['job_level'] == 'p7'],
|
|
'p8': [i['name'] for i in data if i['job_level'] == 'p8'],
|
|
'm1': [i['name'] for i in data if i['job_level'] == 'm1'],
|
|
'm2': [i['name'] for i in data if i['job_level'] == 'm2'],
|
|
'm3': [i['name'] for i in data if i['job_level'] == 'm3'],
|
|
'm4': [i['name'] for i in data if i['job_level'] == 'm4'],
|
|
'总人数': len(data)
|
|
}
|
|
|
|
return schemas.Msg(code=200, msg='ok', data=res_msg)
|
|
|
|
|
|
# 修改入职人员信息
|
|
@router.post("/update_worker")
|
|
async def update_worker(
|
|
request: Request,
|
|
data_in: schemas.WorkerQuery,
|
|
db: AsyncIOMotorDatabase = Depends(get_database)
|
|
) -> schemas.Msg:
|
|
""" 修改入职人员信息 """
|
|
|
|
data = await crud.worker_info.update_worker(db, data_in.worker_query, data_in.data_in)
|
|
return schemas.Msg(code=200, msg='ok', data=data)
|