diff --git a/sf_machine_connect/views/default_delivery.xml b/sf_machine_connect/views/default_delivery.xml index 0238c736..c9f3c07c 100644 --- a/sf_machine_connect/views/default_delivery.xml +++ b/sf_machine_connect/views/default_delivery.xml @@ -11,6 +11,7 @@ + diff --git a/sf_manufacturing/models/mrp_production.py b/sf_manufacturing/models/mrp_production.py index b191e514..aabec83e 100644 --- a/sf_manufacturing/models/mrp_production.py +++ b/sf_manufacturing/models/mrp_production.py @@ -26,22 +26,43 @@ class MrpProduction(models.Model): work_order_state = fields.Selection([('未排', '未排'), ('已排', '已排'), ('已完成', '已完成')], string='工单状态', default='未排') - detection_result_ids = fields.One2many('sf.detection.result', 'production_id', '检测报告') tool_state = fields.Selection([('0', '正常'), ('1', '缺刀'), ('2', '无效刀')], string='功能刀具状态', default='0', store=True, compute='_compute_tool_state') - tool_state_remark = fields.Text(string='功能刀具状态备注', readonly=True) + tool_state_remark = fields.Text(string='功能刀具状态备注(缺刀)', readonly=True) + tool_state_remark2 = fields.Text(string='功能刀具状态备注(无效刀)', readonly=True) @api.depends('workorder_ids.tool_state') def _compute_tool_state(self): for item in self: if item: - if item.workorder_ids.filtered(lambda a: a.tool_state == '2' and a.state not in ('rework', '返工')): + workorder_ids = item.workorder_ids.filtered(lambda a: a.state not in ('rework', '返工')) + if workorder_ids.filtered(lambda a: a.tool_state == '2'): item.tool_state = '2' - elif item.workorder_ids.filtered(lambda a: a.tool_state == '1' and a.state not in ('rework', '返工')): + elif workorder_ids.filtered(lambda a: a.tool_state == '1'): + tool_state_remark = '' + data = {} + # 获取所有缺刀工单加工面对应缺的刀 + for work in workorder_ids.filtered(lambda a: a.tool_state == '1'): + if work.processing_panel not in list(data.keys()): + data.update({work.processing_panel: []}) + for cnc in work.cnc_ids.filtered(lambda a: a.tool_state == '1'): + if cnc.cutting_tool_name not in data[work.processing_panel]: + data[work.processing_panel].append(cnc.cutting_tool_name) + # 按格式生成缺刀提示信息 + for key in data: + if data.get(key) and not data.get(key): + if tool_state_remark != '': + tool_state_remark = f'{tool_state_remark}\n{key}缺刀:{data.get(key)}' + else: + tool_state_remark = f'{key}缺刀:{data.get(key)}' item.tool_state = '1' + item.tool_state_remark = tool_state_remark + item.tool_state_remark2 = '' else: item.tool_state = '0' + item.tool_state_remark = '' + item.tool_state_remark2 = '' # state = fields.Selection(selection_add=[ # ('pending_scheduling', '待排程'), diff --git a/sf_manufacturing/views/mrp_production_addional_change.xml b/sf_manufacturing/views/mrp_production_addional_change.xml index 8003eb4d..8d70027c 100644 --- a/sf_manufacturing/views/mrp_production_addional_change.xml +++ b/sf_manufacturing/views/mrp_production_addional_change.xml @@ -99,6 +99,7 @@ +