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'],
+ })