Python+QT 查询MAC地址属于某个生产工单的产品

    跟商务部小姐姐聊天,她抱怨说客户经常要报备一些产品,但是只是给了一个MAC地址列表,
    又不能给到对应的产品批次,每次都要花较多时间去匹配单独匹配,还容易出错,感觉这个活太没成就感。
    问我有没啥啥办法可以自动匹配,小姐姐,必定是有求必应的。

基础数据收集

基础的是如下两张表:
订单信息表

订单标号MAC地址段产品批次客户名称
Dawin0019C:82:74:A4:95:C5-9C:82:74:A4:95:C520230578SAM
Dawin0021C:82:74:A4:95:C5-1C:82:74:A4:95:C520230578SKD
Dawin0032C:82:74:A4:95:C5-2C:82:74:A4:95:C520230578SKD
Dawin0043C:82:74:A4:95:C5-3C:82:74:A4:95:C520230578SKD

客户地址表

客供地址匹配订单号匹配MAC地址段产品批次
9C:82:74:A4:95:C6
1C:82:74:A4:95:C5
2C:82:74:A4:95:C4
3C:82:74:A4:95:C0

实现核心代码

那如何通过客户地址表的客供地址,检索出来对应的匹配订单号,匹配MAC地址段,产品批次信息呢?简而言之,就是找到客供地址跟订单信息表中MAC地址段得包含关系既可。
核心代码如下:

  1. 对MAC地址段做分割处理,得到开始地址和结束地址。
tmplist = x['MAC地址段'].split('-')
tmplist[0]#开始地址
tmplist[1]#截止地址
  1. 判断mac地址属于地址段
def mac_to_int(mac):
    mac = mac.replace(':', '')
    return int(mac, 16)

def is_mac_in_range(mac_address, start_mac, end_mac):
    
    mac_int = mac_to_int(mac_address)
    start_int = mac_to_int(start_mac)
    end_int = mac_to_int(end_mac)
    print(mac_int, start_int, end_int)

    return start_int <= mac_int <= end_int
  1. 数据匹配可以使用Pandas库,在实际数据处理中非常方便。
    如上,即为整个小工具的核心代码,完整代码整理完再上链接,欢迎关注。

实现结果

QT界面如下图:
在这里插入图片描述注:参考上图,只需要选择数据文件( 将订单信息表和客户地址表存入两个不同的sheet中),并填写对应的sheet名称既可;

运行结果如下表:

客供地址匹配订单号匹配MAC地址段产品批次
9C:82:74:A4:95:C6Dawin0019C:82:74:A4:95:C5-9C:82:74:A4:95:C520230578
1C:82:74:A4:95:C5Dawin0021C:82:74:A4:95:C5-1C:82:74:A4:95:C520230578
2C:82:74:A4:95:C4Dawin0032C:82:74:A4:95:C5-2C:82:74:A4:95:C520230578
3C:82:74:A4:95:C0Dawin0043C:82:74:A4:95:C5-3C:82:74:A4:95:C520230578

心得感受

  1. 整个实现逻辑非常简单,也无特别复杂的逻辑关系;
  2. 但是这样的小工具对我们日常的一些工作还是有大的帮忙,可以节约比较多的时间,让我们的工作也更轻松;
  3. 准确率会比我们人工核对高非常多,确保基础数据格式整齐既可;

好吧,这样小姐姐就可以每天准点下班去跟男朋友约会了…

  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值