Skip to content

MA异步导出文档

商户对账单异步导出方案

将商户对账单的导出进行修改,如果是同步导出的话则后端只负责传输数据给前端,生成的excel由前端生成(原先是由后端导出),如果超过200条信息,则生成异步任务,导出由后端生成.

manage接口  /custommanage/bill/search
Method
    GET
请求
    export          O   int         导出对账单,1为默认对账单,2为电子对账单
    search_type     M   int         搜索方式
    station_id      O   str         站点筛选
    sale_employee_id O  str         经理筛选
    search_txt      O   str         搜索
    settle_way      O   int         结款方式
    date_from       M   str         搜索时间范围
    date_to         M   str         搜索时间范围
响应
    data{
        async       M   int     0:同步,1:异步
        task_url    M   null/str    异步返回url,同步则为None
        filename    M   str   excel表格文件名
        data        M   list/null   同步返回类型为list的数据,异步为null
        例如 [{"payment_telephone": "12546525987",
      "sale_employee_name": "先款后货",
      "consignee_name": "xkhh002A",},{...},]

    }

前端可用接口

/task/list 任务列表查询

接口 /task/list  任务列表查询
接口描述: 批量任务查看
Method: Get
响应:
    code                    M       int             0为成功, 其它为失败
    msg                     M       str             错误提示信息
    data                    M       json            返回数据容器
    {
        finish              M       bool            True表示全部完成, 反之未完成
        tasks               M       list            任务列表
        [{
            task_id         M       int             任务id
            user_task_id    M       str             用户任务id
            task_name       M       str             任务名称
            status          M       int             任务状态, 1-已经提交, 2-正在执行, 3-已经完成, 4-部分成功, 停止执行, 5-执行失败(全部失败), 停止执行
            reason          M       str             失败原因
            progress        M       int             任务进度(1-100之间)
            type            M       int             任务类型(0-导入, 1-导出, 2-处理)
            result          M       json            返回数据容器
        }]
    }

示例
{
  "code": 0,
  "data": {
    "finish": true,
    "tasks": [
      {
        "type": 1,
        "result": {
          "link": "https://file.guanmai.cn/order_export_excel/5c25800d3edced641487e78c/订单列表_按订单查看_按下单日期_2018-11-15_2018-12-10.xlsx",
          "msg": "导出成功"
        },
        "status": 3,
        "user_task_id": null,
        "task_name": "订单列表_按订单查看_按下单日期_2018-11-15_2018-12-10.xlsx",
        "task_id": 64,
        "progress": 100
      },
      ],
  "msg": "ok"
}
接口    /task/clear_show    清空已经完成任务
Method: Post
请求:
    task_ids            O       list            任务id列表(task_ids与user_task_ids二者必有其一)
    user_task_ids       O       list            用户自定义id列表
响应:
    code                M       int             0为成功, 其它为失败
    msg                 M       str             错误提示信息
    data                M       null            返回数据容器

/task/get 单个任务查看

    接口描述: 单个任务查看
    Method: Get
    响应:
        code                    M       int             0为成功, 其它为失败
        msg                     M       str             错误提示信息
        data                    M       json            返回数据容器
        {
            task_id         M       int             任务id
            user_task_id    M       str             用户任务id
            task_name       M       str             任务名称
            status          M       int             任务状态, 1-已经提交, 2-正在执行, 3-已经完成, 4-部分成功, 停止执行, 5-执行失败(全部失败), 停止执行
            reason          M       str             失败原因
            progress        M       int             任务进度(1-100之间)
            type            M       int             任务类型(0-导入, 1-导出, 2-处理)
            result          M       json            返回数据容器

前端生成excel所需对应参数

data是一个列表,列表中的每个对象有以下数据

对账单
"KID" : "账户ID",
"company_name" : "公司名",
"username" : "帐号",
"SID" : "商户ID",
"resname" : "店铺名",
"district_name" : "城市",
"payment_name" : "结款人",
"payment_telephone" : "结款人电话",
"consignee_name" : "收货人",
"consignee_phone" : "收货人电话",
"sale_employee_name" : "销售经理",
"bill_tax" : "税额"  //注意:如果这个参数没传,说明用户没有导出显示税额的权限,这时打印的表单没有税额这一列
"amount" : "销售额(含运、税)" or "销售额(含运费)", //如果没有传bill_tax,则显示销售额(含运费)
"lack" : "差额"

需要给表tbl_async_task添加一个groupid的字段

alter table tbl_async_task add group_id INT NOT NULL DEFAULT -1 ;