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
-