对物流相关业务使用rpa技术poc阶段工作总结

作者:admin 2021-02-24 浏览:1005
导读: 具体工作分为两个流程:1,快递查询具体步骤登录系统->界面跳转->根据指定过滤条件从系统内筛选数据->导出到excel表格->对表格进行处理(添加新列,转换日期格式)->根据表格数据到对应快递网站查询物流状态->抓取网站信息->回填入execel表格->...

具体工作分为两个流程:

1,快递查询

具体步骤

登录系统->界面跳转->根据指定过滤条件从系统内筛选数据->导出到excel表格->对表格进行处理(添加新列,转换日期格式)->根据表格数据到对应快递网站查询物流状态->抓取网站信息->回填入execel表格->过滤出满足客户需求的表格数据插入到另一张表->发送邮件

本阶段难点:

1,将excel文件另存到指定目录下(该问题已解决,方法有待优化):
在这里插入图片描述![在这里插入图片描述](https://img-blog.csdnimg.cn/20190815110421253.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMxODY0OTcx,size_16,color_FFFFFF,t_701在这里插入图片描述2,时间格式转换(已解决)

def time_style_change(stroridate):

    #将fedex的签收时间转化的函数 转化后的格式 'YYYY-MM-DD hh-mm'

    listdate = stroridate.split(' ')

    strdate = listdate[1]

    strtime = listdate[3]

    listdate = strdate.split('/')

    print(listdate)

    strdate = listdate[2] + '-'+ listdate[0] + '-' +listdate[1]

    print(strdate)

    print(strtime)

    strdate = strdate + ' '+ strtime + ':00'

    return strdate

2,快递发货

具体步骤

登录系统->界面跳转->网页抓取所需要的数据->筛选数据是否满足条件(国内件)->根据数据递归创建目录->下载附件->制作信封->登录指定快递网站->填写收货人与货物信息->生成运单号->根据模板生成execl表格->回填系统->生成outlook邮件文件并保存到本地

本阶段难点:

1,判断是否为国内件

def isinternal(dict_temp):

    '''

    判断是否时国内件

    '''

    if dict_temp['国家'] == '中国' or dict_temp['国家'] == 'China':

        return True

    print(dict_temp['收货人'],'收货人')

    for ch in dict_temp['收货人']:

        if u'\u4e00' <= ch <= u'\u9fff':

            return True

    return False

2,创建指定目录下编号最大的文件夹

def getdirname(dirpath,invoice_num):

    '''

    返回并创建最新的文件夹

    '''

    list_dirname = os.listdir(dirpath)

    print(list_dirname)

    list_dirname = sorted(list_dirname,reverse=True)

    print(list_dirname)

    print(list_dirname[0])

    list_num = re.findall(r"\d+",list_dirname[0])

    max_num = int(list_num[0])

    print(max_num)

    max_num += 1

    today = time.strftime("%Y%m%d",time.localtime(time.time()))

    max_num = str(max_num).rjust(3,'0')

    dirname = str(max_num) + ' shipment ' + today

    final_dirpath = os.path.join(dirpath,dirname)

    print(final_dirpath)

    return [final_dirpath,str(max_num)]

3,自写滑动验证码,这里验证码滑块的偏移量是写死的,有时滑动验证的偏移量固定在某个范围内就可以搞定,不一定非要使用ocr,这里测试成功率为70%,优势就是免费,快,占用空间小,次数无限

在这里插入图片描述

123

import os

import re

import time

from ctypes import *

from ctypes.wintypes import *

from shutil import copyfile

import pandas as pd

import xlwt

import xlrd

from xlutils.copy import copy


def imouse_drag(x1, y1, x2, y2,button='left',speed=10):        

# (x1,y1),(x2,y2)分别表示:鼠标移动的初末坐标点   

    try:

        dll = windll.LoadLibrary("../Com.Isearch.Func.AutoIt/AutoItX3.dll")         

# 对象为:本地的一个动态链接库文件

        return dll.AU3_MouseClickDrag(button,x1,y1,x2,y2,speed)                     

# 使用鼠标点击拖动方法

    except Exception as e:

        raise e


4,指定范围内单元格添加边框

def execl__add_border(src,dst,len_data):

    data = xlrd.open_workbook(src,formatting_info=True) #formatting_info复制单元格格式

    w = copy(data)

    borders = xlwt.Borders()

    borders.left = xlwt.Borders.THIN

    borders.right = xlwt.Borders.THIN

    borders.top = xlwt.Borders.THIN

    borders.bottom = xlwt.Borders.THIN

    borders.left_colour = 0x40

    borders.right_colour = 0x40

    borders.top_colour = 0x40

    borders.bottom_colour = 0x40

    style = xlwt.XFStyle()

    style.borders = borders

    sheet1 = data.sheet_by_index(0)

    for i in range(len_data):

        x = i + 9

        for j in range(14):

            sheet_data = sheet1.cell(x, j).value

            print(sheet_data)

            w.get_sheet(0).write(x,j, sheet_data,style)

            j+=1

        i+=1

    w.save(dst)

5,outlook邮件正文添加超链接,使用快捷键搞定
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

在这里插入图片描述123
6.拷贝指定execl表格数据与格式插入到邮件正文

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结

本次开发总体而言比较成功,项目提前完工,效果客户也比较满意,但项目中也存在许多问题,具体如下:
1, 因为是边确认需求边开发(流程二非常复杂,不可能一下说清楚还都记住细节),前期写的很多代码后期都没用,前期考虑的很多问题后期都发现不需要解决
2,流程二比较复杂而且工期较紧,所以功能模块的拆分不够细化,后期投入生产需要代码重构
3,poc阶段遇到一个css拾取的问题,鼠标不能准确点击到超链接,至今仍未解决,生产过程中可能要直接获取href来解决该问题

转载请注明出处:admin,如有疑问,请联系(47379717)。
本文地址:http://ohoyoo.com/view/537.html

相关文章

添加回复:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。