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): # print("日志=========夜档"+ws["b"+str(columns+2)].value+zcm) 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 # pob.frequency = 0 # pob.WheatSorting = 0 pobc[zcm] = pob else: # print("日志========日档" + ws["b" + str(columns + 2)].value + zcm) 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 # pob.nightWheatSorting = 0 # pob.nightfrequency = 0 pobc[zcm] = pob #添加id 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 # if (ipps.get(id, 0) != 0): # ipps.get(id).income = round(mv + ipps.get(id).income, 1) 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=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): # print(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"]: # print(mxl.value.split()) 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"]: # print(mxl.value.split()) 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) # for k,v in ipps.items(): # print("日志=================>流水:"+v.name,v.income) 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 # print(qm) if(qm!=None): # print(qm) for qq in qm.split("\n"): # print("日志==========>test:"+qq) result = re.sub(r'^(\d{2}-\d{2}).*', r'\1', qq) result2 = re.sub(r'^(\d{1}-\d{1}).*', r'\1', qq) # qq = qq.replace(result,"") 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) # qq = qq.replace(result,"") if (result != sg): sg = sg.replace(result, "") if (result2 != sg): sg = sg.replace(result2, "") sg = sg.replace(" ", "") try: # print(sg) gz1 = re.search(r'\d', sg) if gz1: fgd = gz1.start() name = sg[:fgd] mn = sg[fgd:] # print("mane:"+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 = {} #主持 name为key ppfls = {} #陪陪 ID为key quanmaifs = {} # 全麦福利 name为key shouguangfs = {} # 收光福利 name为key award = {} #奖励 key为maixu,ml # print(ws["a1"].value) # print(ws.max_row) # print(tuple(ws.columns)) # 主持福利计算 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 # print(v.name,v.maixu,v.maixuf) 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 ={} #"key为name"指针 earnings = {} #"key为name"流水 #主持福利 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 # hzws["f"+str(zcbshs)] = v.nighttimem + v.timem + v.aggregateAmountDPSM 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 # hzws["e" + str(zcGuide.get(ppv.name, 0))] = quanmaifs.get(ppv.name,0) # hzws["c" + str(zcGuide.get(ppv.name, 0))] = shouguangfs.get(ppv.name,0) # # if (quanmaifs.get(ppv.name, 0) + shouguangfs.get(ppv.name, 0) + ppv.maixuf >= ppv.income / 10): # hzws["f" + str(zcGuide.get(ppv.name, 0))] = hzws["f" + str(zcGuide.get(ppv.name, 0))].value + quanmaifs.get(ppv.name, 0) + shouguangfs.get(ppv.name, 0) + ppv.maixuf # else: # hzws["f" + str(zcGuide.get(ppv.name, 0))] = hzws["f" + str(zcGuide.get(ppv.name, 0))].value + ppv.income / 10 hzws["d"+str(zcGuide.get(ppv.name,0))]=ppv.maixuf print("日志=============="+ppv.name+str(zcGuide.get(ppv.name))) else: zcbshs+=1 # hzws["d"+str(ppxhs)] = ppv.maixuf # hzws["e" + str(ppxhs)] = quanmaifs.get(ppv.name,0) # hzws["c" + str(ppxhs)] = shouguangfs.get(ppv.name,0) # if(quanmaifs.get(ppv.name,0)+shouguangfs.get(ppv.name,0)+ppv.maixuf>=ppv.income/10): # hzws["f" + str(ppxhs)] = quanmaifs.get(ppv.name,0)+shouguangfs.get(ppv.name,0)+ppv.maixuf # else: # hzws["f" + str(ppxhs)] = ppv.income/10 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(share=True) demo.launch()