最近有一个需求,因物资审批量较大(近4000),业务希望开发帮忙批量拒绝
记录一下处理过程
分析
分析页面操作,发现单纯执行sql批量更新工作量比较大,并且存在跨系统数据传输的情况,考虑模拟用户操作执行更新数据
查看页面,观察提请求提交方式以及提交参数,发现是采用ajax提交,需要有审批的物资ID,审批状态以及审批意见组成.
因此确定方案:
组装url,执行批量执行组装后的url
组装数据
通过sql拼装请求的url
select 'http://uhq.keshiku.cn/admin//product/materialApply/materialApproveDo?
materialApplyId='||t.material_apply_id
||chr(38)||'flag=reject'||chr(38)
||'approveOpinion='||
decode((select v.vendor_ch_name
from tb_uhq_vendor v
where v.vendor_id = t.vendor_id)
,'天津恒玉德科技有限公司','填写不规范'
,'江西祥远科技有限公司','规格不明确,通用名未填'
,'北京泽诚顺达科贸有限公司','生产厂家不正确,通用名未填写,规格型号不正确'
,'北京昊瑞丰科技发展有限公司','通用名称,型号错误'
,'北京泰格悅和生物技术有限公司','定数单位,换算量错误'
,'没有维护通用名称,规格、型号不正确')
||chr(38)
||'upsMaterialApplyId='
||t.ups_material_apply_id
from tb_uhq_vendor_material_apply t
where t.material_category_main = '02'
and APPROVE_FLAG = 'pending'
执行sql,将结果导出为csv文件
执行sql
首先登录系统,之后百度搜"批量执行url",进入 http://www.openurls.com.cn/
根据电脑配置情况,批量执行,一次执行200到300条url
说明
- 批量执行数量根据电脑实际情况调整
- 因存在并发的情况,每次执行后通过sql确定是否执行完成.如果不一致,可以重新组装数据进行执行
- ajax的sql执行完成会返回可下载的json,需要重复点击左键,推荐使用按键精灵,定时执行点击左键