From fd225fa0e1f144e92e1f953e8a88e7d4379bb0b2 Mon Sep 17 00:00:00 2001
From: mgw <1392924357@qq.com>
Date: Fri, 5 Jul 2024 11:26:02 +0800
Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E4=B8=AD=E5=BF=83=E7=9A=84?=
=?UTF-8?q?=E5=8F=82=E6=95=B0=E4=BF=AE=E6=94=B9=E9=9C=80=E5=A2=9E=E5=8A=A0?=
=?UTF-8?q?sns=E6=A8=A1=E5=9D=97("=E8=AE=B0=E5=BD=95=E5=A4=87=E6=B3=A8")?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
sf_manufacturing/models/mrp_workcenter.py | 38 +++++++++++++++----
.../views/mrp_workcenter_views.xml | 14 +++++++
2 files changed, 45 insertions(+), 7 deletions(-)
diff --git a/sf_manufacturing/models/mrp_workcenter.py b/sf_manufacturing/models/mrp_workcenter.py
index 7d70ae5e..f07dd53a 100644
--- a/sf_manufacturing/models/mrp_workcenter.py
+++ b/sf_manufacturing/models/mrp_workcenter.py
@@ -5,24 +5,48 @@ from odoo.addons.resource.models.resource import Intervals
class ResWorkcenter(models.Model):
- _inherit = "mrp.workcenter"
+ _name = "mrp.workcenter"
+ _inherit = ['mrp.workcenter', 'mail.thread']
# 生产线显示
production_line_show = fields.Char(string='生产线名称')
- equipment_id = fields.Many2one(
- 'maintenance.equipment', string="设备",
- )
+ equipment_id = fields.Many2one('maintenance.equipment', string="设备", tracking=True)
production_line_id = fields.Many2one('sf.production.line', string='生产线',
related='equipment_id.production_line_id', store=True)
-
is_process_outsourcing = fields.Boolean('工艺外协')
- users_ids = fields.Many2many("res.users", 'users_workcenter')
+ users_ids = fields.Many2many("res.users", 'users_workcenter', tracking=True)
+ def write(self, vals):
+ if 'users_ids' in vals:
+ old_users = self.users_ids
+ res = super(ResWorkcenter, self).write(vals)
+ new_users = self.users_ids
+ added_users = new_users - old_users
+ removed_users = old_users - new_users
+ if added_users or removed_users:
+ message = "增加 → %s \n 移除 → %s (可操作用户)" % (
+ ','.join(added_users.mapped('name')), ','.join(removed_users.mapped('name')))
+ self.message_post(body=message)
+ return res
+ return super(ResWorkcenter, self).write(vals)
+ name = fields.Char('Work Center', related='resource_id.name', store=True, readonly=False, tracking=True)
+ time_efficiency = fields.Float('Time Efficiency', related='resource_id.time_efficiency', default=100, store=True,
+ readonly=False, tracking=True)
+ default_capacity = fields.Float(
+ 'Capacity', default=1.0,
+ help="Default number of pieces (in product UoM) that can be produced in parallel (at the same time) at this work center. For example: the capacity is 5 and you need to produce 10 units, then the operation time listed on the BOM will be multiplied by two. However, note that both time before and after production will only be counted once.",
+ tracking=True)
+ oee_target = fields.Float(
+ string='OEE Target', help="Overall Effective Efficiency Target in percentage", default=90, tracking=True)
+
+ time_start = fields.Float('Setup Time', tracking=True)
+ time_stop = fields.Float('Cleanup Time', tracking=True)
+ costs_hour = fields.Float(string='Cost per hour', help='Hourly processing cost.', default=0.0, tracking=True)
equipment_status = fields.Selection(
- [("正常", "正常"), ("故障停机", "故障停机"), ("计划维保", "计划维保"),("空闲", "空闲"),("封存(报废)", "封存(报废)")],
+ [("正常", "正常"), ("故障停机", "故障停机"), ("计划维保", "计划维保"), ("空闲", "空闲"), ("封存(报废)", "封存(报废)")],
string="设备状态", related='equipment_id.state')
# @api.depends('equipment_id')
diff --git a/sf_manufacturing/views/mrp_workcenter_views.xml b/sf_manufacturing/views/mrp_workcenter_views.xml
index 9aad2a99..ad433bf6 100644
--- a/sf_manufacturing/views/mrp_workcenter_views.xml
+++ b/sf_manufacturing/views/mrp_workcenter_views.xml
@@ -24,6 +24,20 @@
+
+ custom.model.form.view.inherit
+ mrp.workcenter
+
+
+
+
+
+
+
+
+
+
+
mrp.workcenter.view.kanban.inherit.mrp.workorder
mrp.workcenter