优化了产线设备资源设置,新增根据选取的工作中心自动带出设备的数据,新增根据选择的工作日历自动带出班次的数据,新增搜索视图

This commit is contained in:
yuxianghui
2023-07-07 17:36:42 +08:00
parent e78a60b6ef
commit e711ff0ab3
4 changed files with 87 additions and 53 deletions

View File

@@ -12,6 +12,7 @@
'data': [
'security/group_security.xml',
'security/ir.model.access.csv',
'views/production_line_base.py',
'views/maintenance_views.xml',
'views/maintenance_logs_views.xml',
'views/equipment_maintenance_standards_views.xml',

View File

@@ -10,7 +10,7 @@
""",
'category': 'sf',
'website': 'https://www.sf.jikimo.com',
'depends': [],
'depends': ['sf_maintenance'],
'data': [
'security/ir.model.access.csv',
# 'security/ir.model.access.csv',

View File

@@ -1,43 +1,55 @@
from odoo import models, fields
from odoo import models, fields, api
from odoo.exceptions import UserError
class ProcedureEquipmentResourceSetting(models.Model):
_name = 'sf.procedure.equipment.resource.setting'
_description = '产线设备资源设置'
def _get_code(self):
"""
自动生成编码
:return:
"""
fixture_material = self.env['sf.procedure.equipment.resource.setting'].sudo().search(
[('code', '!=', '')],
limit=1,
order="id desc")
if not fixture_material:
num = "%03d" % 1
else:
m = int(fixture_material.code) + 1
num = "%03d" % m
return num
code = fields.Char(string='序号', readonly=True, default=_get_code)
work_center_name = fields.Char(string='工作中心名称')
equipment_code = fields.Char(string='机台号')
# todo 绑定设备
# equipment_name = fields.Many2one('', string='设备名称')
brand = fields.Char(string='品牌')
model = fields.Char(string='型号')
working_procedure = fields.Char(string='工序')
production_capacity = fields.Char(string='产能', required=True)
production_line_id = fields.Many2one('sf.production.line', string='生产线', required=True)
work_center_name_id = fields.Many2one('mrp.workcenter', string='工作中心名称')
equipment_code = fields.Char(string='机台号(原设备编码)', readonly=True, compute='_onchange_equipment_name_id')
equipment_name_id = fields.Many2one('maintenance.equipment',
string='设备名称',
readonly=True,
compute='_onchange_work_center_name_id')
brand = fields.Char(string='品牌', readonly=True, compute='_onchange_equipment_name_id')
model = fields.Char(string='型号', readonly=True, compute='_onchange_equipment_name_id')
# todo 传入工序数据
working_procedure = fields.Char(string='工序', readonly=True)
production_capacity = fields.Float(string='产能', required=True, digits=(4, 1))
working_calendar_id = fields.Many2one('sf.work.log.setting', string='工作日历')
working_shift = fields.Char(string='班次')
create_time = fields.Datetime(string='新增时间', default=lambda self: fields.Datetime.now())
status = fields.Selection([('0', '正常'), ('1', '故障停机'), ('2', '计划停机')], string='设备状态', default='0')
working_shift = fields.Char(string='班次', readonly=True, compute='_onchange_working_calendar_id')
create_time = fields.Datetime(string='新增时间', default=lambda self: fields.Datetime.now(), readonly=True)
status = fields.Selection([('正常', '正常'), ('1', '故障停机'), ('2', '计划停机')],
string='设备状态',
readonly=True,
compute='_onchange_equipment_name_id')
participate_in_scheduling = fields.Boolean(string='参与排程', default=True)
@api.onchange('production_capacity')
def _onchange_production_capacity(self):
for record in self:
if record.production_capacity < 0:
raise UserError("输入的产能值不正确,请重新输入!")
@api.depends('work_center_name_id')
def _onchange_work_center_name_id(self):
for record in self:
record.equipment_name_id = record.work_center_name_id.equipment_ids
@api.onchange('equipment_name_id')
def _onchange_equipment_name_id(self):
for record in self:
record.equipment_code = record.equipment_name_id.code,
record.brand = record.equipment_name_id.brand_id.name,
record.model = record.equipment_name_id.type_id.name,
record.status = record.equipment_name_id.state
@api.depends('working_calendar_id')
def _onchange_working_calendar_id(self):
for record in self:
record.working_shift = record.working_calendar_id.working_shift

View File

@@ -106,18 +106,19 @@
<field name="model">sf.procedure.equipment.resource.setting</field>
<field name="arch" type="xml">
<tree string="产线设备资源设置">
<field name="code"/>
<field name="work_center_name"/>
<field name="work_center_name_id"/>
<field name="equipment_code"/>
<!-- <field name="equipment_name"/>-->
<field name="equipment_name_id"/>
<field name="brand"/>
<field name="model"/>
<field name="working_procedure"/>
<field name="production_capacity"/>
<field name="working_calendar_id"/>
<field name="working_shift"/>
<field name="create_time"/>
<field name="status"/>
<field name="participate_in_scheduling"/>
<field name="production_line_id" invisible="True"/>
</tree>
</field>
</record>
@@ -128,32 +129,40 @@
<field name="arch" type="xml">
<form string="产线设备资源设置">
<sheet>
<group>
<group string="生产线">
<group>
<field name="work_center_name"/>
</group>
<group>
<field name="code"/>
<field name="production_line_id"/>
</group>
</group>
<group>
<group string="工作中心信息">
<group>
<field name="equipment_code"/>
<!-- <field name="equipment_name"/>-->
<field name="working_procedure"/>
<field name="work_center_name_id"/>
<field name="production_capacity"/>
</group>
<group>
<field name="brand"/>
<field name="model"/>
<field name="working_calendar_id"/>
<field name="working_shift"/>
<field name="working_procedure"/>
<field name="participate_in_scheduling"/>
</group>
</group>
<group>
<field name="create_time"/>
<field name="status"/>
<field name="participate_in_scheduling"/>
<group string="设备信息">`
<group>
<field name="equipment_name_id"/>
<field name="brand"/>
<field name="status"/>
</group>
<group>
<field name="equipment_code" string="机台号"/>
<field name="model"/>
</group>
</group>
<group string="工作日历信息">
<group>
<field name="working_calendar_id"/>
<field name="create_time"/>
</group>
<group>
<field name="working_shift"/>
</group>
</group>
</sheet>
</form>
@@ -165,8 +174,20 @@
<field name="model">sf.procedure.equipment.resource.setting</field>
<field name="arch" type="xml">
<search>
<field name="work_center_name_id"/>
<field name="equipment_code"/>
<field name="equipment_name_id"/>
<field name="brand"/>
<field name="model"/>
<field name="working_procedure"/>
<field name="production_capacity"/>
<field name="working_calendar_id"/>
<field name="working_shift"/>
<field name="create_time"/>
<field name="status"/>
<field name="participate_in_scheduling"/>
<searchpanel>
<field name="working_calendar_id" icon="fa-building" enable_counters="1"/>
<field name="production_line_id" icon="fa-building" enable_counters="1"/>
</searchpanel>
</search>
</field>