【办公类110-04】20260806园园通小班分班后“待处理问题”(批量信息、默认省市区、待添加地址)
一、背景需求
8月5日没有分班前,待处理问题幼儿是0条。
现在分班后,待处理幼儿就有125条
晕,每年都是这种补充工作,明明系统可以表单里默认填充“否”,非要让老师们人工批量*125次。
打开幼儿表单:有两种类型
本地生源310:都是选否,不用补充户籍
外省生源:还要补充户籍
二、思路:
1.共有选择
1、就读:默认日托
2、民族:询问有没有少数民族,先手动做掉这些孩子。其他孩子默认汉族(后来决定默认汉族,后续再问班主任把个别少数民族孩子修改)
3、健康状况:默认良好
4、户口性质:默认:非农、户口类型:城市
5、军烈属、优抚、部队、随迁、孤儿、残疾,全部点击否
2.特殊选择:
1.筛选310的孩子,先把以上内容做掉。
2。非310孩子,先默认填写以上信息,然后暂听,人工根据身份证的前六位,豆包筛选出省市区(但是要手动选)
三、资料收集
1、获取少数民族
小班组长呼吁了一下。组员们开始给我发“无”
因为还不齐,我考虑先把所有孩子都默认“汉族”,然后等收集到个别几个少数名族的姓名后,再一个个修改。。
2、外省幼儿户口
组长呼吁后,组员们纷纷发我电子或图片的“点名册”
可以看到,每位班主任手打的信息都不同,有的只写了“省”,有的写了“省市”
但是园园通上必须落实到“省、市、区”,否则就保存不了。
因此这些数据都需要人工推定。
小结:基于现状,我决定先把上海户口孩子批量做掉,再集中精力研究“非上海户籍”
3.上海户口孩子的批量填写。
用之前分班的代码修改一下坐标位置。
【办公类110-03】20260805园园通小班分班(python)https://mp.csdn.net/mp_blog/creation/editor/163511702
计算上海身份证号码的孩子的人数
统计说明:125孩子里面上海身份证号的只有50人,还有75位非户籍身份证号的孩子需要人工搜索“户籍第的省市区”工作量巨大!
闲话少说,做个程序,先把50个310的孩子“干掉”
1.筛选本市户口
改成3101,并且检查一遍,有没有错误的。用了它筛选,人数更少48人
按照顺序,默认一条条修改,需要遍历数字32次
复制一份
''' 园园通小班孩子分班后补全信息 1.上海户口孩子都选“否” 2.不考虑户籍地 3.Python模拟鼠标点击园园通按钮,进行分班 4.前期已经3101搜索过了。 ''' import openpyxl import pyautogui import time import pyperclip import pygetwindow as gw # 1. 找到VSCode窗口(匹配标题含 Visual Studio Code) vscode_wins = gw.getWindowsWithTitle("Visual Studio Code") if not vscode_wins: print("未找到VSCode窗口,请先打开VSCode再运行!") else: win = vscode_wins[0] # 自动最小化VSCode win.minimize() print("VSCode已自动最小化,你有5秒时间移动鼠标到目标位置") time.sleep(5) # 等待5秒给你放鼠标 import random # 随机休眠:1~3秒,带小数,模拟真人操作 def rand_sleep(): t = random.uniform(1, 2) time.sleep(t) # 逐条生成 for i in range(2): # 按第一条的修改的位置 pyautogui.click(1802,657) rand_sleep() # 就读方式 pyautogui.click(1628,740) for i in range(1): pyautogui.press('down')# 按下↓默认选第一个 pyautogui.press('Enter')# 按回车 rand_sleep() # 健康状况 pyautogui.click(530,894) for i in range(1): pyautogui.press('down')# 按下↓默认选第一个 pyautogui.press('Enter')# 按回车 rand_sleep() # 港澳台 pyautogui.click(1042,807) for i in range(1): pyautogui.press('down')# 按下↓默认选第一个 pyautogui.press('Enter')# 按回车 rand_sleep() # 民族 pyautogui.click(1487,813) for i in range(1): pyautogui.press('down')# 按下↓默认选第一个 pyautogui.press('Enter')# 按回车 rand_sleep() # 按下箭头16下,进入下面的页面 pyautogui.click(1714,677) for i in range(16): pyautogui.press('down')# 按下↓默认选第一个 # pyautogui.press('Enter')# 按回车 rand_sleep() # 户口性质 pyautogui.click(677,148) for i in range(1): pyautogui.press('down')# 按下↓默认选第一个 pyautogui.press('Enter')# 按回车 rand_sleep() # 非农户口类型 pyautogui.click(1151,161) for i in range(1): pyautogui.press('down')# 按下↓默认选第一个 pyautogui.press('Enter')# 按回车 rand_sleep() # # 军烈等9项 a = ['547,221','545,291','554,364','1027,213','1029,290','1509,218'] for pos_str in a: x, y = pos_str.split(',') x = int(x) y = int(y) pyautogui.click(x, y) time.sleep(random.uniform(0.4, 0.6)) # # 按下箭头4下,进入底部页面看到保存按钮 pyautogui.click(1714,677) for i in range(4): pyautogui.press('down')# 按下↓默认选第一个 # pyautogui.press('Enter')# 按回车 rand_sleep() # 确认,回到最初的界面 pyautogui.click(893,949) time.sleep(5) # 保存时间长一点 # # # 清空名字点击× # # pyautogui.click(1049,376) # # rand_sleep() # # 清空名字点重制 # pyautogui.click(1259,443) # rand_sleep() wb.close() # 自动最大化VSCode win.maximize() print("VSCode已自动最大化,程序结束")''' 园园通小班孩子分班后补全信息 1.上海户口孩子都选“否” 2.不考虑户籍地 3.Python模拟鼠标点击园园通按钮,进行分班 4.前期已经3101搜索过了。 ''' import openpyxl import pyautogui import time import pyperclip import pygetwindow as gw # 1. 找到VSCode窗口(匹配标题含 Visual Studio Code) vscode_wins = gw.getWindowsWithTitle("Visual Studio Code") if not vscode_wins: print("未找到VSCode窗口,请先打开VSCode再运行!") else: win = vscode_wins[0] # 自动最小化VSCode win.minimize() print("VSCode已自动最小化,你有5秒时间移动鼠标到目标位置") time.sleep(5) # 等待5秒给你放鼠标 import random # 随机休眠:1~3秒,带小数,模拟真人操作 def rand_sleep(): t = random.uniform(1, 2) time.sleep(t) # 逐条生成 for i in range(29): # 按第一条的修改的位置 pyautogui.click(1802,657) rand_sleep() # 就读方式 pyautogui.click(1628,740) for i in range(1): pyautogui.press('down')# 按下↓默认选第一个 pyautogui.press('Enter')# 按回车 rand_sleep() # 健康状况 pyautogui.click(530,894) for i in range(1): pyautogui.press('down')# 按下↓默认选第一个 pyautogui.press('Enter')# 按回车 rand_sleep() # 港澳台 pyautogui.click(1042,807) for i in range(1): pyautogui.press('down')# 按下↓默认选第一个 pyautogui.press('Enter')# 按回车 rand_sleep() # 民族 pyautogui.click(1487,813) for i in range(1): pyautogui.press('down')# 按下↓默认选第一个 pyautogui.press('Enter')# 按回车 rand_sleep() # 按下箭头16下,进入下面的页面 pyautogui.click(1714,677) for i in range(16): pyautogui.press('down')# 按下↓默认选第一个 # pyautogui.press('Enter')# 按回车 rand_sleep() # 户口性质 pyautogui.click(677,148) for i in range(1): pyautogui.press('down')# 按下↓默认选第一个 pyautogui.press('Enter')# 按回车 rand_sleep() # 非农户口类型 pyautogui.click(1151,161) for i in range(1): pyautogui.press('down')# 按下↓默认选第一个 pyautogui.press('Enter')# 按回车 rand_sleep() # # 军烈等9项 a = ['547,221','545,291','554,364','1027,213','1029,290','1509,218'] for pos_str in a: x, y = pos_str.split(',') x = int(x) y = int(y) pyautogui.click(x, y) time.sleep(random.uniform(0.4, 0.6)) # # 按下箭头4下,进入底部页面看到保存按钮 pyautogui.click(1714,677) for i in range(4): pyautogui.press('down')# 按下↓默认选第一个 # pyautogui.press('Enter')# 按回车 rand_sleep() # 确认,回到最初的界面 pyautogui.click(893,949) time.sleep(5) # 保存时间长一点 # 自动最大化VSCode win.maximize() print("VSCode已自动最大化,程序结束")非常稳定29人,13分钟
换成一分园,继续删选3101
一分园15人,用了7分钟,把里面的红色信息填满。
4、外省身份证号的制作
外省身份证的前面部分和上海的一样,就是最后需要增加户口“省(已有)市(没有)区(没有)”而且“市区”都要手动选择。
最过分的是,户籍详细地址也是空,请问小班家长登记的时候会不写户籍地址吗?这都是园园通自己生成的问题!给老师增加多少工作量!
结果今年的报名表上真的没有“外省孩子”的户籍地址
组长说她可以马上向家长收集“户籍地址”
家长报名表上没有外省户籍地址,但是8月7日前就要完成,家长收集表单也要时间。所以为了完成任务,我决定就把户籍地“省市区”,默认全部选第一个,地址默认“待收集”。
先把所有的外省孩子的“待处理”摘掉。等班级老师收集齐了户籍地址,我再根据名字,批量修改地址,手动选择市、区。
''' 园园通小班孩子分班后补全信息 1.外省户口孩子都选“否” 2.户籍地默认选第一个 3.地址默认都是"待补充“ 3.Python模拟鼠标点击园园通按钮,进行分班 4.前期已经3101搜索过了。 ''' import openpyxl import pyautogui import time import pyperclip import pygetwindow as gw # 1. 找到VSCode窗口(匹配标题含 Visual Studio Code) vscode_wins = gw.getWindowsWithTitle("Visual Studio Code") if not vscode_wins: print("未找到VSCode窗口,请先打开VSCode再运行!") else: win = vscode_wins[0] # 自动最小化VSCode win.minimize() print("VSCode已自动最小化,你有5秒时间移动鼠标到目标位置") time.sleep(5) # 等待5秒给你放鼠标 import random # 随机休眠:1~3秒,带小数,模拟真人操作 def rand_sleep(): t = random.uniform(1, 2) time.sleep(t) # 逐条生成 for i in range(1): # 按第一条的修改的位置 pyautogui.click(1802,657) rand_sleep() # 就读方式 pyautogui.click(1628,740) for i in range(1): pyautogui.press('down')# 按下↓默认选第一个 pyautogui.press('Enter')# 按回车 rand_sleep() # 健康状况 pyautogui.click(530,894) for i in range(1): pyautogui.press('down')# 按下↓默认选第一个 pyautogui.press('Enter')# 按回车 rand_sleep() # 港澳台 pyautogui.click(1042,807) for i in range(1): pyautogui.press('down')# 按下↓默认选第一个 pyautogui.press('Enter')# 按回车 rand_sleep() # 民族 pyautogui.click(1487,813) for i in range(1): pyautogui.press('down')# 按下↓默认选第一个 pyautogui.press('Enter')# 按回车 rand_sleep() # 按下箭头16下,进入下面的页面 pyautogui.click(1714,677) for i in range(16): pyautogui.press('down')# 按下↓默认选第一个 # pyautogui.press('Enter')# 按回车 rand_sleep() # 户口性质 pyautogui.click(677,148) for i in range(1): pyautogui.press('down')# 按下↓默认选第一个 pyautogui.press('Enter')# 按回车 rand_sleep() # 非农户口类型 pyautogui.click(1151,161) for i in range(1): pyautogui.press('down')# 按下↓默认选第一个 pyautogui.press('Enter')# 按回车 rand_sleep() # # 军烈等9项 a = ['547,221','545,291','554,364','1027,213','1029,290','1509,218'] for pos_str in a: x, y = pos_str.split(',') x = int(x) y = int(y) pyautogui.click(x, y) time.sleep(random.uniform(0.4, 0.6)) # # 按下箭头4下,进入底部页面看到保存按钮 pyautogui.click(1714,677) for i in range(4): pyautogui.press('down')# 按下↓默认选第一个 # pyautogui.press('Enter')# 按回车 rand_sleep() # 外省-市(默认第一个) pyautogui.click(1061,195) for i in range(1): pyautogui.press('down')# 按下↓默认选第一个 pyautogui.press('Enter')# 按回车 rand_sleep() # # 外省-区(默认第一个) pyautogui.click(1525,188) for i in range(1): pyautogui.press('down')# 按下↓默认选第一个 pyautogui.press('Enter')# 按回车 rand_sleep() # 点击地址(待补充) pyautogui.click(472,342) # 1. 复制指定文字到剪贴板 # print('写入姓名:',name) address='待补充' pyperclip.copy(address) # 2. 模拟Ctrl+V粘贴 pyautogui.hotkey("ctrl", "v") rand_sleep() # 延迟2秒切换窗口 # 确认,回到最初的界面 pyautogui.click(893,949) time.sleep(5) # 保存时间长一点 # 自动最大化VSCode win.maximize() print("VSCode已自动最大化,程序结束")一个孩子大约40秒
运行过程中,容易超过位置,我决定把间隔秒数辣的长的一点
外地身份证里面会出现很多问题,人不能离开,要在旁边盯着。
外省详细地址里面已经有地址了。
还有一个园区,很多条
搞了半小时,里面至少有5条是外省ID上海户口,关闭VS,重新手动选了。
约到最后几条,页面越卡,容易错位。
还是花了一下午,终于把“待处理问题幼儿”搞完了。
园园通每天8:00-20:00可用,其他时段在维修,终于卡点完成了。
20260807下午,领导发消息——我们完成任务了。
感悟:
1、幸好用Python批量处理了“分班”“标红信息补全”,紧赶慢赶在规定时间完成任务。
2、虽然写代码,进行坐标测试很费时间(1-2小时),虽然Python运行起来速度很比较慢(我用了2-4秒随机暂停),虽然Python也会遇到网络卡顿或页面内容不需要填写(需要人工暂停程序,手动输入)……但是Python在大部分时间里模拟人工处理大量的幼儿信息任务了,
3、它可以不知疲倦地提取信息,准确点击和选择各种按钮,比人工要稳定多(如果人工一条条操作,很快会疲倦,情绪暴躁,容易出错)
AI编程技术造福所有人!
,,