diff --git a/sf_tool_management/models/functional_tool.py b/sf_tool_management/models/functional_tool.py index a9dddc0e..498d9436 100644 --- a/sf_tool_management/models/functional_tool.py +++ b/sf_tool_management/models/functional_tool.py @@ -63,16 +63,27 @@ class FunctionalCuttingToolEntity(models.Model): for item in self: if item: if item.functional_tool_status == '报警': - # 创建报警刀具拆解单 - self.env['sf.functional.tool.dismantle'].sudo().create({ - 'functional_tool_id': item.ids[0], - 'dismantle_cause': '寿命到期报废' - }) - # 创建刀具报警记录 - self.env['sf.functional.tool.warning'].sudo().create({ - 'rfid': item.rfid, - 'functional_tool_id': item.ids[0] - }) + self.create_tool_dismantle() + + def set_functional_tool_status(self): + # self.write({ + # 'functional_tool_status': '报警' + # }) + self.functional_tool_status = '报警' + self.create_tool_dismantle() + + def create_tool_dismantle(self): + for item in self: + # 创建报警刀具拆解单 + self.env['sf.functional.tool.dismantle'].sudo().create({ + 'functional_tool_id': item.ids[0], + 'dismantle_cause': '寿命到期报废' + }) + # 创建刀具报警记录 + self.env['sf.functional.tool.warning'].sudo().create({ + 'rfid': item.rfid, + 'functional_tool_id': item.ids[0] + }) @api.depends('barcode_id.quant_ids', 'barcode_id.quant_ids.location_id', 'functional_tool_status', 'current_shelf_location_id', 'stock_num') diff --git a/sf_tool_management/models/maintenance_equipment.py b/sf_tool_management/models/maintenance_equipment.py index 12c7f8f3..a3375075 100644 --- a/sf_tool_management/models/maintenance_equipment.py +++ b/sf_tool_management/models/maintenance_equipment.py @@ -107,11 +107,17 @@ class SfMaintenanceEquipment(models.Model): if functional_tool_id.current_location != '机内刀库': # 对功能刀具进行移动到生产线 functional_tool_id.tool_inventory_displacement_out() - functional_tool_id.write({ - 'max_lifetime_value': data['MaxLife'], - 'used_value': data['UseLife'], - 'functional_tool_status': tool_install_time.get(data['State']) - }) + data_tool = { + 'max_lifetime_value': data['MaxLife'], + 'used_value': data['UseLife'], + 'functional_tool_status': tool_install_time.get(data['State']) + } + if (functional_tool_id.functional_tool_status != '报警' + and tool_install_time.get(data['State']) == '报警'): + functional_tool_id.write(data_tool) + functional_tool_id.create_tool_dismantle() + else: + functional_tool_id.write(data_tool) else: logging.info('获取的【%s】设备不存在!!!' % data['DeviceId']) else: diff --git a/sf_tool_management/views/functional_tool_views.xml b/sf_tool_management/views/functional_tool_views.xml index a306d6dd..25b9346a 100644 --- a/sf_tool_management/views/functional_tool_views.xml +++ b/sf_tool_management/views/functional_tool_views.xml @@ -42,6 +42,7 @@
+