|
import os |
|
|
|
import requests |
|
import gradio as gr |
|
import openpyxl |
|
import string |
|
import re |
|
import math |
|
import shutil |
|
import time |
|
|
|
YED1="4-6" |
|
YED2="6-8" |
|
|
|
mywarning = [] |
|
|
|
|
|
class ppBean: |
|
id: "" |
|
name: "" |
|
maixu:0 |
|
maixuf:0 |
|
award:0 |
|
income:0 |
|
class presideOverBean: |
|
id:"" |
|
name:"" |
|
timem:0 |
|
nighttimem: 0 |
|
frequency:0 |
|
nightfrequency: 0 |
|
aggregateAmount:0 |
|
aggregateAmountDPSM:0 |
|
WheatSorting:0 |
|
nightWheatSorting:0 |
|
income:0 |
|
|
|
def poCalculate(wb, ws, lb, text,accountws,attestationws): |
|
|
|
|
|
pobc = {} |
|
|
|
for columns in range(ws.max_row-1): |
|
zcm = ws["c" + str(columns + 2)].value |
|
dc = ws["f" + str(columns + 2)].value |
|
ls = ws["i" + str(columns + 2)].value |
|
qm = ws["m" + str(columns + 2)].value |
|
|
|
if(zcm==None): |
|
zcm = "空主持" |
|
zcm = zcm.replace(" ", "") |
|
|
|
if(dc==None): |
|
dc=0 |
|
|
|
if(ls==None): |
|
ls = 0 |
|
|
|
if(qm==None): |
|
qm = 0 |
|
|
|
|
|
if(ws["b"+str(columns+2)].value==YED1 and ws["b"+str(columns+2)].value==YED2): |
|
|
|
|
|
if (pobc.get(zcm) == None): |
|
pob = presideOverBean(); |
|
pob.name = zcm |
|
pob.nightfrequency = dc |
|
pob.nightWheatSorting = ls |
|
pob.aggregateAmount = qm |
|
pob.id = 0 |
|
pob.income = 0 |
|
pob.frequency = 0 |
|
pob.WheatSorting = 0 |
|
|
|
pobc[zcm] = pob |
|
else: |
|
pob = pobc.get(zcm) |
|
pob.nightWheatSorting = pob.WheatSorting + ls |
|
pob.aggregateAmount = pob.aggregateAmount + qm |
|
pob.nightfrequency = pob.nightfrequency + dc |
|
pob.id = 0 |
|
pob.income = 0 |
|
|
|
|
|
|
|
|
|
pobc[zcm] = pob |
|
else: |
|
|
|
if(pobc.get(zcm)==None): |
|
pob = presideOverBean(); |
|
pob.name=zcm |
|
pob.frequency=dc |
|
pob.WheatSorting=ls |
|
pob.aggregateAmount=qm |
|
pob.id = 0 |
|
pob.income = 0 |
|
|
|
pob.nightWheatSorting = 0 |
|
pob.nightfrequency = 0 |
|
|
|
pobc[zcm] = pob |
|
else: |
|
pob = pobc.get(zcm) |
|
pob.WheatSorting = pob.WheatSorting+ls |
|
pob.aggregateAmount = pob.aggregateAmount + qm |
|
pob.frequency = pob.frequency + dc |
|
pob.id = 0 |
|
pob.income = 0 |
|
|
|
|
|
|
|
pobc[zcm] = pob |
|
|
|
for lie in range(accountws.max_row - 1): |
|
name = accountws["c" + str(lie + 1)].value |
|
if (pobc.get(name, 0) != 0): |
|
pobc.get(name).id = accountws["a" + str(lie + 1)].value |
|
print("日志==============> 主持对象:" + str(pobc.get(name).id), pobc.get(name).name) |
|
|
|
for lie in range(attestationws.max_row - 1): |
|
id = attestationws["q" + str(lie + 1)].value |
|
mv = attestationws["k" + str(lie + 1)].value |
|
|
|
|
|
for k,v in pobc.items(): |
|
if(v.id==id): |
|
v.income+=mv |
|
|
|
|
|
|
|
for k,v in pobc.items(): |
|
print("日志==========>主持:"+k+"日次:"+str(v.frequency)+"夜次:"+str(v.nightfrequency)+"全麦任务:"+str(v.WheatSorting)+"夜全麦任务:"+str(v.nightWheatSorting),"个人流水"+str(v.income)) |
|
sfpdzc = text.find(k)==-1 |
|
|
|
v.timem = v.frequency*20 |
|
|
|
v.nighttimem = v.nightfrequency*30 |
|
|
|
print("日志=========>主持:"+k+"日费:"+str(v.timem)+"夜费:"+str(v.nighttimem)) |
|
|
|
|
|
if(sfpdzc): |
|
|
|
print("日志==========》替档主持:"+k) |
|
if(v.frequency+v.nightfrequency<=4): |
|
v.timem=v.frequency*15 |
|
v.nighttimem=v.nightfrequency*20 |
|
else: |
|
if (v.frequency < 6): |
|
print("日志==========》档时不够主持:" + k) |
|
sfpdzc = False |
|
|
|
v.timem = v.timem / 2 |
|
v.nighttimem = v.nighttimem / 2 |
|
else: |
|
sfpdzc = False |
|
else: |
|
|
|
print("日志==========》排挡主持:" + k) |
|
|
|
if(v.frequency<4): |
|
|
|
print("日志==========》甩档主持:" + k) |
|
|
|
v.timem = 0 |
|
v.nighttimem = 0 |
|
if(v.frequency<6): |
|
|
|
print("日志==========》档时不够主持:" + k) |
|
|
|
v.timem = v.timem /2 |
|
v.nighttimem = v.nighttimem /2 |
|
|
|
if(sfpdzc!=True): |
|
print("全部日志-------------------------------->" + v.name, v.WheatSorting) |
|
if(v.WheatSorting<5): |
|
v.timem = v.timem /2 |
|
if(v.nightWheatSorting<3): |
|
v.nighttimem = v.nighttimem /2 |
|
if(v.WheatSorting>=15): |
|
print("判断成功日志-------------------------------->"+v.name,v.WheatSorting) |
|
v.timem=v.timem+v.frequency * 5 |
|
if (v.nightWheatSorting >= 15): |
|
v.nighttimem = v.nighttimem + v.nightfrequency * 5 |
|
print("功日志-------------------------------->" + v.name, v.WheatSorting,v.timem) |
|
|
|
if(v.aggregateAmount>50000): |
|
if(50000<v.aggregateAmount<100000): |
|
v.aggregateAmountDPSM=(v.aggregateAmount*0.012)/10 |
|
elif(100000<v.aggregateAmount<200000): |
|
v.aggregateAmountDPSM = (v.aggregateAmount * 0.016) / 10 |
|
elif(200000<v.aggregateAmount<300000): |
|
v.aggregateAmountDPSM = (v.aggregateAmount * 0.022) / 10 |
|
elif(300000<v.aggregateAmount<800000): |
|
v.aggregateAmountDPSM = (v.aggregateAmount * 0.025) / 10 |
|
elif(v.aggregateAmount>=800000): |
|
v.aggregateAmountDPSM = (v.aggregateAmount * 0.03) / 10 |
|
else: |
|
v.aggregateAmountDPSM=0 |
|
|
|
v.aggregateAmountDPSM = round(v.aggregateAmountDPSM,1) |
|
|
|
print("测试日志=============》主持:"+k,"档费"+str(v.nighttimem+v.timem+v.aggregateAmountDPSM)) |
|
|
|
return pobc |
|
|
|
|
|
|
|
|
|
def fb(name): |
|
|
|
name = name.replace("加坑", "", 1) |
|
name = name.replace("手速", "", 1) |
|
name = name.replace("麦序", "", 1) |
|
name = name.replace("空一", "", 1) |
|
name = name.replace("空二", "", 1) |
|
name = name.replace("空三", "", 1) |
|
name = name.replace("空1", "", 1) |
|
name = name.replace("空2", "", 1) |
|
name = name.replace("空3", "", 1) |
|
name = name.replace("关厅", "", 1) |
|
name = name.replace("全麦", "", 1) |
|
name = name.replace("0", "", 1) |
|
name = name.replace("1", "", 1) |
|
name = name.replace("2", "", 1) |
|
name = name.replace("3", "", 1) |
|
name = name.replace("4", "", 1) |
|
name = name.replace("5", "", 1) |
|
name = name.replace("6", "", 1) |
|
name = name.replace("7", "", 1) |
|
name = name.replace("8", "", 1) |
|
name = name.replace("st", "", 1) |
|
name = name.replace("ST", "", 1) |
|
name = name.replace("St", "", 1) |
|
name = name.replace("sT", "", 1) |
|
|
|
name = re.sub(r"满$", " ", name) |
|
name = re.sub(r"齐$", " ", name) |
|
name = re.sub(r"手速$", " ", name) |
|
name = re.sub(r"加坑$", " ", name) |
|
name = re.sub(r"\(.*?\)", "", name) |
|
z = re.sub(r"(.*?\)", "", name) |
|
|
|
z = re.sub(r"\(.*?\)", "", z) |
|
z = re.sub(r"(.*?\)", "", z) |
|
|
|
res = re.compile("[^\u4e00-\u9fa5^a-z^A-Z^0-9]") |
|
|
|
return res.sub("",z) |
|
|
|
|
|
def lj(ws,accountws,wb): |
|
npps = {} |
|
ipps = {} |
|
for mxl in ws["d"]: |
|
|
|
if (mxl.value != None): |
|
for name in mxl.value.split("\n"): |
|
name = name.lstrip() |
|
if (len(name) < 12): |
|
if (name != "截止麦序表:"): |
|
if (name != "当前麦序表:"): |
|
if (name.isspace() != True): |
|
pname = fb(name) |
|
print("日志==========================》陪陪名称" + pname) |
|
if (pname != ""): |
|
npps[pname] = npps.get(pname, 0) + 1 |
|
else: |
|
for xname in name.split("@"): |
|
if (xname != "截止麦序表:"): |
|
if (xname != "当前麦序表:"): |
|
if (xname.isspace() != True): |
|
pname = fb(xname) |
|
print("日志==========================》陪陪名称" + pname) |
|
if (pname != ""): |
|
npps[pname] = npps.get(pname, 0) + 1 |
|
for mxl in ws["e"]: |
|
|
|
if (mxl.value != None): |
|
for name in mxl.value.split("\n"): |
|
name = name.lstrip() |
|
if (len(name) < 12): |
|
if (name != "截止麦序表:"): |
|
if (name != "当前麦序表:"): |
|
if (name.isspace() != True): |
|
pname = fb(name) |
|
print("日志==========================》陪陪名称" + pname) |
|
if (pname != ""): |
|
npps[pname] = npps.get(pname, 0) + 1 |
|
else: |
|
for xname in name.split("@"): |
|
if (xname != "截止麦序表:"): |
|
if (xname != "当前麦序表:"): |
|
if (xname.isspace() != True): |
|
pname = fb(xname) |
|
print("日志==========================》陪陪名称" + pname) |
|
if (pname != ""): |
|
npps[pname] = npps.get(pname, 0) + 1 |
|
for lie in range(accountws.max_row-1): |
|
name = accountws["c" + str(lie+1)].value |
|
if(npps.get(name,0)!=0): |
|
ppdx = ppBean() |
|
ppdx.id = accountws["a" + str(lie+1)].value |
|
ppdx.name = name |
|
ppdx.maixu = npps.get(name) |
|
ppdx.income = 0 |
|
ipps[ppdx.id] = ppdx |
|
print("日志==============> 陪陪对象:" + str(ppdx.id),ppdx.name,ppdx.maixu) |
|
|
|
if(len(npps)!=len(ipps)): |
|
jh=[] |
|
jh1 = npps.keys() |
|
for v in ipps.values(): |
|
jh.append(v.name) |
|
print("日志==============> 新人:",list(set(jh)^set(jh1))) |
|
|
|
if '新增福利人员' in wb.sheetnames: |
|
print("工作表 '新增福利人员' 已经存在,将不再创建。") |
|
xzws = wb['新增福利人员'] |
|
|
|
xzws.delete_rows(1, xzws.max_row) |
|
else: |
|
|
|
xzws = wb.create_sheet(title='新增福利人员') |
|
print("创建了名为 '新增福利人员' 的新工作表。") |
|
|
|
xzxhs=0 |
|
for v in list(set(jh)^set(jh1)): |
|
xzxhs+=1 |
|
xzws["a" + str(xzxhs)] = v |
|
xzws["b" + str(xzxhs)] = npps.get(v) |
|
return ipps |
|
|
|
|
|
|
|
def AddWater(ipps, attestationws): |
|
for lie in range(attestationws.max_row - 1): |
|
id = attestationws["q" + str(lie+1)].value |
|
mv = attestationws["k" + str(lie + 1)].value |
|
if(ipps.get(id,0)!=0): |
|
ipps.get(id).income=round(mv+ipps.get(id).income,1) |
|
|
|
|
|
|
|
return ipps |
|
|
|
|
|
def ppCalculate(ws,accountws,attestationws,wb): |
|
ipps = {} |
|
ippls = {} |
|
|
|
ipps = lj(ws,accountws,wb) |
|
|
|
ippls = AddWater(ipps,attestationws) |
|
|
|
|
|
if(False): |
|
print("") |
|
else: |
|
for k,v in ippls.items(): |
|
if(v.maixu>=20): |
|
if(v.income>=8000): |
|
v.maixuf = v.maixu*5 |
|
elif(v.income>=6000): |
|
v.maixuf = v.maixu * 4 |
|
elif(v.income>=3000): |
|
v.maixuf = v.maixu * 3 |
|
elif(v.income<600): |
|
v.maixuf = v.maixu |
|
else: |
|
v.maixuf = v.maixu * 2 |
|
else: |
|
v.maixuf=0 |
|
print("日志==============>麦序福利"+v.name,v.maixuf,v.maixu,v.income) |
|
|
|
return ippls |
|
|
|
|
|
|
|
|
|
def quanmaiCalculate(ws): |
|
|
|
qmfl={} |
|
|
|
for lin in range(ws.max_row): |
|
qm = ws["h" + str(lin + 1)].value |
|
|
|
if(qm!=None): |
|
|
|
|
|
for qq in qm.split("\n"): |
|
|
|
result = re.sub(r'^(\d{2}-\d{2}).*', r'\1', qq) |
|
result2 = re.sub(r'^(\d{1}-\d{1}).*', r'\1', qq) |
|
|
|
if(result!=qq): |
|
qq=qq.replace(result,"") |
|
if(result2!=qq): |
|
qq = qq.replace(result2, "") |
|
qq = qq.replace(" ", "") |
|
|
|
try: |
|
gz1 = re.search(r'\d', qq) |
|
if gz1: |
|
fgd = gz1.start() |
|
name = qq[:fgd] |
|
mn = qq[fgd:] |
|
gz2 = re.search(r'\D', mn) |
|
if gz2: |
|
fhd = gz2.start() |
|
cs=1 |
|
if(mn[fhd + 1:]!=""): |
|
cs=int(mn[fhd + 1:]) |
|
qmjszg = int(mn[:fhd])*cs |
|
|
|
qmfl[name] = qmfl.get(name, 0) + math.floor(int(qmjszg) / 99) |
|
|
|
print("日志===============》名称:" + name + "全麦:" + mn + "计算值:" + str(qmjszg)) |
|
else: |
|
|
|
qmfl[name] = qmfl.get(name, 0) + math.floor(int(mn) / 99) |
|
|
|
print("日志===============》名称:" + name + "全麦:" + mn + "计算值:" + str(mn)) |
|
else: |
|
print("日志=============》异常"+qq) |
|
except ValueError: |
|
mywarning.append("全麦错误"+qq+"\t报错行:"+str(lin+1)) |
|
print("异常====================================================================================》全麦错误"+qq,lin+1) |
|
return qmfl |
|
|
|
|
|
|
|
def shouguangCalculate(ws): |
|
sgfl = {} |
|
|
|
for lin in range(ws.max_row): |
|
sg = ws["g" + str(lin + 1)].value |
|
if (sg != None): |
|
for sg in sg.split("\n"): |
|
result = re.sub(r'^(\d{2}-\d{2}).*', r'\1', sg) |
|
result2 = re.sub(r'^(\d{1}-\d{1}).*', r'\1', sg) |
|
|
|
if (result != sg): |
|
sg = sg.replace(result, "") |
|
if (result2 != sg): |
|
sg = sg.replace(result2, "") |
|
sg = sg.replace(" ", "") |
|
try: |
|
|
|
gz1 = re.search(r'\d', sg) |
|
if gz1: |
|
fgd = gz1.start() |
|
name = sg[:fgd] |
|
mn = sg[fgd:] |
|
|
|
if(int(mn)<5000): |
|
sgfl[name] = sgfl.get(name,0)+int(mn)*0.002 |
|
elif(int(mn)<10000): |
|
sgfl[name] = sgfl.get(name,0)+int(mn) * 0.0025 |
|
elif (int(mn) < 30000): |
|
sgfl[name] = sgfl.get(name,0)+int(mn) * 0.003 |
|
elif (int(mn) < 80000): |
|
sgfl[name] = sgfl.get(name,0)+int(mn) * 0.0035 |
|
elif (int(mn) > 80000): |
|
sgfl[name] = sgfl.get(name,0)+int(mn) * 0.0045 |
|
|
|
except ValueError: |
|
mywarning.append("收光错误" + sg+"\t报错行:"+str(lin + 1)) |
|
print("异常==================================================================================》收光错误"+sg,lin+1) |
|
|
|
for k,v in sgfl.items(): |
|
print("日志============>"+k,v) |
|
return sgfl |
|
|
|
|
|
def awardCalculate(ppfls): |
|
award={} |
|
mxaward=[] |
|
mlaward=[] |
|
for k,v in ppfls.items(): |
|
if(v.maixu>=50): |
|
mxaward.append(v) |
|
if(v.income>=6000): |
|
mlaward.append(v) |
|
|
|
sorted_mxaward = sorted(mxaward, key=lambda v : v.maixu,reverse=True) |
|
sorted_mlaward = sorted(mlaward, key=lambda v : v.income,reverse=True) |
|
|
|
award["maixu"]=sorted_mxaward[:3] |
|
award["ml"] = sorted_mlaward[:3] |
|
|
|
return award |
|
|
|
|
|
def calculate(file,text,accountFile,attestationFile): |
|
|
|
wb = openpyxl.load_workbook(file.name) |
|
ws = wb.active |
|
lb = tuple(ws.columns) |
|
|
|
mywarning[:] = [] |
|
|
|
|
|
accountwb = openpyxl.load_workbook(accountFile.name) |
|
accountws = accountwb.active |
|
|
|
|
|
attestationwb = openpyxl.load_workbook(attestationFile.name) |
|
attestationws = attestationwb.active |
|
|
|
|
|
pobs = {} |
|
ppfls = {} |
|
quanmaifs = {} |
|
shouguangfs = {} |
|
award = {} |
|
|
|
|
|
|
|
|
|
|
|
|
|
pobs = poCalculate(wb,ws,lb,text,accountws,attestationws) |
|
|
|
if '主持福利' in wb.sheetnames: |
|
print("工作表 '主持福利' 已经存在,将不再创建。") |
|
zcws = wb['主持福利'] |
|
|
|
zcws.delete_rows(1, zcws.max_row) |
|
else: |
|
|
|
zcws = wb.create_sheet(title='主持福利') |
|
print("创建了名为 '主持福利' 的新工作表。") |
|
|
|
zcws["a1"] = "主持名称" |
|
zcws["b1"] = "日档数" |
|
zcws["c1"] = "日档数全麦次数" |
|
zcws["d1"] = "夜档数" |
|
zcws["e1"] = "夜档数全麦次数" |
|
zcws["f1"] = "流水" |
|
zcws["g1"] = "流水分成" |
|
zcws["h1"] = "档福利" |
|
zcws["i1"] = "总主持福利" |
|
zcxhs=1 |
|
for k,v in pobs.items(): |
|
zcxhs+=1 |
|
zcws["a"+str(zcxhs)] = k |
|
zcws["b"+str(zcxhs)] = v.frequency |
|
zcws["c" + str(zcxhs)] = v.WheatSorting |
|
zcws["d" + str(zcxhs)] = v.nightfrequency |
|
zcws["e" + str(zcxhs)] = v.nightWheatSorting |
|
zcws["f" + str(zcxhs)] = v.aggregateAmount |
|
zcws["g" + str(zcxhs)] = v.aggregateAmountDPSM |
|
zcws["h" + str(zcxhs)] = v.nighttimem+v.timem |
|
zcws["i" + str(zcxhs)] = v.nighttimem + v.timem+ v.aggregateAmountDPSM |
|
|
|
|
|
|
|
|
|
ppfls = ppCalculate(ws,accountws,attestationws,wb) |
|
|
|
if '麦序福利' in wb.sheetnames: |
|
print("工作表 '麦序福利' 已经存在,将不再创建。") |
|
mxws = wb['麦序福利'] |
|
|
|
mxws.delete_rows(1, mxws.max_row) |
|
else: |
|
|
|
mxws = wb.create_sheet(title='麦序福利') |
|
print("创建了名为 '麦序福利' 的新工作表。") |
|
|
|
mxws["a1"] = "陪陪名称" |
|
mxws["b1"] = "麦序次数" |
|
mxws["c1"] = "流水" |
|
mxws["d1"] = "麦序福利" |
|
mxxhs = 1 |
|
for k, v in ppfls.items(): |
|
mxxhs+=1 |
|
|
|
mxws["a"+str(mxxhs)] = v.name |
|
mxws["b" + str(mxxhs)] = v.maixu |
|
mxws["c" + str(mxxhs)] = v.income |
|
mxws["d" + str(mxxhs)] = v.maixuf |
|
|
|
|
|
quanmaifs = quanmaiCalculate(ws) |
|
|
|
if '全麦福利' in wb.sheetnames: |
|
print("工作表 '全麦福利' 已经存在,将不再创建。") |
|
qmws = wb['全麦福利'] |
|
|
|
qmws.delete_rows(1, qmws.max_row) |
|
else: |
|
|
|
qmws = wb.create_sheet(title='全麦福利') |
|
print("创建了名为 '全麦福利' 的新工作表。") |
|
|
|
qmws["a1"] = "名称" |
|
qmws["b1"] = "全麦福利" |
|
|
|
|
|
qmxhs = 1 |
|
for k, v in quanmaifs.items(): |
|
qmxhs += 1 |
|
qmws["a"+str(qmxhs)] = k |
|
qmws["b" + str(qmxhs)] = v |
|
|
|
|
|
|
|
shouguangfs = shouguangCalculate(ws) |
|
|
|
if '收光福利' in wb.sheetnames: |
|
print("工作表 '收光福利' 已经存在,将不再创建。") |
|
sgws = wb['收光福利'] |
|
|
|
sgws.delete_rows(1, sgws.max_row) |
|
else: |
|
|
|
sgws = wb.create_sheet(title='收光福利') |
|
print("创建了名为 '收光福利' 的新工作表。") |
|
|
|
sgws["a1"] = "名称" |
|
sgws["b1"] = "收光福利" |
|
sgxhs = 1 |
|
for k, v in shouguangfs.items(): |
|
sgxhs += 1 |
|
sgws["a" + str(sgxhs)] = k |
|
sgws["b" + str(sgxhs)] = v |
|
|
|
|
|
|
|
|
|
award = awardCalculate(ppfls) |
|
if '钻石奖励' in wb.sheetnames: |
|
print("工作表 '奖励' 已经存在,将不再创建。") |
|
jlws = wb['钻石奖励'] |
|
|
|
jlws.delete_rows(1, jlws.max_row) |
|
else: |
|
|
|
jlws = wb.create_sheet(title='钻石奖励') |
|
print("创建了名为 '钻石奖励' 的新工作表。") |
|
|
|
jlws["a1"] = "名称" |
|
jlws["b1"] = "麦序" |
|
jlws["c1"] = "麦序奖励(单位钻石)" |
|
jlws["e1"] = "名称" |
|
jlws["f1"] = "流水" |
|
jlws["g1"] = "魅力值奖励(单位钻石)" |
|
|
|
mc={} |
|
mxjlxhs=1 |
|
|
|
for v in award.get("maixu"): |
|
mc[mxjlxhs] = v |
|
mxjlxhs += 1 |
|
no1 = 666 |
|
no2 = 366 |
|
no3 = 266 |
|
if(mc.get(1,0)!=0): |
|
if(mc.get(1).maixu>=70): |
|
jlws["a2"] = mc.get(1).name |
|
jlws["b2"] = mc.get(1).maixu |
|
if(mc.get(1).income>=30000): |
|
jlws["c2"] = no1 |
|
else: |
|
jlws["c2"] = no1/2 |
|
elif(mc.get(1).maixu>=60): |
|
jlws["a3"] = mc.get(1).name |
|
jlws["b3"] = mc.get(1).maixu |
|
if(mc.get(1).income>=30000): |
|
jlws["c3"] = no2 |
|
else: |
|
jlws["c3"] = no2/2 |
|
elif (mc.get(1).maixu >= 50): |
|
jlws["a4"] = mc.get(1).name |
|
jlws["b4"] = mc.get(1).maixu |
|
if(mc.get(1).income>=30000): |
|
jlws["c4"] = no3 |
|
else: |
|
jlws["c4"] = no3/2 |
|
|
|
if(mc.get(2,0)!=0): |
|
if(mc.get(2).maixu>=60): |
|
jlws["a3"] = mc.get(2).name |
|
jlws["b3"] = mc.get(2).maixu |
|
jlws["c3"] = no2 |
|
|
|
if(mc.get(2).income>=30000): |
|
jlws["c3"] = no2 |
|
else: |
|
jlws["c3"] = no2/2 |
|
|
|
elif (mc.get(2).maixu >= 50): |
|
jlws["a4"] = mc.get(2).name |
|
jlws["b4"] = mc.get(2).maixu |
|
|
|
if (mc.get(2).income >= 30000): |
|
jlws["c4"] = no3 |
|
else: |
|
jlws["c4"] = no3 / 2 |
|
|
|
if (mc.get(3, 0) != 0): |
|
if (mc.get(3).maixu >= 50): |
|
jlws["a4"] = mc.get(3).name |
|
jlws["b4"] = mc.get(3).maixu |
|
if (mc.get(3).income >= 30000): |
|
jlws["c4"] = no3 |
|
else: |
|
jlws["c4"] = no3 / 2 |
|
mljl=1 |
|
for v in award.get("ml"): |
|
mljl+=1 |
|
|
|
jlws["e" + str(mljl)] = v.name |
|
jlws["f" + str(mljl)] = v.income |
|
|
|
|
|
|
|
if '汇总' in wb.sheetnames: |
|
print("工作表 '汇总' 已经存在,将不再创建。") |
|
hzws = wb['汇总'] |
|
|
|
hzws.delete_rows(1, hzws.max_row) |
|
else: |
|
|
|
hzws = wb.create_sheet(title='汇总') |
|
print("创建了名为 '汇总' 的新工作表。") |
|
|
|
hzws["a1"] = "名称" |
|
hzws["b1"] = "主持福利" |
|
hzws["c1"] = "收光福利" |
|
hzws["d1"] = "麦序福利" |
|
hzws["e1"] = "全麦福利" |
|
hzws["f1"] = "全部福利" |
|
hzws["g1"] = "汇总福利" |
|
hzws["h1"] = "个人流水" |
|
zcbshs = 1 |
|
zcGuide ={} |
|
earnings = {} |
|
|
|
|
|
for k,v in pobs.items(): |
|
if(v.timem+v.nighttimem>0): |
|
earnings[k] = v.income |
|
zcbshs+=1 |
|
hzws["a"+str(zcbshs)] = k |
|
hzws["b" + str(zcbshs)] = v.nighttimem + v.timem + v.aggregateAmountDPSM |
|
hzws["h"+ str(zcbshs)] = v.income |
|
|
|
zcGuide[k]=zcbshs |
|
|
|
for ppv in ppfls.values(): |
|
earnings[ppv.name]=ppv.income |
|
if(ppv.maixuf>0): |
|
if(zcGuide.get(ppv.name,0)!=0): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
hzws["d"+str(zcGuide.get(ppv.name,0))]=ppv.maixuf |
|
print("日志=============="+ppv.name+str(zcGuide.get(ppv.name))) |
|
else: |
|
zcbshs+=1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
hzws["a" + str(zcbshs)] = ppv.name |
|
hzws["d"+str(zcbshs)] = ppv.maixuf |
|
hzws["h" + str(zcbshs)] = ppv.income |
|
zcGuide[ppv.name] = zcbshs |
|
print("日志=============" + ppv.name + str(zcGuide.get(ppv.name,"纯陪陪"))) |
|
|
|
for sgv,sgk in shouguangfs.items(): |
|
if (zcGuide.get(sgv, 0) != 0): |
|
hzws["c" + str(zcGuide.get(sgv, 0))] = sgk |
|
else: |
|
zcbshs += 1 |
|
hzws["a" + str(zcbshs)] = sgv |
|
hzws["c" + str(zcbshs)] = sgk |
|
zcGuide[sgv] = zcbshs |
|
|
|
|
|
for qmv,qmk in quanmaifs.items(): |
|
if (zcGuide.get(qmv, 0) != 0): |
|
hzws["e" + str(zcGuide.get(qmv, 0))] = qmk |
|
else: |
|
zcbshs += 1 |
|
hzws["a" + str(zcbshs)] = qmv |
|
hzws["e" + str(zcbshs)] = qmk |
|
zcGuide[qmv] = zcbshs |
|
|
|
|
|
for hzk,hzv in zcGuide.items(): |
|
if(hzws["c" + str(hzv)].value!=None): |
|
sgh = hzws["c" + str(hzv)].value |
|
else: |
|
sgh = 0 |
|
if(hzws["d" + str(hzv)].value!=None): |
|
mxh = hzws["d" + str(hzv)].value |
|
else: |
|
mxh = 0 |
|
if(hzws["e" + str(hzv)].value!=None): |
|
qmh = hzws["e" + str(hzv)].value |
|
else: |
|
qmh=0 |
|
print("日志============>"+hzk+":::"+str(earnings.get(hzk,0)),sgh,mxh,qmh) |
|
|
|
if(earnings.get(hzk,0)!=0): |
|
hzws["g" + str(hzv)] = sgh+mxh+qmh + (hzws["b" + str(hzv)].value if hzws["b" + str(hzv)].value!=None else 0) |
|
if(earnings.get(hzk)/10>sgh+mxh+qmh): |
|
print("日志======================>够:"+str(sgh+mxh+qmh)) |
|
hzws["f" + str(hzv)] = sgh+mxh+qmh + (hzws["b" + str(hzv)].value if hzws["b" + str(hzv)].value!=None else 0) |
|
else: |
|
print("日志======================>不够:" + str(earnings.get(hzk)/10)) |
|
hzws["f" + str(hzv)] = earnings.get(hzk)/10 + (hzws["b" + str(hzv)].value if hzws["b" + str(hzv)].value!=None else 0) |
|
else: |
|
mywarning.append("请检查陪陪ID是否正确:"+hzk) |
|
print("异常==================================================================>请检查陪陪ID是否正确"+hzk) |
|
|
|
for xhs in range(hzws.max_row): |
|
xhs+=1 |
|
if(hzws["b" + str(xhs)].value==None): |
|
hzws["b" + str(xhs)] = 0 |
|
if (hzws["c" + str(xhs)].value == None): |
|
hzws["c" + str(xhs)] = 0 |
|
if (hzws["d" + str(xhs)].value == None): |
|
hzws["d" + str(xhs)] = 0 |
|
if (hzws["e" + str(xhs)].value == None): |
|
hzws["e" + str(xhs)] = 0 |
|
if (hzws["f" + str(xhs)].value == None): |
|
hzws["f" + str(xhs)] = 0 |
|
if (hzws["g" + str(xhs)].value == None): |
|
hzws["g" + str(xhs)] = 0 |
|
if (hzws["h" + str(xhs)].value == None): |
|
hzws["h" + str(xhs)] = 0 |
|
wb.save(file.name) |
|
|
|
warning="警报日志::" |
|
for v in mywarning: |
|
warning = warning+'\n'+v |
|
|
|
return file.name,warning |
|
|
|
def reverse(file,text,accountFile,attestationFile): |
|
wz="/tmp/gradio/" |
|
print(file.name) |
|
files = os.listdir(wz) |
|
print("文件信息") |
|
|
|
for xfile in files: |
|
print("--------------") |
|
print(xfile) |
|
if(os.path.isdir(wz+xfile)): |
|
ftime = time.strftime("%Y-%m-%d", time.localtime(os.stat(wz + xfile).st_ctime)) |
|
mtime = time.strftime("%Y-%m-%d", time.localtime(time.time())) |
|
print(time.strftime("%Y-%m-%d",time.localtime(os.stat(wz+xfile).st_ctime))) |
|
print(time.strftime("%Y-%m-%d",time.localtime(time.time()))) |
|
|
|
if(ftime!=mtime): |
|
shutil.rmtree(wz + xfile) |
|
print(ftime,xfile,"移除") |
|
|
|
|
|
|
|
return calculate(file,text,accountFile,attestationFile) |
|
demo = gr.Interface(reverse,inputs=[gr.File(label="打卡表"),gr.Text(label="主持排挡"),gr.File(label="id认证表"),gr.File(label="厅流水表")],outputs= ["file","text"]) |
|
|
|
demo.launch() |