diff --git a/sf_base/models/common.py b/sf_base/models/common.py index 95572631..6c0cfc28 100644 --- a/sf_base/models/common.py +++ b/sf_base/models/common.py @@ -187,3 +187,11 @@ class MrsMaterialApply(models.Model): name = fields.Char('名称', default=True) active = fields.Boolean('有效', default=True) + + +class MachiningAccuracy(models.Model): + _name = 'sf.machining.accuracy' + _description = '加工精度' + name = fields.Char('精度名称', index=True) + discount = fields.Float('折扣') + sync_id = fields.Char('同步ID') diff --git a/sf_base/views/base_view.xml b/sf_base/views/base_view.xml index 8127efb7..841e3467 100644 --- a/sf_base/views/base_view.xml +++ b/sf_base/views/base_view.xml @@ -614,4 +614,6 @@ sf.machine.control_system tree + + #------------------加工精度------------------ \ No newline at end of file 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..75938068 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.discount = time['discount'] + else: + self.env['sf.machining.accuracy'].sudo().create({ + "sync_id": time['id'], + "name": time['name'], + "discount": time['discount'], + })