# -*- 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', '特急件')], 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="工作内容")