Files
gzth/soong_workflow/models/soong_workflow_inspector.py
T
2026-03-03 14:34:53 +08:00

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="工作内容")