|
import requests |
|
import os |
|
import gradio as gr |
|
import openpyxl |
|
import string |
|
import re |
|
import shutil |
|
import time |
|
|
|
|
|
class presideOverBeantd: |
|
name: "" |
|
income: 0 |
|
frequency:0 |
|
wfrequency:0 |
|
ffrequency: 0 |
|
money:0 |
|
dfl: 0 |
|
jl: 0 |
|
class presideOverBean: |
|
name:"" |
|
tiem:"" |
|
type:"" |
|
income:0 |
|
frequency:0 |
|
ffrequency:0 |
|
money:0 |
|
dfl:0 |
|
jl:0 |
|
way:"" |
|
|
|
|
|
def pdjl(income): |
|
jl = 0 |
|
if (10000 > income >= 5000): |
|
jl = 8 |
|
elif (20000 > income >= 10000): |
|
jl = 18 |
|
elif (40000 > income >= 20000): |
|
jl = 48 |
|
elif (60000 > income >= 40000): |
|
jl = 128 |
|
elif (100000 > income >= 60000): |
|
jl = 228 |
|
elif (income >= 100000): |
|
jl = 368 |
|
return jl |
|
|
|
def jyjl(income): |
|
jl = 0 |
|
if (20000 > income >= 10000): |
|
jl = 15 |
|
elif (30000 > income >= 20000): |
|
jl = 30 |
|
elif (50000 > income >= 30000): |
|
jl = 52 |
|
elif (80000 > income >= 50000): |
|
jl = 88 |
|
elif (120000 > income >= 80000): |
|
jl = 168 |
|
elif (180000 > income >= 120000): |
|
jl = 288 |
|
elif (250000 > income >= 180000): |
|
jl = 388 |
|
elif (350000 > income >= 250000): |
|
jl = 688 |
|
elif (350000 < income): |
|
jl = income * 0.0035 |
|
return jl |
|
|
|
|
|
def dsjl(income): |
|
jl = 0 |
|
if (10000 > income > 5000): |
|
|
|
jl = income * 0.0005 |
|
elif (20000 > income > 10000): |
|
|
|
jl = income * 0.001 |
|
elif (30000 > income > 20000): |
|
jl = income * 0.0015 |
|
elif (50000 > income > 30000): |
|
jl = income * 0.002 |
|
elif (70000 > income > 50000): |
|
jl = income * 0.0025 |
|
elif (income > 70000): |
|
jl = income * 0.003 |
|
return jl |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def PDcalculate(ws,pbs,wb,file): |
|
tdpds = {} |
|
cd = ws.max_row |
|
for index in range(cd): |
|
if (ws["c" + str(index + 1)].value != "主持" and ws["c" + str(index + 1)].value != None): |
|
|
|
zincome = ws["g" + str(index + 1)].value |
|
if(zincome==None): |
|
zincome=0 |
|
zname = ws["c" + str(index + 1)].value.strip() |
|
ztiem = ws["b" + str(index + 1)].value.strip() |
|
|
|
if (pbs.get(zname + ztiem, 0) != 0): |
|
pbdx = pbs.get(zname + ztiem) |
|
if(pbdx.way == "5r"): |
|
pbdx.income = pbdx.income + zincome |
|
if(zincome >= 200): |
|
pbdx.frequency = 1+pbdx.frequency |
|
else: |
|
pbdx.ffrequency = 1 + pbdx.ffrequency |
|
else: |
|
pbdx.income = pbdx.income + zincome |
|
if (zincome >= 100): |
|
pbdx.frequency = 1 + pbdx.frequency |
|
else: |
|
pbdx.ffrequency = 1 + pbdx.ffrequency |
|
else: |
|
if (zname != ""): |
|
if (tdpds.get(zname + "替档", 0) != 0): |
|
tdpdx = tdpds.get(zname + "替档") |
|
tdpdx.income = zincome+tdpdx.income |
|
if (zincome >= 200): |
|
tdpdx.wfrequency = 1+tdpdx.wfrequency |
|
elif (zincome >= 100): |
|
tdpdx.frequency = 1+tdpdx.frequency |
|
elif (zincome < 100): |
|
tdpdx.ffrequency = 1+tdpdx.ffrequency |
|
else: |
|
tdpdx = presideOverBeantd() |
|
tdpdx.name = zname |
|
tdpdx.income = zincome |
|
if(zincome >= 200): |
|
tdpdx.frequency = 0 |
|
tdpdx.wfrequency = 1 |
|
tdpdx.ffrequency = 0 |
|
elif(zincome >= 100): |
|
tdpdx.frequency = 1 |
|
tdpdx.wfrequency = 0 |
|
tdpdx.ffrequency = 0 |
|
elif (zincome < 100): |
|
tdpdx.frequency = 0 |
|
tdpdx.wfrequency = 0 |
|
tdpdx.ffrequency = 1 |
|
tdpds[zname+"替档"] = tdpdx |
|
|
|
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"] = "类别" |
|
namesz = [] |
|
|
|
for k,xhz in pbs.items(): |
|
for zk,zxhz in tdpds.items(): |
|
if(xhz.name == zxhz.name): |
|
xhz.income = zxhz.income + xhz.income |
|
if(xhz.way == "5r"): |
|
xhz.frequency = zxhz.wfrequency+xhz.frequency |
|
xhz.ffrequency = zxhz.frequency + zxhz.ffrequency+xhz.ffrequency |
|
else: |
|
xhz.frequency = zxhz.frequency + zxhz.wfrequency + xhz.frequency |
|
xhz.ffrequency = zxhz.ffrequency + xhz.ffrequency |
|
namesz.append(zk) |
|
for qcname in namesz: |
|
print("换挡=======》"+qcname) |
|
del tdpds[qcname] |
|
|
|
flxhs = 1 |
|
for k, xhz in pbs.items(): |
|
flxhs += 1 |
|
myinde = str(flxhs) |
|
if (xhz.way == "5r"): |
|
xhz.money = xhz.frequency * 5 |
|
elif(xhz.way == "10r"): |
|
xhz.money = xhz.frequency*10 |
|
if(3000<=xhz.income<6500): |
|
xhz.money = xhz.money/2 |
|
elif(xhz.income<3000): |
|
xhz.money = 0 |
|
elif(xhz.way == "15r"): |
|
xhz.money = xhz.frequency * 15 |
|
if (5000 <= xhz.income < 10000): |
|
xhz.money = xhz.money / 2 |
|
elif (xhz.income < 5000): |
|
xhz.money = 0 |
|
elif(xhz.way == "提成"): |
|
xhz.money = xhz.income * 0.008 |
|
if(3<xhz.frequency+xhz.ffrequency < 5): |
|
if(xhz.money!=0): |
|
xhz.money = xhz.money / 2 |
|
elif(xhz.frequency+xhz.ffrequency <= 3): |
|
xhz.money = 0 |
|
|
|
hzws["a"+myinde] = xhz.name |
|
hzws["b"+myinde] = "正常档:"+str(xhz.frequency) + "--无效档:" + str(xhz.ffrequency) |
|
hzws["c"+myinde] = xhz.income |
|
hzws["d"+myinde] = round(xhz.money,1) |
|
hzws["e"+myinde] = xhz.way |
|
|
|
for zk, zxhz in tdpds.items(): |
|
flxhs += 1 |
|
myinde = str(flxhs) |
|
if(zxhz.frequency+zxhz.ffrequency+zxhz.wfrequency <= 3): |
|
|
|
zxhz.money = (zxhz.frequency+zxhz.wfrequency)*8 |
|
|
|
elif(zxhz.frequency+zxhz.ffrequency+zxhz.wfrequency<5): |
|
zxhz.money = zxhz.income * 0.008 |
|
zxhz.money = zxhz.money/2 |
|
else: |
|
zxhz.money = zxhz.income * 0.008 |
|
hzws["a" + myinde] = zxhz.name |
|
hzws["b" + myinde] = "正常档:" + str(zxhz.frequency+zxhz.wfrequency) + "--无效档:" + str(zxhz.ffrequency) |
|
hzws["c" + myinde] = zxhz.income |
|
hzws["d" + myinde] = round(zxhz.money, 1) |
|
hzws["e" + myinde] = "替档" if (zxhz.wfrequency+zxhz.ffrequency+zxhz.frequency) <= 3 else "提成" |
|
|
|
wb.save(file.name) |
|
return file.name |
|
|
|
|
|
|
|
def JYcalculate(ws, pbs, wb, file): |
|
tdpds = {} |
|
cd = ws.max_row |
|
for index in range(cd): |
|
if (ws["c" + str(index + 1)].value != "主持" and ws["c" + str(index + 1)].value != None): |
|
|
|
zincome = ws["e" + str(index + 1)].value |
|
if(zincome == None): |
|
zincome = 0 |
|
zname = ws["c" + str(index + 1)].value.strip() |
|
ztiem = ws["b" + str(index + 1)].value.strip() |
|
if (zincome >= 200): |
|
|
|
if (pbs.get(zname + ztiem, 0) != 0): |
|
|
|
pbs.get(zname + ztiem).frequency = pbs.get(zname + ztiem).frequency + 1 |
|
pbs.get(zname + ztiem).income = pbs.get(zname + ztiem).income + zincome |
|
else: |
|
|
|
|
|
if (zname != ""): |
|
|
|
if (tdpds.get(zname + "替档", 0) != 0): |
|
|
|
if (ztiem != "04:00-06:00" and ztiem != "06:00-08:00"): |
|
tdpds.get(zname + "替档").frequency = tdpds.get(zname + "替档").frequency + 1 |
|
else: |
|
tdpds.get(zname + "替档").wfrequency = tdpds.get(zname + "替档").wfrequency + 1 |
|
tdpds.get(zname + "替档").income = tdpds.get(zname + "替档").income + zincome |
|
else: |
|
pobtd = presideOverBeantd() |
|
pobtd.name = zname |
|
pobtd.income = zincome |
|
pobtd.ffrequency = 0 |
|
if (ztiem != "04:00-06:00" and ztiem != "06:00-08:00"): |
|
pobtd.frequency = 1 |
|
pobtd.wfrequency = 0 |
|
else: |
|
pobtd.frequency = 0 |
|
pobtd.wfrequency = 1 |
|
tdpds[zname + "替档"] = pobtd |
|
|
|
else: |
|
if (pbs.get(zname + ztiem, 0) != 0): |
|
|
|
pbs.get(zname + ztiem).ffrequency = pbs.get(zname + ztiem).ffrequency + 1 |
|
pbs.get(zname + ztiem).income = pbs.get(zname + ztiem).income + zincome |
|
else: |
|
|
|
if (zname != ""): |
|
|
|
if (tdpds.get(zname + "替档", 0) != 0): |
|
tdpds.get(zname + "替档").ffrequency = tdpds.get(zname + "替档").ffrequency + 1 |
|
tdpds.get(zname + "替档").income = tdpds.get(zname + "替档").income + zincome |
|
else: |
|
pobtd = presideOverBeantd() |
|
pobtd.name = zname |
|
pobtd.income = zincome |
|
pobtd.frequency = 0 |
|
pobtd.ffrequency = 1 |
|
pobtd.wfrequency = 0 |
|
tdpds[zname + "替档"] = pobtd |
|
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"] = "主持信息" |
|
|
|
flxhs = 1 |
|
for k, xhz in pbs.items(): |
|
flxhs += 1 |
|
jl = 0 |
|
if (xhz.tiem != "04:00-06:00" and xhz.tiem != "06:00-08:00"): |
|
if (xhz.type == 0): |
|
xhz.money = xhz.frequency * 20 |
|
xhz.dfl = xhz.frequency * 20 |
|
elif (xhz.type == "1"): |
|
xhz.money = xhz.frequency * 15 |
|
xhz.dfl = xhz.frequency * 15 |
|
else: |
|
if (xhz.type == 0): |
|
xhz.money = xhz.frequency * 25 |
|
xhz.dfl = xhz.frequency * 25 |
|
elif (xhz.type == "1"): |
|
xhz.money = xhz.frequency * 20 |
|
xhz.dfl = xhz.frequency * 20 |
|
if (xhz.type != "1"): |
|
jl = jyjl(xhz.income) |
|
xhz.money+=jl |
|
if (xhz.income < 3000): |
|
xhz.money = xhz.money / 2 |
|
|
|
if (3 < xhz.frequency+xhz.ffrequency < 5): |
|
xhz.money = xhz.money / 2 |
|
elif (xhz.frequency+xhz.ffrequency <= 3): |
|
xhz.money = 0 |
|
|
|
print(xhz.name, xhz.frequency, xhz.income, xhz.money) |
|
hzws["a" + str(flxhs)] = xhz.name |
|
hzws["b" + str(flxhs)] = "正常档"+str(xhz.frequency) + "无效档" + str(xhz.ffrequency) |
|
hzws["c" + str(flxhs)] = xhz.income |
|
hzws["d" + str(flxhs)] = jl |
|
hzws["e" + str(flxhs)] = xhz.dfl |
|
hzws["f" + str(flxhs)] = xhz.money if xhz.money < xhz.income * 0.01 else xhz.income * 0.01 |
|
hzws["g" + str(flxhs)] = "无任务档" if xhz.type == "1" else "" |
|
hzws["h" + str(flxhs)] = k |
|
for k,xhz2 in tdpds.items(): |
|
flxhs += 1 |
|
jl = 0 |
|
if (xhz2.frequency + xhz2.wfrequency + xhz2.ffrequency <= 3): |
|
xhz2.money = xhz2.frequency * 15 + xhz2.wfrequency * 20 |
|
xhz2.dfl = xhz2.frequency * 15 + xhz2.wfrequency * 20 |
|
else: |
|
xhz2.money = xhz2.frequency * 20 + xhz2.wfrequency * 25 |
|
xhz2.dfl = xhz2.frequency * 20 + xhz2.wfrequency * 25 |
|
jl = jyjl(xhz2.income) |
|
xhz2.money += jl |
|
if (xhz2.income < 3000): |
|
xhz2.money = xhz2.money / 2 |
|
|
|
if (3 < xhz2.frequency + xhz2.wfrequency + xhz2.ffrequency < 5): |
|
xhz2.money = xhz2.money / 2 |
|
|
|
xunf = False |
|
if (xhz2.frequency + xhz2.wfrequency + xhz2.ffrequency <= 3): |
|
for i in range(hzws.max_row): |
|
if (hzws["a" + str(i + 1)].value == xhz2.name): |
|
xhz = pbs.get(hzws["h" + str(i + 1)].value) |
|
print(xhz.name) |
|
mo = 0 |
|
zmo = pdjl(xhz.income + xhz2.income) |
|
if (xhz.type != 1): |
|
mo = xhz.dfl + xhz2.frequency * 15 + xhz2.frequency * 20 |
|
else: |
|
mo = xhz.dfl + xhz.frequency * 20 + xhz2.wfrequency * 25 |
|
zmo += mo |
|
print(xhz.name, zmo) |
|
hzws["b" + str(i + 1)] = hzws["b" + str(i + 1)].value + "换档" + str( |
|
xhz2.frequency + xhz2.wfrequency + xhz2.ffrequency) |
|
hzws["e" + str(i + 1)] = mo |
|
hzws["c" + str(i + 1)] = hzws["c" + str(i + 1)].value + xhz2.income |
|
hzws["f" + str(i + 1)] = zmo if zmo < (xhz.income + xhz2.income) * 0.01 else ( |
|
xhz.income + xhz2.income) * 0.01 |
|
xunf = True |
|
break |
|
if (xunf): |
|
continue |
|
hzws["g" + str(flxhs)] = "替档" |
|
hzws["a" + str(flxhs)] = xhz2.name |
|
hzws["b" + str(flxhs)] = "日档" + str(xhz2.frequency) + "夜档" + str(xhz2.wfrequency) + "无效档" + str( |
|
xhz2.ffrequency) |
|
hzws["c" + str(flxhs)] = xhz2.income |
|
hzws["d" + str(flxhs)] = jl |
|
hzws["e" + str(flxhs)] = xhz2.dfl |
|
hzws["f" + str(flxhs)] = xhz2.money |
|
hzws["h" + str(flxhs)] = "日档:" + str(xhz2.frequency) + " | 夜档:" + str(xhz2.wfrequency) |
|
else: |
|
hzws["g" + str(flxhs)] = "" |
|
hzws["a" + str(flxhs)] = xhz2.name |
|
hzws["b" + str(flxhs)] = "日档" + str(xhz2.frequency) + "夜档" + str(xhz2.wfrequency) + "无效档" + str( |
|
xhz2.ffrequency) |
|
hzws["c" + str(flxhs)] = xhz2.income |
|
hzws["d" + str(flxhs)] = jl |
|
hzws["e" + str(flxhs)] = xhz2.dfl |
|
hzws["f" + str(flxhs)] = xhz2.money if xhz2.money < xhz2.income * 0.01 else xhz2.income * 0.01 |
|
hzws["h" + str(flxhs)] = "日档:" + str(xhz2.frequency) + " | 夜档:" + str(xhz2.wfrequency) |
|
wb.save(file.name) |
|
return file.name |
|
|
|
|
|
|
|
def DScalculate(ws, pbs, wb, file): |
|
tdpds = {} |
|
shoug = {} |
|
cd = ws.max_row |
|
for index in range(cd): |
|
if (ws["c" + str(index + 1)].value != "主持" and ws["c" + str(index + 1)].value != None): |
|
print(ws["b" + str(index + 1)].value, ws["c" + str(index + 1)].value, ws["e" + str(index + 1)].value) |
|
zincome = ws["e" + str(index + 1)].value |
|
sgname = ws["g" + str(index + 1)].value |
|
sgz = ws["h" + str(index + 1)].value |
|
if(zincome==None): |
|
zincome=0 |
|
if(sgname!=None): |
|
if(sgz!=None): |
|
if(5000>sgz>=3000): |
|
shoug[sgname] = shoug.get(sgname,0) + sgz*0.001 |
|
elif(10000>sgz>=5000): |
|
shoug[sgname] = sgz * 0.0012 +shoug.get(sgname,0) |
|
elif (30000 > sgz >= 10000): |
|
shoug[sgname] = sgz * 0.0018+shoug.get(sgname,0) |
|
elif (50000 > sgz >= 30000): |
|
shoug[sgname] = sgz * 0.002+shoug.get(sgname,0) |
|
elif (100000 > sgz >= 50000): |
|
shoug[sgname] = sgz * 0.0025+shoug.get(sgname,0) |
|
elif (100000 < sgz): |
|
shoug[sgname] = sgz * 0.003+shoug.get(sgname,0) |
|
sgname = ws["i" + str(index + 1)].value |
|
sgz = ws["j" + str(index + 1)].value |
|
if (zincome == None): |
|
zincome = 0 |
|
if (sgname != None): |
|
if (sgz != None): |
|
if (5000 > sgz >= 3000): |
|
shoug[sgname] = sgz * 0.001+shoug.get(sgname,0) |
|
elif (10000 > sgz >= 5000): |
|
shoug[sgname] = sgz * 0.0012+shoug.get(sgname,0) |
|
elif (30000 > sgz >= 10000): |
|
shoug[sgname] = sgz * 0.0018+shoug.get(sgname,0) |
|
elif (50000 > sgz >= 30000): |
|
shoug[sgname] = sgz * 0.002+shoug.get(sgname,0) |
|
elif (100000 > sgz >= 50000): |
|
shoug[sgname] = sgz * 0.0025+shoug.get(sgname,0) |
|
elif (100000 < sgz): |
|
shoug[sgname] = sgz * 0.003+shoug.get(sgname,0) |
|
sgname = ws["k" + str(index + 1)].value |
|
sgz = ws["l" + str(index + 1)].value |
|
if (zincome == None): |
|
zincome = 0 |
|
if (sgname != None): |
|
if (sgz != None): |
|
if (5000 > sgz > 3000): |
|
shoug[sgname] = sgz * 0.001+shoug.get(sgname,0) |
|
elif (10000 > sgz >= 5000): |
|
shoug[sgname] = sgz * 0.0012+shoug.get(sgname,0) |
|
elif (30000 > sgz >= 10000): |
|
shoug[sgname] = sgz * 0.0018+shoug.get(sgname,0) |
|
elif (50000 > sgz >= 30000): |
|
shoug[sgname] = sgz * 0.002+shoug.get(sgname,0) |
|
elif (100000 > sgz >= 50000): |
|
shoug[sgname] = sgz * 0.0025+shoug.get(sgname,0) |
|
elif (100000 < sgz): |
|
shoug[sgname] = sgz * 0.003+shoug.get(sgname,0) |
|
|
|
|
|
zname = ws["c" + str(index + 1)].value.strip() |
|
ztiem = ws["b" + str(index + 1)].value.strip() |
|
if (zincome >= 100): |
|
|
|
if (pbs.get(zname + ztiem, 0) != 0): |
|
|
|
pbs.get(zname + ztiem).frequency = pbs.get(zname + ztiem).frequency + 1 |
|
pbs.get(zname + ztiem).income = pbs.get(zname + ztiem).income + zincome |
|
else: |
|
|
|
|
|
if (zname != ""): |
|
|
|
if (tdpds.get(zname + "替档", 0) != 0): |
|
|
|
if (ztiem != "04:00-06:00" and ztiem != "06:00-08:00" and ztiem != "02:00-04:00"): |
|
tdpds.get(zname + "替档").frequency = tdpds.get(zname + "替档").frequency + 1 |
|
else: |
|
tdpds.get(zname + "替档").wfrequency = tdpds.get(zname + "替档").wfrequency + 1 |
|
tdpds.get(zname + "替档").income = tdpds.get(zname + "替档").income + zincome |
|
else: |
|
pobtd = presideOverBeantd() |
|
pobtd.name = zname |
|
pobtd.income = zincome |
|
pobtd.ffrequency = 0 |
|
if (ztiem != "04:00-06:00" and ztiem != "06:00-08:00" and ztiem != "02:00-04:00"): |
|
pobtd.frequency = 1 |
|
pobtd.wfrequency = 0 |
|
else: |
|
pobtd.frequency = 0 |
|
pobtd.wfrequency = 1 |
|
tdpds[zname + "替档"] = pobtd |
|
else: |
|
if (pbs.get(zname + ztiem, 0) != 0): |
|
|
|
pbs.get(zname + ztiem).ffrequency = pbs.get(zname + ztiem).ffrequency + 1 |
|
pbs.get(zname + ztiem).income = pbs.get(zname + ztiem).income + zincome |
|
else: |
|
|
|
if (zname != ""): |
|
|
|
if (tdpds.get(zname + "替档", 0) != 0): |
|
tdpds.get(zname + "替档").ffrequency = tdpds.get(zname + "替档").ffrequency + 1 |
|
tdpds.get(zname + "替档").income = tdpds.get(zname + "替档").income + zincome |
|
else: |
|
pobtd = presideOverBeantd() |
|
pobtd.name = zname |
|
pobtd.income = zincome |
|
pobtd.frequency = 0 |
|
pobtd.ffrequency = 1 |
|
pobtd.wfrequency = 0 |
|
tdpds[zname + "替档"] = pobtd |
|
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"] = "主持信息" |
|
hzws["m1"] = "名称" |
|
hzws["n1"] = "收光福利" |
|
flxhs = 1 |
|
for k, xhz in pbs.items(): |
|
flxhs += 1 |
|
jl = 0 |
|
if (xhz.tiem != "04:00-06:00" and xhz.tiem != "06:00-08:00" and xhz.tiem != "02:00-04:00"): |
|
xhz.money = xhz.frequency * 10 |
|
xhz.dfl = xhz.frequency * 10 |
|
else: |
|
xhz.money = xhz.frequency * 15 |
|
xhz.dfl = xhz.frequency * 15 |
|
|
|
jl = dsjl(xhz.income) |
|
xhz.money += jl |
|
if(xhz.income<3000): |
|
xhz.money=xhz.money / 2 |
|
|
|
if (3 < xhz.frequency + xhz.ffrequency < 5): |
|
xhz.money = xhz.money / 2 |
|
elif (xhz.frequency + xhz.ffrequency <= 3): |
|
xhz.money = 0 |
|
|
|
print(xhz.name, xhz.frequency, xhz.income, xhz.money) |
|
hzws["a" + str(flxhs)] = xhz.name |
|
hzws["b" + str(flxhs)] ="正常档"+str(xhz.frequency) + "无效档" + str(xhz.ffrequency) |
|
hzws["c" + str(flxhs)] = xhz.income |
|
hzws["d" + str(flxhs)] = jl |
|
hzws["e" + str(flxhs)] = xhz.dfl |
|
hzws["f" + str(flxhs)] = xhz.money |
|
hzws["h" + str(flxhs)] = k |
|
|
|
for k, xhz2 in tdpds.items(): |
|
flxhs += 1 |
|
jl = 0 |
|
if (xhz2.frequency + xhz2.wfrequency + xhz2.ffrequency <= 3): |
|
xhz2.money = xhz2.frequency * 10 + xhz2.wfrequency * 15 |
|
xhz2.dfl = xhz2.frequency * 10 + xhz2.wfrequency * 15 |
|
else: |
|
xhz2.money = xhz2.frequency * 10 + xhz2.wfrequency * 15 |
|
xhz2.dfl = xhz2.frequency * 10 + xhz2.wfrequency * 15 |
|
|
|
jl = dsjl(xhz2.income) |
|
xhz2.money += jl |
|
|
|
if (xhz2.income < 3000): |
|
xhz2.money = xhz2.money / 2 |
|
|
|
|
|
if (3 < xhz2.frequency+ xhz2.ffrequency < 5): |
|
xhz2.money = xhz2.money / 2 |
|
elif (xhz2.frequency+xhz2.ffrequency <= 3): |
|
xhz2.money = 0 |
|
|
|
xunf = False |
|
if (xhz2.frequency + xhz2.wfrequency + xhz2.ffrequency <= 3): |
|
for i in range(hzws.max_row): |
|
if (hzws["a" + str(i + 1)].value == xhz2.name): |
|
xhz = pbs.get(hzws["h" + str(i + 1)].value) |
|
mo = 0 |
|
zmo = dsjl(xhz.income + xhz2.income) |
|
if (xhz.type != 1): |
|
mo = xhz.dfl + xhz2.wfrequency * 15 + xhz2.frequency * 10 |
|
else: |
|
mo = xhz.dfl + xhz2.wfrequency * 12 + xhz2.frequency * 8 |
|
zmo += mo |
|
print(xhz.name, zmo) |
|
hzws["b" + str(i + 1)] = hzws["b" + str(i + 1)].value + "换档" + str( |
|
xhz2.frequency + xhz2.wfrequency + xhz2.ffrequency) |
|
hzws["e" + str(i + 1)] = mo |
|
hzws["d" + str(i + 1)] = dsjl(xhz.income + xhz2.income) |
|
hzws["c" + str(i + 1)] = hzws["c" + str(i + 1)].value + xhz2.income |
|
hzws["f" + str(i + 1)] = zmo |
|
xunf = True |
|
break |
|
if (xunf): |
|
continue |
|
hzws["g" + str(flxhs)] = "替档" |
|
hzws["a" + str(flxhs)] = xhz2.name |
|
hzws["b" + str(flxhs)] = "日档" + str(xhz2.frequency) + "夜档" + str(xhz2.wfrequency) + "无效档" + str( |
|
xhz2.ffrequency) |
|
hzws["c" + str(flxhs)] = xhz2.income |
|
hzws["d" + str(flxhs)] = jl |
|
hzws["e" + str(flxhs)] = xhz2.dfl |
|
hzws["f" + str(flxhs)] = xhz2.money |
|
hzws["h" + str(flxhs)] = "日档:" + str(xhz2.frequency) + " | 夜档:" + str(xhz2.wfrequency) |
|
else: |
|
hzws["g" + str(flxhs)] = "" |
|
hzws["a" + str(flxhs)] = xhz2.name |
|
hzws["b" + str(flxhs)] = "日档" + str(xhz2.frequency) + "夜档" + str(xhz2.wfrequency) + "无效档" + str( |
|
xhz2.ffrequency) |
|
hzws["c" + str(flxhs)] = xhz2.income |
|
hzws["d" + str(flxhs)] = jl |
|
hzws["e" + str(flxhs)] = xhz2.dfl |
|
hzws["f" + str(flxhs)] = xhz2.money |
|
hzws["h" + str(flxhs)] = "日档:" + str(xhz2.frequency) + " | 夜档:" + str(xhz2.wfrequency) |
|
sgxhs = 1 |
|
for k,v in shoug.items(): |
|
sgxhs+=1 |
|
hzws["m" + str(sgxhs)] = k |
|
hzws["n" + str(sgxhs)] = v |
|
|
|
wb.save(file.name) |
|
print(file.name) |
|
return file.name |
|
|
|
|
|
|
|
def reverse(file,presid,type): |
|
wb = openpyxl.load_workbook(file.name) |
|
ws = wb.active |
|
pbs = {} |
|
|
|
|
|
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,"移除") |
|
|
|
|
|
|
|
|
|
for zc in presid.split("\n"): |
|
xx = zc.split("\t") |
|
pb = presideOverBean() |
|
pb.tiem = xx[0].strip() |
|
if(xx[1].strip()==""): |
|
continue |
|
xxx = xx[1].split("-") |
|
pb.name = xxx[0].strip() |
|
if(len(xxx)>1): |
|
pb.way = xxx[1].strip() |
|
else: |
|
pb.way = "无" |
|
pb.income=0 |
|
pb.frequency=0 |
|
pb.ffrequency = 0 |
|
pb.money=0 |
|
if(len(xx)>2): |
|
pb.type = xx[2].strip() |
|
else: |
|
pb.type = 0 |
|
pbs[pb.name+pb.tiem] = pb |
|
for itm in pbs.values(): |
|
print(itm.name,itm.tiem,itm.way) |
|
|
|
|
|
if(type=="派单"): |
|
print("====================派单") |
|
return PDcalculate(ws,pbs,wb,file) |
|
elif(type=="交友"): |
|
print("====================交友") |
|
return JYcalculate(ws,pbs,wb,file) |
|
elif (type == "大神"): |
|
print("====================大神") |
|
return DScalculate(ws,pbs,wb,file) |
|
|
|
|
|
demo = gr.Interface(reverse,inputs=[gr.File(label="打卡表"),gr.Text(label="主持排挡"),gr.Dropdown(["派单", "大神", "交友"], label="选择算法类别")],outputs= "file",) |
|
demo.launch() |