diff --git a/sf_manufacturing/models/agv_scheduling.py b/sf_manufacturing/models/agv_scheduling.py index f39c07e7..95813e1b 100644 --- a/sf_manufacturing/models/agv_scheduling.py +++ b/sf_manufacturing/models/agv_scheduling.py @@ -19,12 +19,8 @@ class AgvScheduling(models.Model): _order = 'id desc' name = fields.Char('任务单号', index=True, copy=False) - - def _get_agv_route_type_selection(self): - return self.env['sf.agv.task.route'].fields_get(['route_type'])['route_type']['selection'] - - agv_route_type = fields.Selection(selection=_get_agv_route_type_selection, string='任务类型', required=True) agv_route_id = fields.Many2one('sf.agv.task.route', '任务路线') + agv_route_type = fields.Selection(related='agv_route_id.route_type', string='任务类型', required=True) start_site_id = fields.Many2one('sf.agv.site', '起点接驳站', required=True) end_site_id = fields.Many2one('sf.agv.site', '终点接驳站', tracking=True) site_state = fields.Selection([ diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py index ef121e1b..3717cebe 100644 --- a/sf_manufacturing/models/mrp_workorder.py +++ b/sf_manufacturing/models/mrp_workorder.py @@ -69,6 +69,7 @@ class ResMrpWorkOrder(models.Model): delivery_warning = fields.Selection([('normal', '正常'), ('warning', '告警'), ('overdue', '逾期')], string='时效', tracking=True) + date_planned_start = fields.Datetime(tracking=True) @api.depends('processing_panel') def _compute_processing_panel_selection(self): @@ -1858,11 +1859,7 @@ class WorkPieceDelivery(models.Model): feeder_station_destination_id = fields.Many2one('sf.agv.site', '目的接驳站') task_delivery_time = fields.Datetime('任务下发时间') task_completion_time = fields.Datetime('任务完成时间') - - def _get_agv_route_type_selection(self): - return self.env['sf.agv.task.route'].fields_get(['route_type'])['route_type']['selection'] - - type = fields.Selection(selection=_get_agv_route_type_selection, string='类型') + type = fields.Selection(related='route_id.route_type', string='类型') delivery_duration = fields.Float('配送时长', compute='_compute_delivery_duration') status = fields.Selection( [('待下发', '待下发'), ('已下发', '待配送'), ('已配送', '已配送'), ('已取消', '已取消')], string='状态', diff --git a/sf_manufacturing/views/mrp_workorder_view.xml b/sf_manufacturing/views/mrp_workorder_view.xml index b1d59405..419eec50 100644 --- a/sf_manufacturing/views/mrp_workorder_view.xml +++ b/sf_manufacturing/views/mrp_workorder_view.xml @@ -785,6 +785,10 @@ + + + + @@ -807,7 +811,7 @@ sf.workpiece.delivery {'search_default_filter_to_be_issued': 1, - 'search_default_filter_issued': 1} + 'search_default_filter_type_to_production_line': 1} tree,form diff --git a/sf_manufacturing/wizard/workpiece_delivery_wizard.py b/sf_manufacturing/wizard/workpiece_delivery_wizard.py index 6a13fc08..bc4b8210 100644 --- a/sf_manufacturing/wizard/workpiece_delivery_wizard.py +++ b/sf_manufacturing/wizard/workpiece_delivery_wizard.py @@ -54,10 +54,7 @@ class WorkpieceDeliveryWizard(models.TransientModel): } } - def _get_agv_route_type_selection(self): - return self.env['sf.agv.task.route'].fields_get(['route_type'])['route_type']['selection'] - - delivery_type = fields.Selection(selection=_get_agv_route_type_selection, string='类型') + delivery_type = fields.Selection(related='route_id.route_type', string='类型') def dispatch_confirm(self): if len(self.workorder_ids) < 4: diff --git a/sf_message/data/bussiness_node.xml b/sf_message/data/bussiness_node.xml index b429d766..4003df45 100644 --- a/sf_message/data/bussiness_node.xml +++ b/sf_message/data/bussiness_node.xml @@ -156,4 +156,12 @@ product.product + + + + 计划数据异常跟踪 + mrp.workorder + + + \ No newline at end of file diff --git a/sf_message/data/template_data.xml b/sf_message/data/template_data.xml index 11f05a3c..c0e96d99 100644 --- a/sf_message/data/template_data.xml +++ b/sf_message/data/template_data.xml @@ -402,4 +402,19 @@ 事项:有{{num}}个质检单需要处理。 + + + + 计划数据异常跟踪 + + mrp.workorder + + markdown + normal + ### 工单计划数据异常删除: +工单号:{{name}} +异动时间:{{write_date}} + + + \ No newline at end of file diff --git a/sf_message/models/sf_message_workorder.py b/sf_message/models/sf_message_workorder.py index 653562e1..42b03139 100644 --- a/sf_message/models/sf_message_workorder.py +++ b/sf_message/models/sf_message_workorder.py @@ -188,3 +188,10 @@ class SFMessageWork(models.Model): ]) if message_queue_ids: message_queue_ids.write({'message_status': 'cancel'}) + + def write(self, vals): + res = super(SFMessageWork, self).write(vals) + if ('leave_id' in vals and vals['leave_id'] is False or 'date_planned_start' in vals and vals['date_planned_start'] is False) \ + and self.schedule_state != '未排': + self.add_queue('计划数据异常跟踪') + return res diff --git a/sf_quality/views/quality_check_view.xml b/sf_quality/views/quality_check_view.xml index f69f2b65..00b139de 100644 --- a/sf_quality/views/quality_check_view.xml +++ b/sf_quality/views/quality_check_view.xml @@ -77,15 +77,6 @@ - - hide - - - hide - - - hide -