diff --git a/quality/i18n/zh_CN.po b/quality/i18n/zh_CN.po index 267c0196..544bcba2 100644 --- a/quality/i18n/zh_CN.po +++ b/quality/i18n/zh_CN.po @@ -1049,4 +1049,4 @@ msgstr "工作中心故障" #. module: quality #: model:ir.model.fields,field_description:quality.field_quality_point_test_type__active msgid "active" -msgstr "有效" +msgstr "有效" \ No newline at end of file diff --git a/sf_base/models/base.py b/sf_base/models/base.py index c3152098..3d83cc96 100644 --- a/sf_base/models/base.py +++ b/sf_base/models/base.py @@ -394,3 +394,11 @@ class MachineToolCategory(models.Model): active = fields.Boolean('有效', default=True) category = fields.Selection([('shukong', u'数控'), ('putong', u'普通')], string=u'机床类别', default='shukong') + + +class MachiningAccuracy(models.Model): + _name = 'sf.machining.accuracy' + _description = '加工精度' + name = fields.Char('一般公差', index=True) + standard_tolerance = fields.Char(string="标准公差") + sync_id = fields.Char('同步ID') diff --git a/sf_base/security/ir.model.access.csv b/sf_base/security/ir.model.access.csv index 3d4ba3a0..34605cca 100644 --- a/sf_base/security/ir.model.access.csv +++ b/sf_base/security/ir.model.access.csv @@ -247,3 +247,7 @@ access_sf_cutting_tool_type_group_sf_stock_manager,sf_cutting_tool_type_group_sf access_sf_cutting_tool_material_group_plan_dispatch,sf_cutting_tool_material_group_plan_dispatch,model_sf_cutting_tool_material,sf_base.group_plan_dispatch,1,0,0,0 access_sf_functional_cutting_tool_model_group_plan_dispatch,sf_functional_cutting_tool_model_group_plan_dispatch,model_sf_functional_cutting_tool_model,sf_base.group_plan_dispatch,1,0,0,0 access_sf_cutting_tool_type_group_plan_dispatch,sf_cutting_tool_type_group_plan_dispatch,model_sf_cutting_tool_type,sf_base.group_plan_dispatch,1,0,0,0 + + +access_sf_machining_accuracy,sf_machining_accuracy,model_sf_machining_accuracy,base.group_user,1,0,0,0 +access_sf_machining_accuracy_admin,sf_machining_accuracy_admin,model_sf_machining_accuracy,base.group_system,1,0,0,0 diff --git a/sf_base/views/base_view.xml b/sf_base/views/base_view.xml index 8127efb7..eb2c1571 100644 --- a/sf_base/views/base_view.xml +++ b/sf_base/views/base_view.xml @@ -614,4 +614,23 @@ sf.machine.control_system tree + + #------------------加工精度------------------ + + tree.sf.machining.accuracy + sf.machining.accuracy + + + + + + + + + + 加工精度 + ir.actions.act_window + sf.machining.accuracy + tree + \ No newline at end of file diff --git a/sf_base/views/menu_view.xml b/sf_base/views/menu_view.xml index 21bb519d..4c662976 100644 --- a/sf_base/views/menu_view.xml +++ b/sf_base/views/menu_view.xml @@ -141,12 +141,18 @@ sequence="1" action="action_sf_machine_brand"/> + diff --git a/sf_mrs_connect/models/res_config_setting.py b/sf_mrs_connect/models/res_config_setting.py index 6ec49f74..5243ccb2 100644 --- a/sf_mrs_connect/models/res_config_setting.py +++ b/sf_mrs_connect/models/res_config_setting.py @@ -84,6 +84,8 @@ class ResConfigSettings(models.TransientModel): _logger.info("同步刀具物料切削速度完成") self.env['sf.feed.per.tooth'].sync_all_feed_per_tooth() _logger.info("同步刀具物料每齿走刀量完成") + self.env['sf.machining.accuracy'].sync_machining_accuracy_all() + _logger.info("同步加工精度完成") except Exception as e: _logger.info("sf_all_sync error: %s" % e) diff --git a/sf_mrs_connect/models/sync_common.py b/sf_mrs_connect/models/sync_common.py index 615c69a0..ae1930c6 100644 --- a/sf_mrs_connect/models/sync_common.py +++ b/sf_mrs_connect/models/sync_common.py @@ -74,6 +74,8 @@ class MrStaticResourceDataSync(models.Model): _logger.info("同步刀具物料切削速度完成") self.env['sf.feed.per.tooth'].sync_feed_per_tooth_yesterday() _logger.info("同步刀具物料每齿走刀量完成") + self.env['sf.machining.accuracy'].sync_machining_accuracy_all() + _logger.info("同步加工精度完成") except Exception as e: traceback_error = traceback.format_exc() logging.error("同步静态资源库失败:%s" % traceback_error) @@ -3133,3 +3135,36 @@ class CuttingToolBasicParameters(models.Model): }) else: raise ValidationError("刀具物料基本参数认证未通过") + + +class MachiningAccuracySync(models.Model): + _inherit = 'sf.machining.accuracy' + _description = '加工精度' + url = '/api/machining_accuracy/list' + + def sync_machining_accuracy_all(self): + config = self.env['res.config.settings'].get_values() + headers = Common.get_headers(self, config['token'], config['sf_secret_key']) + strUrl = config['sf_url'] + self.url + r = requests.post(strUrl, json={}, data=None, headers=headers) + r = r.json() + result = json.loads(r['result']) + _logger.info('加工精度:%s' % result) + if result['status'] == 1: + machining_accuracy_all_list = result['machining_accuracy_all_list'] + # 获取同步的id集合 + ids = [obj['id'] for obj in machining_accuracy_all_list] + self.env['sf.machining.accuracy'].sudo().search( + [('sync_id', 'not in', ids)]).unlink() + for time in machining_accuracy_all_list: + machining_accuracy = self.env['sf.machining.accuracy'].sudo().search( + [('sync_id', '=', time['id'])]) + if machining_accuracy: + machining_accuracy.name = time['name'] + machining_accuracy.standard_tolerance = time['standard_tolerance'] + else: + self.env['sf.machining.accuracy'].sudo().create({ + "sync_id": time['id'], + "name": time['name'], + "discount": time['discount'], + })