From 9ca9b337efe0ffe69fb5ceb2f1f57ffee12d8b4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E5=B0=A7?= Date: Wed, 16 Oct 2024 10:19:41 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3sf=5Fquality=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E9=97=AE=E9=A2=98=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=8D=95?= =?UTF-8?q?=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tests/__init__.py | 2 +- .../tests/common.py | 4 +- .../tests/test_jikimo_workorder_exception.py | 39 ------------ .../test_jikimo_workorder_exception_notify.py | 62 +++++++++++++++++++ .../models/mrp_routing_workcenter.py | 2 +- 5 files changed, 66 insertions(+), 43 deletions(-) delete mode 100644 jikimo_workorder_exception_notify/tests/test_jikimo_workorder_exception.py create mode 100644 jikimo_workorder_exception_notify/tests/test_jikimo_workorder_exception_notify.py diff --git a/jikimo_workorder_exception_notify/tests/__init__.py b/jikimo_workorder_exception_notify/tests/__init__.py index 99feb117..318a4c8a 100644 --- a/jikimo_workorder_exception_notify/tests/__init__.py +++ b/jikimo_workorder_exception_notify/tests/__init__.py @@ -1,2 +1,2 @@ from . import common -from . import test_jikimo_workorder_exception +from . import test_jikimo_workorder_exception_notify diff --git a/jikimo_workorder_exception_notify/tests/common.py b/jikimo_workorder_exception_notify/tests/common.py index 2106bf0c..5fefe6bf 100644 --- a/jikimo_workorder_exception_notify/tests/common.py +++ b/jikimo_workorder_exception_notify/tests/common.py @@ -9,10 +9,10 @@ import base64 from lxml import etree @tagged('post_install', '-at_install') -class TestJikimoWorkorderExceptionNotifyCommon(TransactionCase): +class TestJikimoWorkorderExceptionNotifyCommonNotify(TransactionCase): def setUp(self): - super(TestJikimoWorkorderExceptionNotifyCommon, self).setUp() + super(TestJikimoWorkorderExceptionNotifyCommonNotify, self).setUp() # 获取最后一个工单 self.workorder = self.env['mrp.workorder'].search([], order='id desc', limit=1) \ No newline at end of file diff --git a/jikimo_workorder_exception_notify/tests/test_jikimo_workorder_exception.py b/jikimo_workorder_exception_notify/tests/test_jikimo_workorder_exception.py deleted file mode 100644 index 8bd80447..00000000 --- a/jikimo_workorder_exception_notify/tests/test_jikimo_workorder_exception.py +++ /dev/null @@ -1,39 +0,0 @@ -import json -from datetime import datetime -from odoo.addons.jikimo_workorder_exception_notify.tests.common import TestJikimoWorkorderExceptionNotifyCommon - -class TestJikimoWorkorderException(TestJikimoWorkorderExceptionNotifyCommon): - - def test_create_exception_record(self): - exception_record = self.env['jikimo.workorder.exception'].create({ - 'workorder_id': self.workorder.id, - 'exception_code': 'YC0001', - 'exception_content': '无CNC编程' - }) - - self.assertTrue(exception_record) - self.assertEqual(exception_record.exception_content, '无CNC编程') - self.assertEqual(exception_record.workorder_id.id, self.workorder.id) - self.assertEqual(exception_record.exception_code, 'YC0001') - - def test_handle_exception(self): - exception_record = self.env['jikimo.workorder.exception'].create({ - 'workorder_id': self.workorder.id, - 'exception_code': 'YC0001', - 'exception_content': '无CNC编程' - }) - self.workorder.handle_exception(['YC0001']) - self.assertEqual(exception_record.state, 'done') - # 判断完成时间是否为当前分钟 - self.assertEqual(exception_record.completion_time.minute, datetime.now().minute) - - def test_handle_exception_with_invalid_code(self): - exception_record = self.env['jikimo.workorder.exception'].create({ - 'workorder_id': self.workorder.id, - 'exception_code': 'YC0001', - 'exception_content': '无CNC编程' - }) - self.workorder.handle_exception(['YC0002', 'YC0004']) - self.assertEqual(exception_record.state, 'pending') - self.assertEqual(exception_record.completion_time, False) - diff --git a/jikimo_workorder_exception_notify/tests/test_jikimo_workorder_exception_notify.py b/jikimo_workorder_exception_notify/tests/test_jikimo_workorder_exception_notify.py new file mode 100644 index 00000000..85d304be --- /dev/null +++ b/jikimo_workorder_exception_notify/tests/test_jikimo_workorder_exception_notify.py @@ -0,0 +1,62 @@ +import json +from datetime import datetime +from odoo.addons.jikimo_workorder_exception_notify.tests.common import TestJikimoWorkorderExceptionNotifyCommonNotify + +class TestJikimoWorkorderExceptionNotify(TestJikimoWorkorderExceptionNotifyCommonNotify): + + def test_create_message_template(self): + self.assertTrue(self.env['jikimo.message.template'].search([ + ('name', '=', '生产线无功能刀具提醒'), + ('model', '=', 'jikimo.workorder.exception') + ])) + self.assertTrue(self.env['jikimo.message.template'].search([ + ('name', '=', '工单无定位数据提醒'), + ('model', '=', 'jikimo.workorder.exception') + ])) + self.assertTrue(self.env['jikimo.message.template'].search([ + ('name', '=', '加工失败'), + ('model', '=', 'jikimo.workorder.exception') + ])) + + + def test_create_message_queue(self): + exception_record = self.env['jikimo.workorder.exception'].create({ + 'workorder_id': self.workorder.id, + 'exception_code': 'YC0002', + 'exception_content': '无功能刀具' + }) + + bussiness_node = self.env['jikimo.message.bussiness.node'].search([ + ('name', '=', '无功能刀具'), + ('model', '=', 'jikimo.workorder.exception') + ]) + + message_template = self.env['jikimo.message.template'].search([ + ('bussiness_node_id', '=', bussiness_node.id), + ('model', '=', 'jikimo.workorder.exception') + ]) + + message_record = self.env['jikimo.message.queue'].search([ + ('res_id', '=', exception_record.id), + ('model', '=', 'jikimo.workorder.exception'), + ('message_status', '=', 'pending'), + ('message_template_id', '=', message_template.id) + ]) + self.assertTrue(message_record) + + + def test_get_message(self): + exception_record = self.env['jikimo.workorder.exception'].create({ + 'workorder_id': self.workorder.id, + 'exception_code': 'YC0002', + 'exception_content': '无功能刀具' + }) + message_queue_ids = self.env['jikimo.message.queue'].search([ + ('res_id', '=', exception_record.id), + ('model', '=', 'jikimo.workorder.exception'), + ('message_status', '=', 'pending') + ]) + message = self.env['jikimo.workorder.exception']._get_message(message_queue_ids) + self.assertTrue(message) + + diff --git a/sf_manufacturing/models/mrp_routing_workcenter.py b/sf_manufacturing/models/mrp_routing_workcenter.py index 0c380ebd..a584379f 100644 --- a/sf_manufacturing/models/mrp_routing_workcenter.py +++ b/sf_manufacturing/models/mrp_routing_workcenter.py @@ -40,7 +40,7 @@ class ResMrpRoutingWorkcenter(models.Model): def get_company_id(self): self.company_id = self.env.user.company_id.id - company_id = fields.Many2one('res.company', compute="get_company_id", related=False) + company_id = fields.Many2one('res.company', compute="get_company_id", related=False, store=True) # 排产的时候, 根据坯料的长宽高比对一下机床的最大加工尺寸.不符合就不要分配给这个加工中心(机床). # 工单对应的工作中心,根据工序中的工作中心去匹配,