美文网首页
AZ 结算,暂停,作废 方案

AZ 结算,暂停,作废 方案

作者: 时代小召唤 | 来源:发表于2017-05-11 17:01 被阅读0次

    需求


    • 工单需要暂停和作废,暂停作废需要有可配置的流程

    • 北汽通过预先设置的条件自动进入结算

    • 江淮手动选择工单进行结算

    架构设计


    结算单是独立的模块 在AZ主站项目下 集成Aibol框架 接入 流程引擎

    作废/暂停 同时存在于需要 暂停和作废 的项目下

    比如工单有作废 暂停 结算也有 作废 暂停

    总结: 结算单 和 工单 平级 , 每个都有独立的 作废/暂停

    具体方案


    • 有独立的流程管理页面 来为每个车厂配置特有的 结算流程

    结算流程图管理页面 (考虑加入到workflow项目中统一管理),比如在现有的管理页面中 加入下拉,也可以用侧边栏菜单分类(作废和暂停要分为 工单作废和暂停结算单作废和暂停)

    image.png

    上图申请task应该不需要,点击了按钮 就自动申请了

    暂停/作废
    {
        "_id" : ObjectId("5913c793ad273115ccf31231"),
        "CreatedWhen" : ISODate("2017-05-11T02:08:19.255Z"),
        "CreatedBy" : null,
        "LastModifiedWhen" : ISODate("2017-05-11T02:08:19.257Z"),
        "LastModifiedBy" : null,
        "Status" : 0,
    
        "orderId" : ObjectId("5913c793ad273115ccf30041"),
    
        "operations" : [ ]
    }
    
    工单
    {
        "_id" : ObjectId("5913c793ad273115ccf30041"),
        "CreatedWhen" : ISODate("2017-05-11T02:08:19.255Z"),
        "CreatedBy" : null,
        "LastModifiedWhen" : ISODate("2017-05-11T02:08:19.257Z"),
        "LastModifiedBy" : null,
        "Status" : 0,
        "wfId" : "a69e81c5-3bf5-474b-a882-a1cf8933b66f",
        "tenantId" : "5351405d-4e81-4f42-8cea-5526690b0fdc",
        "title" : "test",
        "view" : "CarIntention",
        "Alias" : null,
        "currentProcessId" : "Task_1t3nwjx",
        "operations" : [ 
            {
                "CreatedWhen" : ISODate("2017-05-11T02:08:19.255Z"),
                "CreatedBy" : "system",
                "LastModifiedWhen" : ISODate("2017-05-11T02:08:19.255Z"),
                "LastModifiedBy" : "system",
                "Status" : 4,
                "num" : 0,
                "remark" : null,
                "type" : 0,
                "currectProcessName" : "选择开始节点",
                "here" : null,
                "from" : null,
                "view" : null,
                "IsBacked" : null,
                "data" : []
            }, 
            {
                "CreatedWhen" : ISODate("2017-05-11T02:08:19.256Z"),
                "CreatedBy" : "system",
                "LastModifiedWhen" : ISODate("2017-05-11T02:08:19.256Z"),
                "LastModifiedBy" : "system",
                "Status" : 4,
                "num" : 1,
                "remark" : null,
                "type" : 0,
                "currectProcessName" : "",
                "here" : "SequenceFlow_1cgwz8s",
                "from" : "StartEvent_19fn7p6",
                "view" : "",
                "IsBacked" : null,
                "data" : []
            }, 
            {
                "CreatedWhen" : ISODate("2017-05-11T02:08:19.257Z"),
                "CreatedBy" : "system",
                "LastModifiedWhen" : ISODate("2017-05-11T02:08:19.257Z"),
                "LastModifiedBy" : "system",
                "Status" : 4,
                "num" : 2,
                "remark" : null,
                "type" : 0,
                "currectProcessName" : "新建购车意向",
                "here" : "Task_1t3nwjx",
                "from" : "SequenceFlow_1cgwz8s",
                "view" : "CarIntention",
                "IsBacked" : null,
                "data" : []
            }
        ],
        "rate" : 6.0
    }
    
    • 结算单设计

    结算单 是平级于 工单 的 一个独立的流程运行时

    1. 自动结算方案 (北汽)

    当一个工单结束的时候 触发 配置在结束节点的 prev方法 ==> 判断是否有符合条件的结算单,如果有则加入,如果没有则新增并加入,然后进行后续操作

    1. 手动结算方案 (江淮)

    当一个工单结束的时候 结束节点不配置prev方法,在结算流程的 第一个task "选择需要结算的工单" 的时候 去修改结算单的 OrderId 数组,然后执行后续操作

    1. 混合结算方案 (3-10日手动,其他自动)

    基于自动和手动方案,修改工单结束节点prev方法 ==> 添加日期判断 符合条件才进行后续操作,不符合日期条件则不操作.在结算单流程的 "选择需要结算的工单" 可以进行手动选择结算(当然也可以根据时间 关闭手动选择的权限,只要修改一下这个 task 所属 operation 的 Verify 方法 日期条件不通过则无法添加)

    settlement
    {
        id:1233123123,
        orderId:[
            aaaaaaaa1,
            bbbbbbb2,
            ccccccccc3
        ],
        ......
    }
    

    缺少 : 结算流程图 与 其具体的task页面,结算模块需要有自己的 “详情页面” 类似工单的主页面,用来承载结算的流转,

    post prev 方法的具体方案


    该方法在前端设计器中配置,如图

    图片图片

    在主站系统中实现

    图片图片

    流程运转的时候被调用执行,由于方法在主站所以可以使用所有主站的资源

    关于参数传递的实现设想方案,

    az:prev="Basic.TestPrev?TenanId&param1&param2&param3" 
    

    prev:预方法
    post:后方法
    Basic:所在类
    TestPrev:方法名称 与类名用 .隔开
    ?TenanId&param1&param2&param3需要参数,必须是主表主字段有的参数或者是当前节点的data中有的参数,用 ? 与方法名隔开,不同的参数用 & 隔开

    问题

    1. 工单进入结算后 相关的operations 是什么?开始结算,结算完毕?
    2. 工单/结算单 的所有状态码
    3. 流程引擎接入方案
    4. 单点登录系统接入方案

    相关文章

      网友评论

          本文标题:AZ 结算,暂停,作废 方案

          本文链接:https://www.haomeiwen.com/subject/sbuotxtx.html