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)
第一百零三节 DTCloud 工作流
最新推荐文章于 2024-08-08 15:12:59 发布