前言
最近事没那么多,然后同事基于tkwinter制作了一款exe造单工具,感觉挺好玩的,然后叫同事分享了一下源码,自己去学习了tkwinter各大组件的相关语法及操作,所以写篇博客分享一下
同事款工具
下面是同事写的小工具,实现了不同环境的造单,以及相关cne订单的相关字段获取逻辑,以及从服务器中拿取造单时的sign
各版本实现功能
mytool.py
更新日志:
1、仅定义了从uat造单,最终自动复制返回响应结果的orderid
刚开始使用,然后先做了一个简单的造单自动去服务器拿sign,替换造单入参的sign,实现造单功能
mytoo2.0.py
更新日志:
1、2.0版本加入了uat,pre,instore环境的切换,最终自动复制请求入参的orderno,pre因打印sign的服务器不知道是那个展示还不能用
定义了uat造单和调拨单造单的功能
mytool3.o.py
更新日志:
1、更改请求入参的输入文本框为滚动文本框,方便用户直接在文本框中操作请求入参
因为entry输入框的问题不能实时的去找到相关的字段去修改,所以更改输入框控件为scrolledtext滚动框类型,适合相关的造单数据修改
mytool4.0.py
更新日志:
1、更新了uat和prd在服务器中拿sign的问题,instore因为通过geisign方法返回不了正确的sign,所以instore仍然从服务器中获取
2、更新了创建订单按钮根据按钮去请求不同的接口,调用不同的方法
这版更新了非调拨单,获取sign直接从方法里生成sign,而非从服务器拿取
mytool5.0.py
更新日志:
1、更新了消息弹窗从pyautogui更改为tkinter的message.showinfo控件
这版更新了弹窗提醒的控件,因为发现同事用的是pyautotui的控件,但是tkwinter本身自己有控件,更改控件后,exe文件明显变小
mytool6.0.py
更新日志:
1、解决每次都需要复制订单数据到文本框的烦恼,增加插入数据按钮,根据需要造的不同类型,插入门店单订单数据以及调拨单订单数据
2、修改调拨单单选框文字展示为Instore订单bug
mytool7.0.py
更新日志:
1、新增是否置顶按钮
mytool8.0.py
更新日志:
1、解决点击插入数据按钮后造单数据追加的问题
2、解决提取调拨单提取的响应结果为true,但判断为True的bug
3、解决插入数据的排序问题
4、设置窗口不可缩放
多次点击插入数据会变成数据追加,所以为了方便就加了个判断,点击插入数据后如果输入框有值就先清空
mytool9.0.py
更新日志:
1、修改造单异常情况弹窗为error弹窗
mytool10.0.py
更新日志:
1、新增类型选择框,根据不同的订单类型插入不同的造单数据到文本框
2、修改插入数据后warehouseid很难查找到的问题,现已经把warehouseid放在插入数据的前几行
3、修改提示语信息
因为有很多订单类型,所以新增了根据订单类型插入不同订单数据的功能
mytool11.0.py
更新日志:
1、新增门店订单发货及签收按钮
mytool12.py
更新日志:
1、修改选择订单类型控件由spinbox更改为combobox
因为spinbox的可读性有点差,切换也是只能点击切换,所以更改控件为combobox
mytool13.py
更新日志:
1、修改E360发货新增子界面,增加快递异常功能
因为订单发货还还含有其他异常情况,所以新增个子界面做相关操作
mytool14.py
更新日志:
1.更新调拨单造单地址及服务器拿sign地址
2.更改instore下单地址为预上线地址的问题
调拨单造单地址变更
mytool15.py
1.修改CNC造单数据
2.提取相关公共的造单地址以及服务器地址,方便后续维护
mytool16.py
1.新增CNE订单发货功能
mytool17.py
1.新增CNE根据环境判断进行uat或pre发货功能
2.修复未查找到ebts发货id时,提示语难理解问题
3.修改CNC造单参数更新后默认不为8939门店的问题
因为订单下单成功后会有推送仓库失败的现象,所以新增一层判断查询数据库中是否有ebts回调的相关数据
mytool18.py
1.修改了调拨单插入方式
2.新增了调拨单uat和pre造单环境的选择
3.删除调拨单单选框
4.设置打开程序默认窗口居中
5.新增复制订单id按钮
调拨单先前只实现了uat的造单,近期需要做预上线验证,所以新增pre的造单,然后将调拨单的类型放在了combox下供选择,环境处只保留uat和pre
mytool19.py
1.优化了某些代码以及判断条件
2.新增了复制orderno功能
因为经常需要用到orderno去查服务器日志,所以新增按钮去自动查找左侧插入数据中的orderno字段,通过pyperclip.copy方法自动复制到剪切板
mytool20.py
1.新增cne订单子窗口
2.加入了订单取消,拣货以及发货功能
3.修改了子窗口弹出位置
新增了一个子界面集成了cne订单的相关操作
结语
短短一个月更新了20版,这版本更新太快了,想到有啥功能就往上加了,都是平常需要用到的功能,分享给了测试组的同伴,相信效率会有相当大的提升!!