diff --git a/sf_base/models/common.py b/sf_base/models/common.py
index 01b66a4d..32c4b245 100644
--- a/sf_base/models/common.py
+++ b/sf_base/models/common.py
@@ -38,6 +38,17 @@ class MrsMaterialModel(models.Model):
active = fields.Boolean('有效', default=True)
+class MrsProductionProcessCategory(models.Model):
+ _name = 'sf.production.process.category'
+ _description = '表面工艺类别'
+ order = 'id desc'
+
+ name = fields.Char('名称')
+ code = fields.Char("编码")
+ production_process_ids = fields.One2many('sf.production.process', 'category_id', string="表面工艺")
+ active = fields.Boolean('有效', default=True)
+
+
# 工艺 编码,名称,备注
class MrsProductionProcess(models.Model):
_name = 'sf.production.process'
@@ -51,6 +62,7 @@ class MrsProductionProcess(models.Model):
active = fields.Boolean('有效', default=True)
parameter_ids = fields.One2many('sf.production.process.parameter', 'process_id', string='可选参数')
gain_way = fields.Selection([("自加工", "自加工"), ("外协", "外协")], default="", string="获取方式")
+ category_id = fields.Many2one('sf.production.process.category')
class MrsProcessingTechnology(models.Model):
diff --git a/sf_base/views/common_view.xml b/sf_base/views/common_view.xml
index 1f5e2907..d89acc71 100644
--- a/sf_base/views/common_view.xml
+++ b/sf_base/views/common_view.xml
@@ -39,6 +39,59 @@
+
+
+
+ sf.production.process.category
+
+
+
+
+
+
+ sf.production.process.category
+
+
+
+
+
+
+
+
+
+ search.sf.production.process.category
+ sf.production.process.category
+
+
+
+
+
+
+
+
sf.production.process
@@ -95,8 +148,6 @@
-
-
@@ -231,26 +282,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
材料
ir.actions.act_window
@@ -290,13 +321,24 @@
sf.processing.technology
tree,form
-
加工工艺!
+
+ 表面工艺类别
+ ir.actions.act_window
+ sf.production.process.category
+ tree,form
+
+
+ 表面工艺类别!
+
+
+
+
#------------------托盘------------------
托盘
diff --git a/sf_base/views/menu_view.xml b/sf_base/views/menu_view.xml
index 3b329ccb..620712ac 100644
--- a/sf_base/views/menu_view.xml
+++ b/sf_base/views/menu_view.xml
@@ -63,6 +63,13 @@
action="sf_production_process"
/>
+
-
-
-
-
-
-
-
-
-
-
+
+ 同步表面工艺类别
+
+ code
+ model.sync_production_process_category()
+ 1
+ days
+ -1
+
+
同步资源库机床型号
@@ -132,7 +132,7 @@
-
+
同步表面工艺可选参数
code
diff --git a/sf_mrs_connect/models/res_config_setting.py b/sf_mrs_connect/models/res_config_setting.py
index 9a61ce8d..856b3c83 100644
--- a/sf_mrs_connect/models/res_config_setting.py
+++ b/sf_mrs_connect/models/res_config_setting.py
@@ -26,6 +26,8 @@ class ResConfigSettings(models.TransientModel):
_logger.info("同步资源库材料型号")
self.env['sf.production.process'].sync_all_production_process()
_logger.info("同步资源库表面工艺")
+ self.env['sf.production.process.category'].sync_all_production_process_category()
+ _logger.info("同步资源库表面工艺类别")
self.env['sf.processing.technology'].sync_all_processing_technology()
_logger.info("同步资源库加工工艺")
self.env['sf.machine.brand.tags'].sync_all_machine_brand_tags()
diff --git a/sf_mrs_connect/models/sync_common.py b/sf_mrs_connect/models/sync_common.py
index 6cdd98ba..c4da9926 100644
--- a/sf_mrs_connect/models/sync_common.py
+++ b/sf_mrs_connect/models/sync_common.py
@@ -6,6 +6,7 @@ from odoo import models
from odoo.exceptions import ValidationError
import logging
from odoo.addons.sf_base.commons.common import Common
+
_logger = logging.getLogger(__name__)
@@ -162,6 +163,66 @@ class sfMaterialModel(models.Model):
raise ValidationError("认证未通过")
+class sfProductionProcessCategory(models.Model):
+ _inherit = 'sf.production.process.category'
+ _description = '表面工艺类别'
+ url = '/api/production_process_category/list'
+
+ # 定时同步每日表面工艺类别
+ def sync_production_process_category(self):
+ sf_sync_config = self.env['res.config.settings'].get_values()
+ token = sf_sync_config['token']
+ sf_secret_key = sf_sync_config['sf_secret_key']
+ headers = Common.get_headers(self, token, sf_secret_key)
+
+ strUrl = sf_sync_config['sf_url'] + self.url
+ r = requests.post(strUrl, json={}, data=None, headers=headers)
+ r = r.json()
+ result = json.loads(r['result'])
+ if result['status'] == 1:
+ for item in result['production_process_category_yesterday_list']:
+ if item:
+ production_process_category = self.env['sf.production.process.category'].search(
+ [("code", '=', item['code'])])
+ if production_process_category:
+ production_process_category.name = item['name'],
+ production_process_category.code = item['code'],
+ production_process_category.active = item['active']
+ else:
+ self.env['sf.production.process.category'].create({
+ "name": item['name'],
+ "code": item['code'],
+ "active": item['active'],
+ })
+ else:
+ raise ValidationError("认证未通过") # 定时同步表面工艺
+
+ # 同步所有表面工艺类别
+ def sync_all_production_process_category(self):
+ sf_sync_config = self.env['res.config.settings'].get_values()
+ token = sf_sync_config['token']
+ sf_secret_key = sf_sync_config['sf_secret_key']
+ headers = Common.get_headers(self, token, sf_secret_key)
+
+ strUrl = sf_sync_config['sf_url'] + self.url
+ r = requests.post(strUrl, json={}, data=None, headers=headers)
+ r = r.json()
+ result = json.loads(r['result'])
+ if result['status'] == 1:
+ for item in result['production_process_category_all_list']:
+ if item:
+ category = self.env['sf.production.process.category'].search(
+ [("process_encode", '=', item['process_encode'])])
+ if not category:
+ self.env['sf.production.process.category'].create({
+ "name": item['name'],
+ "code": item['code'],
+ "active": item['active'],
+ })
+ else:
+ raise ValidationError("认证未通过")
+
+
class sfProductionProcess(models.Model):
_inherit = 'sf.production.process'
_description = '表面工艺'
@@ -184,21 +245,21 @@ class sfProductionProcess(models.Model):
brand = self.env['sf.production.process'].search(
[("process_encode", '=', item['process_encode'])])
if brand:
- brand.id = item['id'],
brand.name = item['name'],
+ brand.category_id = self.env['sf.production.process.category'].search(
+ [("code", '=', item['category_code'])]).id,
brand.process_encode = item['process_encode'],
brand.remark = item['remark'],
brand.active = item['active'],
brand.remark = item['remark']
else:
self.env['sf.production.process'].create({
- "id": item['id'],
"name": item['name'],
+ "category_id": self.env['sf.production.process.category'].search(
+ [("code", '=', item['category_code'])]).id,
"process_encode": item['process_encode'],
"remark": item['remark'],
"active": item['active'],
- # "tag_ids": item['tag_ids']
-
})
else:
raise ValidationError("认证未通过") # 定时同步表面工艺
@@ -221,8 +282,9 @@ class sfProductionProcess(models.Model):
[("process_encode", '=', item['process_encode'])])
if not brand:
self.env['sf.production.process'].create({
- "id": item['id'],
"name": item['name'],
+ "category_id": self.env['sf.production.process.category'].search(
+ [("code", '=', item['category_code'])]).id,
"process_encode": item['process_encode'],
"remark": item['remark'],
"active": item['active'],
@@ -949,6 +1011,7 @@ class sfProcessingOrder(models.Model):
else:
raise ValidationError("认证未通过")
+
class sfProductionProcessParameter(models.Model):
_inherit = 'sf.production.process.parameter'
_description = '表面工艺可选参数'
@@ -980,7 +1043,7 @@ class sfProductionProcessParameter(models.Model):
"name": item['name'],
"code": item['code'],
"active": item['active'],
- "price" : item['price'],
+ "price": item['price'],
"process_id": self.env['sf.production.process'].search(
[('process_encode', '=', item['process_id_code'])]).id,
'materials_model_ids': self.env['sf.materials.model'].search(
@@ -1019,4 +1082,4 @@ class sfProductionProcessParameter(models.Model):
})
else:
- raise ValidationError("认证未通过")
\ No newline at end of file
+ raise ValidationError("认证未通过")