You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
aaaa/Application_Enter.py

258 lines
6.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

from openpyxl import load_workbook
from openpyxl.styles import *
import time
import warnings
warnings.filterwarnings('ignore')
#判断是否在校
#此处为入校申请
def inschool (u,a):
wb = load_workbook('Student.xlsx')
ws = wb.active
u_inschool = u+1
state = ws.cell(row=u_inschool, column=3).value
if state == 'y' and a == 1:
print("您已在学校,不能提交入校申请")
#在校状态不能申请入校
elif state == 'n' and a == 1:
print("您可以正常申请入校")
#离校状态可以正常申请入校
return 1
#填写表格
def write_form (a,c,p):
print("=============================================")
print("开始填表")
#申请类型
application = int(a)
#姓名
name = input("请输入姓名:")
#学号
id = input("请输入学号:")
#联系电话
phone = input("请输入联系电话:")
#时间
Time = ''
while Time == '':
t1 = input("请输入入校时间格式样例2022-07-22 23:00:00要求为当日且不能早于6点晚于22点")
# t1 = str('2022-10-23 21:00:00')
Time = str(time_judge(t1))
#校门
door = ''
while door == '':
d = int(input("请选择校门1.东门 2.南门 3.西门 4.北门):"))
door = door_choice(d)
#以下为前端数据,此处用输入代替
#地址
province = input("请输入省市:")
district = input("请输入区:")
place = input("请输入详细地址:")
#健康码
health_code = ''
while health_code == '':
h = str(input("请输入健康码状态(绿/黄/红):"))
health_code = health_code_judge(h)
#行程码
Tour_code = input("请输入行程码状态:")
#核酸
NAT = ''
while NAT == '':
n = str(input("请输入核酸状态(阴/阳):"))
NAT = NAT_judge(n)
#申请状态
application_count = int(c + 1)
#通过状态
Pass = int(p)
#提交确认
submit = Submit(name,id,phone,Time,door,province,district,place,health_code,Tour_code,NAT)
if submit == 'n':
print("填写取消,返回上级菜单")
return 0
#封装
data = data_set(application,name,id,phone,Time,door,province,district,place,health_code,Tour_code,NAT,application_count,Pass)
#print(data)
#写入excel
write(data)
#调整excel格式
style('Form.xlsx')
#判断时间合理性
def time_judge(t11):
t1 = time.strptime(t11, "%Y-%m-%d %H:%M:%S")
t = time.localtime()
year = str(t.tm_year)
mon = str(t.tm_mon)
day2 = str(t.tm_mday)
hour = str(t.tm_hour)
minute = str(t.tm_min)
sec = str(t.tm_sec)
t22 = str(year + '-' + mon + '-' + day2 + ' ' + hour + ':' + minute + ':' + sec)
t2 = time.strptime(t22, "%Y-%m-%d %H:%M:%S")
#判断填写时间是否比当前时间早
tl = (time.mktime(t1)-time.mktime(t2))
if tl <= 0:
print("请输入比当前时间晚的时间")
return ''
#判断日期是否为当日
day1 = str(t1.tm_mday)
if day1 != day2:
print("申请只能为当日")
return ''
hour1 = t1.tm_hour
minute1 = t1.tm_min
sec1 = t1.tm_sec
#判断申请时间是否晚于6点
if hour1 < 6:
print("入校必须晚于6点")
return ''
#判断申请时间是否早于10点
if hour1 > 22:
print("入校必须早于22点")
return ''
elif hour1 == 22 and minute1 != 0 and sec1 != 0:
print("入校必须早于22点")
return ''
return t11
#选择校门
def door_choice(d):
if d == 1:
return 'East'
elif d == 2:
return 'South'
elif d == 3:
return 'West'
elif d == 4:
return 'North'
else:
print("请选择正确的校门!")
return ''
#判断健康码信息填写正确性
def health_code_judge(h):
if h != "绿" and h != "" and h != "":
print("请输入正确的健康码信息")
return ''
else:
return h
#判断核酸信息填写正确性
def NAT_judge(n):
if n != "" and n != "":
print("请输入正确的核酸信息")
return ''
else:
return n
#提交确认
def Submit(name,id,phone,Time,door,province,district,place,health_code,Tour_code,NAT):
print("=============================================")
print("申请类型为:入校申请")
print("姓名:" + name)
print("学号:" + id)
print("联系电话:" + phone)
print("时间:" + Time)
print("校门:" + door)
print("省市:" + province)
print("区:" + district)
print("详细地址:" + place)
print("健康码信息:" + health_code)
print("行程码信息:" + Tour_code)
print("核酸:" + NAT)
print("申请状态:待审核")
print("通过状态:待审核")
submit = input("以上为填写信息是否提交y/n")
return submit
#数据封装
def data_set(application,name,id,phone,time,door,province,district,place,health_code,Tour_code,NAT,application_count,Pass):
data_form = {
"application": application,
"name": name,
"id": id,
"phone": phone,
"time": time,
"door": door,
"province": province,
"district": district,
"place": place,
"health_code": health_code,
"Tour_code": Tour_code,
"NAT": NAT,
"application_count": application_count,
"Pass": Pass
}
return data_form
#数据写入excel
def write(data):
wb = load_workbook('Form.xlsx')
ws = wb.active
d = (
data["application"],
data["name"],
data["id"],
data["phone"],
data["time"],
data["door"],
data["province"],
data["district"],
data["place"],
data["health_code"],
data["Tour_code"],
data["NAT"],
data["application_count"],
data["Pass"]
)
ws.append(d)
wb.save('Form.xlsx')
print("提交成功!")
#调整excel格式
def style(file):
wb = load_workbook(file)
ws = wb.active
for row in ws.iter_rows():
for cell in row:
if cell is not None:
cell.alignment = Alignment(horizontal='center',vertical='center')
wb.save(file)
#代码运行主体
x = 1
while x:
user = int(input("请选择用户1.张三 2.李四 3.王五):"))
print("您选择的是入校申请")
#申请类型1为入校申请 2为出校申请 此处默认为1
application = 1
#申请状态0无1有
application_count = 0
#通过状态默认为0
Pass = 0
if inschool(user,application):
write_form(application,application_count,Pass)
x = 0
else:
print("请返回上级菜单,提交申请请选择出校申请")