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参数配置

-
+