From c6f6927d57bc8d20f0e02f7677d5dffb58c5460b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E5=B0=A7?= Date: Tue, 27 Aug 2024 10:42:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=B7=A5=E4=BB=B6=E9=85=8D?= =?UTF-8?q?=E9=80=81=E5=90=8E=E6=B2=A1=E6=9C=89=E5=90=8C=E6=AD=A5=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E4=B8=8B=E5=8F=91=E6=97=B6=E9=97=B4=E7=9A=84bug?= =?UTF-8?q?=EF=BC=8CAGV=E9=85=8D=E7=BD=AE=E4=B8=AD=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E4=B8=8B=E5=8F=91AGV=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_manufacturing/__manifest__.py | 1 + sf_manufacturing/models/__init__.py | 1 + sf_manufacturing/models/agv_scheduling.py | 4 +++- sf_manufacturing/models/res_config_setting.py | 22 +++++++++++++++++ .../views/res_config_settings_views.xml | 24 +++++++++++++++++++ .../wizard/workpiece_delivery_wizard.py | 12 ++++++++-- .../views/res_config_settings_views.xml | 2 +- 7 files changed, 62 insertions(+), 4 deletions(-) create mode 100644 sf_manufacturing/models/res_config_setting.py create mode 100644 sf_manufacturing/views/res_config_settings_views.xml diff --git a/sf_manufacturing/__manifest__.py b/sf_manufacturing/__manifest__.py index e84b34cc..35501367 100644 --- a/sf_manufacturing/__manifest__.py +++ b/sf_manufacturing/__manifest__.py @@ -32,6 +32,7 @@ 'views/model_type_view.xml', 'views/agv_setting_views.xml', 'views/sf_maintenance_equipment.xml', + 'views/res_config_settings_views.xml', ], 'assets': { diff --git a/sf_manufacturing/models/__init__.py b/sf_manufacturing/models/__init__.py index b93d613e..7d6aa8ae 100644 --- a/sf_manufacturing/models/__init__.py +++ b/sf_manufacturing/models/__init__.py @@ -10,3 +10,4 @@ from . import res_user from . import production_line_base from . import agv_setting from . import agv_scheduling +from . import res_config_setting diff --git a/sf_manufacturing/models/agv_scheduling.py b/sf_manufacturing/models/agv_scheduling.py index 237038ba..d232c643 100644 --- a/sf_manufacturing/models/agv_scheduling.py +++ b/sf_manufacturing/models/agv_scheduling.py @@ -231,7 +231,9 @@ class AgvScheduling(models.Model): rec.site_state = '空闲' rec.end_site_id = agv_task_route.end_site_id.id rec.agv_route_id = agv_task_route.id - # rec._delivery_avg() + is_agv_task_dispatch = self.env['ir.config_parameter'].sudo().get_param('is_agv_task_dispatch') + if is_agv_task_dispatch: + rec._delivery_avg() # 更新接驳站状态 rec.env['sf.agv.site'].update_site_state({rec.end_site_id.name: '占用'}, False) diff --git a/sf_manufacturing/models/res_config_setting.py b/sf_manufacturing/models/res_config_setting.py new file mode 100644 index 00000000..d6b029c6 --- /dev/null +++ b/sf_manufacturing/models/res_config_setting.py @@ -0,0 +1,22 @@ +from odoo import models, fields, api + + +class ResConfigSettings(models.TransientModel): + _inherit = 'res.config.settings' + + is_agv_task_dispatch = fields.Boolean('是否下发AGV任务', default=False) + + @api.model + def get_values(self): + values = super(ResConfigSettings, self).get_values() + config = self.env['ir.config_parameter'].sudo() + is_agv_task_dispatch = config.get_param('is_agv_task_dispatch') + values.update( + is_agv_task_dispatch=is_agv_task_dispatch, + ) + return values + + def set_values(self): + super(ResConfigSettings, self).set_values() + config = self.env['ir.config_parameter'].sudo() + config.set_param("is_agv_task_dispatch", self.is_agv_task_dispatch or False) diff --git a/sf_manufacturing/views/res_config_settings_views.xml b/sf_manufacturing/views/res_config_settings_views.xml new file mode 100644 index 00000000..89738492 --- /dev/null +++ b/sf_manufacturing/views/res_config_settings_views.xml @@ -0,0 +1,24 @@ + + + + + res.config.settings.view.form.inherit.sf_sync + res.config.settings + + + +
+
+ +
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/sf_manufacturing/wizard/workpiece_delivery_wizard.py b/sf_manufacturing/wizard/workpiece_delivery_wizard.py index 8e7f47f8..5d5dc889 100644 --- a/sf_manufacturing/wizard/workpiece_delivery_wizard.py +++ b/sf_manufacturing/wizard/workpiece_delivery_wizard.py @@ -109,11 +109,19 @@ class WorkpieceDeliveryWizard(models.TransientModel): ) # 如果关联了工件配送单,则修改状态为已下发 if self.delivery_ids: - self.delivery_ids.write({ + val = { 'status': '已下发', 'agv_scheduling_id': scheduling.id, 'feeder_station_start_id': scheduling.start_site_id.id, - }) + } + # 如果agv任务已经下发,则修改工件配送单信息 + if scheduling.state == '配送中': + val.update({ + 'feeder_station_destination_id': scheduling.end_site_id.id, + 'route_id': scheduling.agv_route_id.id, + 'task_delivery_time': fields.Datetime.now() + }) + self.delivery_ids.write(val) # 如果是解除装夹工单,则需要处理工单逻辑 for item in self.workorder_ids: diff --git a/sf_mrs_connect/views/res_config_settings_views.xml b/sf_mrs_connect/views/res_config_settings_views.xml index 08e9560f..05e5be41 100644 --- a/sf_mrs_connect/views/res_config_settings_views.xml +++ b/sf_mrs_connect/views/res_config_settings_views.xml @@ -76,7 +76,7 @@

AGV参数配置

-
+