第一百零三节 DTCloud 工作流

class workflow_info(models.Model):
    _name = 'workflow.info'
    _description = '工作流审核'
    _order = 'id desc'

    def changeTime(self, allTime):
        day = 24 * 60 * 60
        hour = 60 * 60
        min = 60
        if allTime < 60:
            return u"%d秒" % math.ceil(allTime)
        elif allTime > day:
            days = divmod(allTime, day)
            return u"%d 天 %s" % (int(days[0]), self.changeTime(days[1]))
        elif allTime > hour:
            hours = divmod(allTime, hour)
            return '%d 小时 %s' % (int(hours[0]), self.changeTime(hours[1]))
        else:
            mins = divmod(allTime, min)
            return u"%d 分 %d 秒" % (int(mins[0]), math.ceil(mins[1]))

    def _compute_duration(self):
        for order in self:
            if order.start_date:
                d1 = order.start_date
                if order.end_date:
                    d2 = order.end_date
                    delta = d2 - d1
                    data = self.changeTime(delta.seconds)
                    order.duration = data

    start_state = fields.Char(string='从状态')
    end_state = fields.Char(string='到状态')
    name = fields.Char(string='名称')

    res_model = fields.Char(string='对象名称', )
    res_id = fields.Char(string='记录ID', )

    user_id = fields.Many2one('res.users', string='审批人')
    create_id = fields.Many2one('res.users', string='申请人')
    start_date = fields.Datetime(string='申请时间', default=fields.Datetime.now)
    end_date = fields.Datetime(string='审批日期')
    note = fields.Text('审批意见')
    message = fields.Text('申请说明')
    model_id = fields.Many2one('ir.model', string='对象')
    color = fields.Integer(string='颜色', default=0)
    form_view = fields.Char(string='视图地址')
    duration = fields.Char(string='耗时', compute='_compute_duration')
    sequence = fields.Integer(string='排序', default=10)

    parent_id = fields.Many2one('workflow.info', string='上级菜单')
    child_id = fields.One2many('workflow.info', 'parent_id', string='下级菜单')

    type = fields.Selection([
        ('串签', '串签'),
        ('并签', '并签'),
        ('汇签', '汇签'),
    ], string='类型', default='串签', help="""串签、并签、汇签,也就是
    串流、并流、择流。
    假设一份文件需要A、B两个主管来审批,那么,
    串签:A签完,才轮到B来签;一般A是小领导,B是大领导;
    并签:A和B是并列的,可同时签,但必须2人都要签;一般A和B是同一层级但不同部门领导
    汇签:A和B是并列的,但只需一个签就可以了;此处A、B就是完全等价的了""")

    state = fields.Selection([
        ('同意', '同意'),
        ('拒绝', '拒绝'),
        ('回退', '回退'),
        ('取回', '取回'),
        ('等待审批', '等待审批'),
        ('已关闭', '已关闭'),
        ('已提交', '已提交')
    ], string='审批状态', default='等待审批')

    #:::好建议是不是或签,并签,直接确认(你有最终确认权限是否直接审核,还是使用并签)
    version_id = fields.Char(string='版本', help='有一个确认其它版本作废')
    process_id = fields.Many2one('workflow.node', string='发启流程', ondelete='cascade', index=True, copy=False)

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DTCloud4

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值