76 lines
3.7 KiB
Python
76 lines
3.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
import logging
|
|
import datetime
|
|
from odoo import models, fields, api, _, modules
|
|
from odoo.exceptions import ValidationError, UserError
|
|
|
|
|
|
class SoongWorkflowInspector(models.Model):
|
|
_name = "soong.workflow.inspector"
|
|
_description = "督办审批"
|
|
_inherit = ['soong.workflow.mixin', 'mail.thread.main.attachment', 'mail.activity.mixin']
|
|
|
|
name = fields.Char(string="标题")
|
|
start_data = fields.Date(string="督办日期", default=fields.Date.today)
|
|
end_data = fields.Date(string="完成日期", default=fields.Date.today)
|
|
user_id = fields.Many2one('res.users', string="申请人", default=lambda self: self.env.user)
|
|
department_id = fields.Many2one(related='user_id.department_id', string="部门")
|
|
code = fields.Char(string="督办流水号", default=lambda self: self.env['ir.sequence'].next_by_code('inspector_code'))
|
|
duration_time = fields.Float(string="期限时间")
|
|
department_ids = fields.Many2many('hr.department', string="承办部门")
|
|
employee_ids = fields.Many2many('hr.employee', string="督办人员", default=lambda self: self.env['hr.employee'].search([('user_id', '=', self.env.uid)]))
|
|
inspector_html = fields.Text(string="督办内容")
|
|
inspector_state = fields.Selection([('to_executed','待执行'),
|
|
('executed','已执行'), ('finish', '已完成'), ('postponed', '延期')], string='督办状态', default='to_executed')
|
|
inspector_text = fields.Text(string="督办要求")
|
|
inspector_result = fields.Text(string="完成情况")
|
|
remarks = fields.Text(string='备注')
|
|
document_ids = fields.Many2many('ir.attachment', string="附件")
|
|
inspector_document_id = fields.Many2one('ir.attachment', string="归档附件")
|
|
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件'), ('extra_urgent', '特急件')], string='紧急度',
|
|
default='normal')
|
|
inspector_line_ids = fields.One2many('soong.workflow.inspector.line', 'workflow_inspector_id', string='任务进度')
|
|
inspector_line2_ids = fields.One2many('soong.workflow.inspector.line2', 'workflow_inspector_id', string='督办明细')
|
|
work_end = fields.Boolean(string="结束")
|
|
relevancy_type = fields.Selection([('none', '无')], string="关联流程类型")
|
|
self_users_ids = fields.Many2many('res.users', string="当前经办人", default=lambda self: [(6, 0, [self.env.user.id])])
|
|
|
|
|
|
class SoongWorkflowInspectorLine(models.Model):
|
|
_name = "soong.workflow.inspector.line"
|
|
_description = "任务进度"
|
|
|
|
workflow_inspector_id = fields.Many2one('soong.workflow.inspector', string="督办标题")
|
|
department_id = fields.Many2one('hr.department', string="部门")
|
|
task_text = fields.Text(string="内容")
|
|
end_data = fields.Date(string="截止日期")
|
|
task_state = fields.Selection([('no', '未办结'), ('ing', '进行中'), ('ed', '已超时'), ('done', '已办结')], string="状态")
|
|
employee_id = fields.Many2one('hr.employee', string="上级负责人")
|
|
|
|
|
|
# 办结
|
|
def inspector_task_done(self):
|
|
pass
|
|
|
|
# 任务下发
|
|
def inspector_task_issued(self):
|
|
pass
|
|
|
|
# 延期
|
|
def long_end_data(self):
|
|
pass
|
|
|
|
|
|
class SoongWorkflowInspectorLine2(models.Model):
|
|
_name = "soong.workflow.inspector.line2"
|
|
_description = "督办事项明细"
|
|
|
|
workflow_inspector_id = fields.Many2one('soong.workflow.inspector', string="督办事项")
|
|
department_id = fields.Many2one('hr.department', string="部门")
|
|
employee_id = fields.Many2one('hr.employee', string="部门负责人")
|
|
end_data = fields.Date(string="截止日期")
|
|
inspector_line_text = fields.Text(string="工作内容")
|
|
|
|
|
|
|